
var currentSlideIndex = 0;
var isPlaying;

var slideTimeOutID;



// preload images for slide cycle
var images = new Array();
for(var i=0; i < slideArray.length; i++){
// this slideArray is populated with jpg paths in a separate "content_<articlename>_script_<pagenumber>. html" file

	images.push(new Image());
	images[i].src = slideArray[i];
}


var playPauseTarget;

function playSlideShow(){

	isPlaying = 1;

	currentSlideIndex = 0;
	initStack();
	updateSlideNumbers(0);
	updateSlideText();
	
	startSlideTimer();
	
	
	
	playPauseTarget = document.getElementById('playPauseContainer');
	if(playPauseTarget) playPauseTarget.innerHTML = '<a href="javascript:pauseSlideShow();"><img src="../../images/but_pause.gif"></a>';
	
	
	
	
}



function resumeSlideShow(){

	isPlaying = 1;

	
	playPauseTarget = document.getElementById('playPauseContainer');
	if(playPauseTarget) playPauseTarget.innerHTML = '<a href="javascript:pauseSlideShow();"><img src="../../images/but_pause.gif"></a>';
		
	goNextSlide();
		
}

function pauseSlideShow(){
	
	clearSlideTimer();
	isPlaying = 0;
	
	
	// clearTimeout(revealTimeOutID);
	playPauseTarget = document.getElementById('playPauseContainer');
	if(playPauseTarget) playPauseTarget.innerHTML = '<a href="javascript:resumeSlideShow();"><img src="../../images/but_play.gif"></a>';
	
}



function startSlideTimer(){
	clearSlideTimer();
	
	if(isAutoPlaySlideShow == 1) {
		slideTimeOutID =  setTimeout(slideTimerComplete,10000);
	}
}


function clearSlideTimer(){
	clearTimeout(slideTimeOutID);
}

function slideTimerComplete(){

	clearSlideTimer();
	// alert("slideTimerComplete");
	if(isPlaying == 1){
		goNextSlide();
	}

}

function gotoSlide(slideIndex){

	// alert("gotoSlide: " + slideIndex);
	if(hasIntro == 1){
		// this slideshow has introductory events to play before normal navigation becomes available
		if(introDone != 1){
			doIntroSetup(slideIndex);
			return;
		}
	}

	// this function jumps to a slide that the user selects

	newImageIndex = slideIndex;



	var currentImage = slideArray[currentSlideIndex];
	var newImageIndex = slideIndex;
	if(newImageIndex > slideArray.length - 1) newImageIndex = 0;
	if(newImageIndex < 0) newImageIndex = slideArray.length - 1;
	
	var newImage = slideArray[newImageIndex];

	createStack(currentImage,newImage);
	updateSlideNumbers(newImageIndex);
	


	startSlideTimer();

	
	clearSlideText();
	doBlindEffect();
	
	currentSlideIndex = newImageIndex;

	
	
	
}


function goPreviousSlide(){
	// alert("goPrev");
	
	newIndex = currentSlideIndex - 1;
	gotoSlide(newIndex);
	
}

function goNextSlide(){
	// alert("goNext");
	
	newIndex = currentSlideIndex + 1;
	gotoSlide(newIndex);

}


function initStack(){

	createStack(slideArray[0],slideArray[1]);
}




function createStack(currentImage, newImage){

	// alert("createStack currentImage: " + currentImage + " newImage: " + newImage);


	
	// generate new foreground div with current image
	// blind effect will be applied to this div
	// float &  background-position are required for correct side-to-side blind effect
	
	var blindTarget = document.getElementById('coverBlind');
	var backgroundTarget = document.getElementById('coverBackground');
	
	// these dimensions are set in the "content_<articlename>_script_x.html" file
	// div widths vary with slideshow design
	var divWidth = slideTargetWidth;
	var divHeight = slideTargetHeight;
	
	var outputHTML = '<div id="coverBlind" style="position: relative; background-color: transparent; background-image: url(' + currentImage + '); background-position: center right; width:' + divWidth + 'px; height:' + divHeight + 'px; color: white; left: 0px; top: 0px; margin: 0px; padding: 0px; float: right;"></div>';

	backgroundTarget.innerHTML = outputHTML;
	
	// place next image behind current image, as a background in the outer div
	backgroundTarget.style.backgroundImage = "url(" + newImage + ")";
	
}


function doBlindEffect(){
	// clearTimeout(revealTimeOutID);
	new Effect.BlindHorizontal("coverBlind", revealFinished);
}

function updateSlideNumbers(currentIndex){

	var textTarget;
	var normalColor = "#9da794";
	var currentColor = "#22B24B";// currently selected slide
	
	
	
	for(i = 0; i < slideArray.length; i++){
		textTarget = document.getElementById("slideNum" + i);
		
		if(! textTarget){
			// alert("no numbers");
			break;
		}
		
		if(i == currentIndex){
			textTarget.style.color = currentColor;
		} else {
			textTarget.style.color = normalColor;
		}
		
		
		
	}

}


function clearSlideText(){

	if(isTextSlideShow != 1){
	
		return;
		
	}

	var tempTargetObj;
	
	for(var i = 0; i < slideArray.length; i++){
		
		tempTargetName = "slideText" + i;
		tempTargetObj = document.getElementById(tempTargetName);
		
		tempTargetObj.style.display = "none";
	
	}



}


function updateSlideText(){

	if(isTextSlideShow != 1){
		return;
	}
	
	
	var currentTargetObj = document.getElementById("slideText" + currentSlideIndex);
	currentTargetObj.style.display = "inline";

}


function revealFinished(){	
	// call received from BlindHorizontal method when visual effect is finished

	updateSlideText();
	
}


