var autoPlaysSet = 1;
var arraySlideShowsClicked = new Array();
function initSlideShow(id, transitionSpeed, autoplay, autoplayInterval){
	
	setControls(id, transitionSpeed)
	
	var startIndex = 0;
	if(document.getElementById(id).getElementsByTagName("span")[0].innerHTML != ""){
		startIndex = parseInt(document.getElementById(id).getElementsByTagName("span")[0].innerHTML)
	}else
	{
		document.getElementById(id).getElementsByTagName("span")[0].innerHTML = startIndex;
	}
	
	imageContainer(id).style.backgroundImage = "url(" + getImageSource(id,startIndex) +")";
	textContainer(id).innerHTML = getTextSource(id, startIndex);
	imageContainer(id).onclick = getLinkEvent(id, startIndex);
	
	
	if(autoplay && autoplayInterval){		 
		 setTimeout("doAutoPlay('"+ id +"', "+ transitionSpeed +", "+ autoplayInterval+")", autoPlaysSet);
		 autoPlaysSet+= 1000;
	}
}
function controlClicked(id){
	for(i = 0; i < arraySlideShowsClicked.length; i++){
		if(arraySlideShowsClicked[i] == id){
			return true;	
		}
	}
}
function doAutoPlay(id, transitionSpeed, autoplayInterval){	

	var links = document.getElementById(id).getElementsByTagName("a");
	for(i = 0; i < links.length; i++){			
		if(links[i].className.indexOf("next") !=-1){
			setTimeout("if(!controlClicked('"+id+"'))changeSlide('"+ id + "','next',"+ transitionSpeed + ")", autoplayInterval);
			setTimeout("if(!controlClicked('"+id+"'))doAutoPlay('"+ id + "',"+ transitionSpeed + "," + autoplayInterval +")", autoplayInterval);
		}
	}
}


function setControls(id, transitionSpeed)
{
	var links = document.getElementById(id).getElementsByTagName("a");
	for(i = 0; i < links.length; i++){
		if(links[i].className.indexOf("next") !=-1){
			links[i].onclick = function(){
				arraySlideShowsClicked[arraySlideShowsClicked.length] = id
				changeSlide(id, "next", transitionSpeed); 
				};
		}
		else if(links[i].className.indexOf("previous") !=-1){
			links[i].onclick = function(){
				arraySlideShowsClicked[arraySlideShowsClicked.length] = id
				changeSlide(id, "previous", transitionSpeed); 
				};
		}
	}
}


var inTransition = false;
function changeSlide(id, direction,millisec)
{
	if(!inTransition){		
		inTransition = true;
		
		var sourcesLength = sourcesContainer(id, 'image').getElementsByTagName('img').length;
		
		var slideshow = document.getElementById(id);
		var activeIndex = parseInt(slideshow.getElementsByTagName("span")[0].innerHTML);
		var nextIndex = activeIndex;
		
		if(direction == "next"){
			if(activeIndex == sourcesLength-1){nextIndex = 0;}else{nextIndex++;};
		}
		else{
			if(activeIndex == 0){nextIndex = sourcesLength-1;}else{nextIndex--;};
		}
		
		slideshow.getElementsByTagName("span")[0].innerHTML = nextIndex;		
		imageContainer(id).onclick = getLinkEvent(id, nextIndex);
		fadeSeperate(id, nextIndex, millisec);
	}
	else{
		return false;	
	}
}

function fadeSeperate(id, nextIndex, millisec){	
	var speed = Math.round(millisec / 100);
	
	var screenID = imageContainer(id).id;
	var textID = textContainer(id).id;
	
	var nextURL = getImageSource(id,nextIndex);
	var nextText = getTextSource(id,nextIndex);
	
	
	$('#'+screenID).fadeOut(millisec);
	$('#'+textID).fadeOut(millisec);
	
	var imagetimer = 100
	var texttimer = 100
	
	imagetimer++;
	//change image url
	setTimeout("document.getElementById('"+ screenID +"').style.backgroundImage='url("+ nextURL +")'", (imagetimer * speed));
	texttimer += imagetimer;
	//change image url
	//setTimeout("document.getElementById('"+ textID +"').innerHTML='"+ nextText + "'" ,(texttimer * 1));
	setTimeout("document.getElementById('"+ textID +"').innerHTML=getTextSource('"+id+"',"+nextIndex+")" ,(texttimer * 1));
	
	texttimer++;
	imagetimer++;
	
	$('#'+screenID).fadeIn(millisec);
	$('#'+textID).fadeIn(millisec);

    imagetimer += 100;
    texttimer += 100;

	setTimeout("inTransition=false", texttimer + imagetimer *2);
}

function imageContainer(id)
{
	var slideshow = document.getElementById(id);
	for(i = 0; i < slideshow.getElementsByTagName("div").length; i++){
		if(slideshow.getElementsByTagName("div")[i].className == "imageContainer"){
			return slideshow.getElementsByTagName("div")[i];
		}
	}
}
function textContainer(id){
	var slideshow = document.getElementById(id);
	var divs = slideshow.getElementsByTagName("div")
	for(i = 0; i < divs.length; i++){
		if(divs[i].className == "textContainer"){
			return divs[i];
		}
	}
}

function sourcesContainer(id, type){
	var slideshow = document.getElementById(id);
	var divs = slideshow.getElementsByTagName("div")
	for(i = 0; i < divs.length; i++){
		if(divs[i].className.indexOf(type + "Sources") != -1){
			return divs[i];
		}
	}
}

function getImageSource(id, index)
{
	images = sourcesContainer(id, 'image').getElementsByTagName("img");
	return images[index].src;
}
function getTextSource(id, index)
{
	spans = sourcesContainer(id, 'text').getElementsByTagName("span");
	return  spans[index].innerHTML;
}
function getLinkEvent(id, index)
{
	a = sourcesContainer(id, 'link').getElementsByTagName("a");
	return a[index].onclick;
}
