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) {
		
		//
		currentImage = e.id;
		e.style.opacity = "1";
		e.style.filter = "alpha(opacity=100)";
	
		// show image
		e.src = "images/" + temp[0] + "/" + temp[1]  + "/" + imageSize + "/" + temp[2] + ".jpg";
		
	} else {
		
	    //
		currentImage = e.id;
		e.style.opacity = "1";
		e.style.filter = "alpha(opacity=100)";
	
		// 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.3";
	e.style.filter = "alpha(opacity=30)";
	
	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 = "0";
	e.style.filter = "alpha(opacity=0)";
	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();
		}
	}

}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}