var images = new Array();
var run = false;
var timer = 0;
var redtimer = 0;
var index = 0;
var increment = 1;
var slidebar;
var loading;
var sleep = 65;

var playGif = new Image();
var nextGif = new Image();
var pauseGif = new Image();
playGif.src = '/photos/img/play.gif';
nextGif.src = '/photos/img/next.gif';
pauseGif.src = '/photos/img/pause.gif';

var button;

var kdown = false;

var hint = true;

var bName = navigator.appName;
var bVer = parseFloat(navigator.appVersion);
var ie = false;
var safari = false;

var agt=navigator.userAgent.toLowerCase();
if(agt.indexOf('safari') > 0) {
	safari = true;
}

if (bName == "Microsoft Internet Explorer") {
	if(bVer >= 4) {
		ie = true;
	}
}
if (document.captureEvents) {
  	document.captureEvents(Event.KEYPRESS);
}

if(safari == false) {
	document.onkeydown = keyDown;
}

function populate(image) {
	images[images.length] = image;		
}

function setImage() {
	

	if(hint) {
		var hintnode = document.getElementById("hint");
		var hintparent = hintnode.parentNode;
		hintparent.removeChild(hintnode);
		hint = false;
	}

	
			
	var parentwidth = 110 + images[index]['width'] + 10 + 20; 
	var maindiv = document.getElementById("maindiv");
	maindiv.style.width = parentwidth + "px";
	
	
	
	var imagedivwidth = images[index]['width'] + 10;
	var imagediv = document.getElementById("imagediv");
	imagediv.style.width = imagedivwidth + "px";
	
	
	
	var image =  document.getElementById("image");
	
	image.title = images[index]['title'];
	image.src = images[index]['image'];
	image.width =  images[index]['width'];
	image.height = images[index]['height'];
	
	
	
	var imageindex = document.getElementById("imageindex");
	var indexNode = imageindex.childNodes[0];
	imageindex.removeChild(indexNode);
	var count = index + 1;
	var indexCount = document.createTextNode(count); 
	imageindex.appendChild(indexCount);
	
	
	//<span id="imagetitle">
	var title = document.getElementById("imagetitle");
	var titleText = title.childNodes[0];
	if(titleText) {
		title.removeChild(titleText);
	}
	titleText = document.createTextNode(images[index]['title']);
	title.appendChild(titleText);
	
		
	//imagedesc
	var imagedesc = document.getElementById("imagedesc");

	//alert(imagedesc.nodeName);
	var imagedescText = imagedesc.childNodes[0];
	if(imagedescText) {
		imagedesc.removeChild(imagedescText);
	}
	//alert('running...');
	
	var imagedescText2 = document.createTextNode(images[index]['description']);
	imagedesc.appendChild(imagedescText2);
	
}

function nextImage() {

	index++;
	setImage(index);
	
	if(index == (images.length - 1)) {
		run = false;
		stopShow(false);
	} else {
		timer = 0;
		run = true;
		
		var slidebar = document.getElementById("slidebar");
		slidebar.style.width =  0 + "px";			
		startShow();
	}
	
}

function runTimer() {

	if(run == false) {
		return;
		timer = 0;
	}
		 
	if(timer >= 110) {
		//alert('bla');
		isLoaded();
		//nextImage();
	} else {
		timer++;
		var width = increment * timer; 
		slidebar.style.width =  width + "px";
		setTimeout("runTimer()", sleep); 
	}
}

function startShow() {

	if(safari && hint) {
		//alert('safari');
		var hintnode = document.getElementById("hint");
		var hintparent = hintnode.parentNode;
		hintparent.removeChild(hintnode);
		hint = false;
	}	
		
	slidebar = document.getElementById("slidebar");
	if(index == (images.length - 1)) {
		index = 0;
		setImage();
	}
	
	loading = new Image();
	var nextIndex = index + 1;		
	loading.src = images[nextIndex]['image']; 
	
	slidebar.style.width =  0 + "px";
	
	var node = document.getElementById("stop");
	var old = node.getElementsByTagName("span")[0];
	node.removeChild(old);
	
	var sspan = document.createElement("span");
	
	var stopAhref = document.createElement("A");
	stopAhref.href = "javascript:pauseShow();";
	stopAhref.title = "Keyboard shortcut: 'spacebar'";
	var start = document.createTextNode("Pause");
	stopAhref.appendChild(start);
	stopAhref.setAttribute("id", "Pause");
	
	var nextAhref = document.createElement("A");
	nextAhref.href = "javascript:next();";
	var next = document.createTextNode("Next");
	nextAhref.appendChild(next);
	nextAhref.title = "Keyboard shortcut: 'right arrow'";
	var nextSep = document.createTextNode(" | ");	
	
	sspan.appendChild(nextAhref);
	sspan.appendChild(nextSep);
	
	sspan.appendChild(stopAhref);
	node.appendChild(sspan);	
	run = true;
	runTimer();
}

function pauseShow() {

	showButton(pauseGif);
	run = false;
	node = document.getElementById("Pause");
	var pausetext = node.childNodes[0];
	node.removeChild(pausetext);
	node.href = "javascript:continueShow();";
	var start = document.createTextNode("Play");	
	node.appendChild(start);
			
}

function continueShow() {
	
	showButton(playGif);
	if(index == (images.length - 1)) {
		startShow();
	} else {
		run = true;
		node = document.getElementById("Pause");
		var pausetext = node.childNodes[0];
		node.removeChild(pausetext);
		node.href = "javascript:pauseShow();";
		var start = document.createTextNode("Pause");	
		node.appendChild(start);
		runTimer();
		//showButton(playGif);	
	}
	//showButton(playGif);
	
}


function stopShow(noclear) {

	run = false;
	if(! noclear) {
		slidebar.style.width =  0 + "px";
		//slidebar.style.backgroundColor = "Silver";
	}
	
	timer = 0;
	
	var node = document.getElementById("stop");
	var ahref = node.getElementsByTagName("span")[0];
	node.removeChild(ahref);
	
	var sspan = document.createElement("span");
	var startAhref = document.createElement("A");
	startAhref.href = "javascript:startShow();";
	var start = document.createTextNode("start");
	startAhref.appendChild(start);
		
	sspan.appendChild(startAhref);	
	node.appendChild(sspan);	
			
}

function next() {
	if(run == false) {
		run = true;
		node = document.getElementById("Pause");
		if(node) {
			node.href="javascript:pauseShow();";
			var pausetext = node.childNodes[0];
			node.removeChild(pausetext);
			var start = document.createTextNode("Pause");	
			node.appendChild(start);
			runTimer();
		}
		
	}
	timer = 109;
}

function isLoaded() {
	
	if(! loading.complete) {
		//if(1 == 1) {
		
		setTimeout("isLoaded()", sleep); 	
		if(redtimer > 110) {
			//redtimer = -1;
			redtimer = 0;
			//nextImage();
		} else {
			redtimer++;
			var width = increment * redtimer; 
			slidebar.style.width =  width + "px";
			slidebar.style.backgroundColor = "Red";
		}		
	} else {
		//alert("loading...");
		redtimer = 0;
		slidebar.style.backgroundColor = "White";
		nextImage();
	}
}

function showButton(img) {
	if(button) {
		document.getElementsByTagName("body")[0].removeChild(button);
		button = null;
	} 
	
	kdown = true;
	var mainimage = document.getElementById("image");
	var position = getImagePosition(mainimage);
	var maindiv = document.getElementById("maindiv");
	var width = images.width;
	
	var newimg = document.createElement("IMG");
	newimg.src = img.src;
	newimg.style.top = position[0] + "px";
	newimg.style.left = position[1] + "px";
	
	newimg.width = 159;
	newimg.height = 146;
	newimg.style.opacity = 0.8; 
	newimg.style.filter = "alpha(opacity=80)";
	newimg.style.position = 'absolute';
	newimg.style.MozOpacity =  80/100;
	
	document.getElementsByTagName("body")[0].appendChild(newimg);
	button = newimg;
	setTimeout("fadeButton(8)", 500);

}

function fadeButton(op) {
	if(button) {
		if(op > 0) {
			op = op - 1;
			
			var ieop = op * 10;		
			button.style.filter = "alpha(opacity="+ ieop + ")";
			//var mozop = op * 10;
			button.style.MozOpacity= ieop/100;
			button.style.opacity = "0." + op;
			setTimeout("fadeButton(" + op + ")", 50);
		} else { 
			document.getElementsByTagName("body")[0].removeChild(button);	
			button = null;
			kdown = false;
		}
	}
}


 function getImagePosition(image) {
    var aleft = (image.offsetLeft);
    var atop = (image.offsetTop);
    var oo = image;
    while (oo.offsetParent) {
      oo = oo.offsetParent;
      aleft += oo.offsetLeft;
      atop += oo.offsetTop;
    }
    aleft = aleft + ((image.width / 2) - 80) + 15;
    atop = atop + ((image.height / 2) - 73);
    return [atop, aleft];
 }


function keyDown(evt) {
		if(kdown == false) {
		code = '';
		if(ie) {
			if(window.event && window.event.keyCode)
				code = window.event.keyCode;
		} else {
			if(evt)
				code = evt.keyCode;
		}
		if(code) {
			if(code == 32) {
				if(run == true) {
					//showButton(pauseGif);
					pauseShow();
				} else {
					//showButton(playGif);
					continueShow();
				}
			} else if (code == 39) {
				if(run == false && timer == 0) {
					continueShow();
				} else {
					next();
					showButton(nextGif);
				}
			}
		}
	}
}  
