/* Map / visual combination 1.0, MDi, sept. 2004, Fabrique [design, nieuwe media & communicatie] */

scrollTimer = new Array();
var scrollDelay = Math.round(1000/scrollFrameRate);

var getE = function(el){return document.getElementById(el);}
prelImgs = new Array();
var preloadImage = function(_src){
	var l = prelImgs.length;
	//alert(_src)
	prelImgs[l] = new Image();
	prelImgs[l].src =_src;
}

var randomize = function(num){
	return Math.floor(Math.random() * num);
}

var scroll = function(id,dir){
	var scroller = getE(id);
	var yOffset = parseInt(scroller.style.top,10);
	if (isNaN(yOffset)){
		yOffset = 0;
	}
	var stop = false;
	if (dir == 'up'){
		var newOffset = yOffset + scrollSpeed;
		if (newOffset > 0){
			newOffset = 0;
			stop = true;
		}
	}
	else if (dir == 'down'){
		var height = parseInt(scroller.offsetHeight,10);
		var containerHeight = parseInt(getE(id+'Container').offsetHeight,10);
		var minOffset = containerHeight - height;
		
		var newOffset = yOffset - scrollSpeed;
		if (newOffset < minOffset) {
			newOffset = minOffset;
			stop = true;
		}
	}
	scroller.style.top = newOffset + 'px';
	if (!stop){
		scrollTimer[id] = setTimeout('scroll(\''+id+'\',\''+dir+'\')',scrollDelay);
	}
}

var stopScroll = function(id){
	clearTimeout(scrollTimer[id]);
}

var showPlaceVisual = function(id){
	var o = placeVisual[id];
	for (var i = 0; i < 3; i++){
		var vis = getE('placevis' + (i+1));
		vis.src = o[i];
		vis.alt = o[3];
	}
	getE('map').src = '/images/' + 'map_' + id + '.gif';
	getE('visScriptContainer').style.visibility = 'visible';
}
	
var setUpPlaceVisuals = function(){
	var i = 0;
	placeByNumHash = new Array();
	prelPlaceVis = new Array();
	preloadImage('/images/' + 'map_down_over.gif');
	preloadImage('/images/' + 'map_up_over.gif');
	for (var p in placeVisual){
		placeByNumHash[i] = p;
		preloadImage('/images/' + 'map_' + p + '.gif');
		for (var j = 0; j < 3; j++){
			preloadImage(placeVisual[p][j]);
		}				
		i++;
	}
	setPlaceVisual(placeByNumHash[randomize(placeByNumHash.length)]);
}

var setPlaceVisual = function(assoc){
	var o = placeVisual[assoc];
	var scroller = getE('scroll');
	scroller.style.top = (-o[4]) + 'px';
	showPlaceVisual(assoc);
}