x = 0;
xTarget = 0;
currentImage = "";
currentSection = null;
currentSubSection = null;
move_timeout = null;
scrolling = false;

prevImage = null;
nextImage = null;
loadQueue = new Array();

function move() {

	scrolling = true;

	var xDiff = xTarget - x;
	x += xDiff/4;
	document.getElementById("images").style.left = x + "px";
	
	if (Math.round(xDiff) == 0) {
	
		window.clearTimeout(move_timeout);
		move_timeout = null;
		scrolling = false;
		
		
	} else {
	
		move_timeout = window.setTimeout("move();",25);
		
	}
	
}

function scrollTo(e) {

	// if e is null scroll to current image
	if (e == null) {
		e = document.getElementById(currentImage);
	}
	
	var n = parseInt(e.className);
	xTarget = -widths_array[n] + ((document.body.offsetWidth/2) - (e.getAttribute("width")/2));
	
	move();

	show(e);

}

function show(e) {

	// hide current image
	document.getElementById(currentImage).src = "images/x.gif";

	var temp = e.id.split("_");
	if (temp.length > 2) {
	
		// show image
		e.src = "images/" + temp[0] + "/" + temp[1]  + "/" + imageSize + "/" + temp[2] + ".jpg";
		
	} else {
	
		// show image
		e.src = "images/" + temp[0] + "/" + imageSize + "/" + temp[1] + ".jpg";
		
	}

	var prevID = parseInt(e.className) - 1;
	if (prevID >= 0) {
		prevImage = document.getElementById(images_array[prevID]);
		prevImage.onmousemove = function() {
			rollOver(this);
		}
	}
	
	var nextID = parseInt(e.className) + 1;
	if (nextID < images_array.length) {
		nextImage = document.getElementById(images_array[nextID]);
		nextImage.onmousemove = function() {
			rollOver(this);
		}
	}

	//
	currentImage = e.id;
	e.style.opacity = "";
	//e.style.filter = "";

}

function rollOver(e) {

	if (prevImage != null) prevImage.onmousemove = null;
	if (nextImage != null) nextImage.onmousemove = null;
	
	if (e.id == currentImage || scrolling == true) {
		var n = parseInt(e.className);
		var currentN = parseInt(document.getElementById(currentImage).className);
		if ( n != (currentN - 1) && n != (currentN + 1)) {
			return false;
		}
	}
	
	e.style.opacity = 0.5;
	//e.style.filter = "alpha(opacity=50);";
	
	var temp = e.id.split("_");
	if (temp.length > 2) {
	
		// show image
		e.src = "images/" + temp[0] + "/" + temp[1]  + "/" + imageSize + "/" + temp[2] + ".jpg";
	
	} else {
	
		// show image
		e.src = "images/" + temp[0] + "/" + imageSize + "/" + temp[1] + ".jpg";
	
	}
	
}

function rollOut(e) {

	if (prevImage != null) prevImage.onmousemove = null;
	if (nextImage != null) nextImage.onmousemove = null;
	
	if (e.id == currentImage || scrolling == true) {
		var n = parseInt(e.className);
		var currentN = parseInt(document.getElementById(currentImage).className);
		if ( n != (currentN - 1) && n != (currentN + 1)) {
			return false;
		}
	}
	
	e.style.opacity = "";
	//e.style.filter = "";
	e.src = "images/x.gif";
	
}

function preloadImages() {

	var e = document.getElementById(currentImage);
	var n = parseInt(e.className);
	
	// push previous/next images onto queue
	// mac IE problem here
	if (n > 0) {
		var temp = images_array[n-1].split("_");
		if (temp.length > 2) {
			var url = "images/" + temp[0] + "/" + temp[1] + "/" + imageSize + "/" + temp[2] + ".jpg";
			loadQueue[loadQueue.length] = url;
		} else {
			var url = "images/" + temp[0] + "/" + imageSize + "/" + temp[1] + ".jpg";
			loadQueue[loadQueue.length] = url;
		}
	}
	
	if (n < (images_array.length-1)) {
		var temp = images_array[n+1].split("_");
		if (temp.length > 2) {
			var url = "images/" + temp[0] + "/" + temp[1] + "/" + imageSize + "/" + temp[2] + ".jpg";
			loadQueue[loadQueue.length] = url;
		} else {
			var url = "images/" + temp[0] + "/" + imageSize + "/" + temp[1] + ".jpg";
			loadQueue[loadQueue.length] = url;
		}
	}
	
	// push all other images onto queue
	var nx = n - 1;
	while (nx > 0) {
	
		nx--;
		//alert(nx);
		
		var temp = images_array[nx].split("_");
		if (temp.length > 2) {
			var url = "images/" + temp[0] + "/" + temp[1] + "/" + imageSize + "/" + temp[2] + ".jpg";
			loadQueue[loadQueue.length] = url;
		} else {
			var url = "images/" + temp[0] + "/" + imageSize + "/" + temp[1] + ".jpg";
			loadQueue[loadQueue.length] = url;
		}
		
	
	}
	
	var nx = n + 1;
	while (nx < (images_array.length-1)) {
	
		nx++;
		
		var temp = images_array[nx].split("_");
		if (temp.length > 2) {
			var url = "images/" + temp[0] + "/" + temp[1] + "/" + imageSize + "/" + temp[2] + ".jpg";
			loadQueue[loadQueue.length] = url;
		} else {
			var url = "images/" + temp[0] + "/" + imageSize + "/" + temp[1] + ".jpg";
			loadQueue[loadQueue.length] = url;
		}
		
	
	}
	
	loadImages();

}

function loadImages() {

	var url = loadQueue[0];
	for (var i in loadQueue) {
		if (i != 0) {
			loadQueue[i-1] = loadQueue[i];
		}
	}
	loadQueue.length = loadQueue.length-1;
	
	var tempImage = new Image(0,0);
	tempImage.src = url;
	if (loadQueue.length >= 1) {
		tempImage.onload = function() {
			loadImages();
		}
	}

}
