/* Javascript slideshow created ht 07 */
/* 
AddEvent
elm: Element object
evType: Event type
fn: Function
useCapture: false
*/
function addEvent(elm, evType, fn, useCapture){
	if(elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if(elm.attachEvent){
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else{
		elm['on' + evType] = fn;
	}
}

// Globals
var count; // counter
var loop; // boolean 
var delay; // amount of milliesecs delay
var numberOfImg; // number of images
var timeID; // time identity for the setTimeout timer
var active; // slideshow play/stop
/*
init
Initiate the javascript's listeners and setup some values.
*/
function init(){
	if(!document.getElementsByTagName)
		return;
	if(!document.getElementById)
		return;	
	
	delay = 20000; // Time inbetween images
	loop = true; // Loop or not
	active = true; // Active or not
	numberOfImg = 3; // Numer of images in the loop
	
	var node = document.getElementById('slideshow');
	var str = node.src.match(/([0-9]+)(?:\.jpg$)/);
	count = str[1];

	changePic(count, loop, delay, numberOfImg);

	addEvent(node, 'click', pauseShow, false);
	//addEvent(node, 'mouseover', showInfo, false);
}

/*
changePic
Changes the picture with a timeout delay and calls it self.
*/
function changePic(count, loop, delay, numberOfImg){
	if(!loop) 
		return;
	if (count <= numberOfImg){
		var node = document.getElementById('slideshow');
		node.src = node.src.replace(/[0-9]+(\.jpg)$/, count+'$1');	
		count++;	
		timeID = setTimeout("changePic("+count+","+loop+","+delay+","+numberOfImg+")", delay);
	}
	else{
		count = 1;
		var node = document.getElementById('slideshow');
		node.src = node.src.replace(/[0-9]+(\.jpg)$/, count+'$1');	
		count++;	
		timeID = setTimeout("changePic("+count+","+loop+","+delay+","+numberOfImg+")", delay);
	}
}


/*
pauseShow
Pauses the slideshow via mouse click on the picture.
Resumes it if its paused, via mouse click on the image.
*/
function pauseShow(e){
	var el;
	if(window.event && window.event.srcElement)
		el = window.event.srcElement;
	if(e && e.target)
		el = e.target;
	if (!el) return;

	if (active){
		clearTimeout(timeID);	
		active = false;
	}
	else{
		resumeShow();
	}
}

/*
resumeShow
Resumes the slideshow, helper function to pauseShow
*/
function resumeShow(){
	var node = document.getElementById('slideshow');
	var str = node.src.match(/([0-9]+)(?:\.jpg$)/);	
	active = true;
	if (str[1] != null){
		changePic(str[1], loop, delay, numberOfImg);	
	}
	else{
		changePic(1, loop, delay, numberOfImg);
	}
}

//function showInfo(){
//	document.getElementById('slideinfo').style.display = 'block';
//}

// starts the script
addEvent(window, 'load', init, false);
