//Plum SlideShow engine
//17.11.2009. - gasenje slajda sa display:none da bi bio aktivan link narednog

function PlumSlideshow(){

//podesiti
this.brojSlajdova = 5;//ne racunam poslednji
this.kasnjenjeFadeIn = 500;//milisekundi
this.kasnjenjeFadeOut = 3000;//milisekundi
this.Tfin = 1;//trajanje fadein efekta - sekunde
this.Tfout = 1;//trajanje fadeout efekta - sekunde
this.brojSekvenci = 3;

this.slide = "slide";
this.slideButt = "slideButt";
this.slidePlayButt = "slidePlayButt";
this.usePlayButton = true;
this.buttCSSon = "slideNavDugmeAktivno";
this.buttCSSoff = "slideNavDugme";


//ne diraj
this.slideShowLooping = true;//toogle loop
this.prevSlide = 0;//prethodni slajd
this.curSlide = 0;//aktivni, trenutni slajd
this.curSekvenca = 0;

//funkcija koja se poziva na akciju dugmeta - onClick, onMouseOver ...
this.SlideShow = function (slide){
	
	if(this.prevSlide == slide) return;
	
	this.StopSlideshow();
	
	//slide boksovi
	var currentSlide = document.getElementById(this.slide+slide);
	var previousSlide = document.getElementById(this.slide+this.prevSlide);	
	
	currentSlide.style.display = "block";
	
	//slide dugmici
	var currentButt = document.getElementById(this.slideButt+slide);
	var previousButt = document.getElementById(this.slideButt+this.prevSlide);
	
	if(document.getElementById(this.slideButt+slide)){
	currentButt.setAttribute("class", this.buttCSSon); 
	currentButt.setAttribute("className", this.buttCSSon); //ovo je zbog IE
	}
	if(document.getElementById(this.slideButt+this.prevSlide)){
	previousButt.setAttribute("class", this.buttCSSoff); 
	previousButt.setAttribute("className", this.buttCSSoff); //ovo je zbog IE	
	}
	
	tweenCurrent = new OpacityTween(currentSlide,Tween.strongEaseIn, 0, 100, this.Tfin);
	tweenCurrent.start();	
	
	tweenPrevious = new OpacityTween(previousSlide,Tween.strongEaseIn, 100, 0, this.Tfout);
	tweenPrevious.start();
	
	//na kraju efekta gasim prethodni slajd da bi naredni bio klikabilan
	//da nema ovoga uvek bi bio aktivan link "starijeg" kliknutog slajda, ako se klikne na poslednji uvek bi bio aktivan njegov link jer je samo njegov opacity na 0 ali je i dalje aktivan, zato mora display:none;
	tweenPrevious.onMotionFinished = function(){ 
		previousSlide.style.display = "none";
	}
	
	this.prevSlide = slide;
	
}

//ponavljanje cele sekvence
this.SlideShowLoop = function (myID){
	
	var id = myID;
	
	if(!this.slideShowLooping){ return; }
	
	var playButt = document.getElementById(this.slidePlayButt);
	playButt.style.display = "none";	
	
	var myEl = document.getElementById(this.slide+id);
	
	myEl.style.display = "block";
	
	fadeIn = new OpacityTween(myEl,Tween.strongEaseIn, 0, 100, this.Tfin);
	fadeOut = new OpacityTween(myEl,Tween.strongEaseIn, 100, 0, this.Tfout);
	
	
	//slide dugmici
	var currentButt = document.getElementById(this.slideButt+myID);
	var previousButt = document.getElementById(this.slideButt+this.prevSlide);
	
	if(document.getElementById(this.slideButt+myID)){
	currentButt.setAttribute("class", this.buttCSSon); 
	currentButt.setAttribute("className", this.buttCSSon); //ovo je zbog IE
	}
	if(document.getElementById(this.slideButt+this.prevSlide)){
	previousButt.setAttribute("class", this.buttCSSoff); 
	previousButt.setAttribute("className", this.buttCSSoff); //ovo je zbog IE	
	}
	
	this.prevSlide = myID;
	
	
	fadeIn.start();
	
	if(this.brojSlajdova == this.curSlide){
		this.curSekvenca = parseInt(this.curSekvenca)+1;
		if(this.curSekvenca == this.brojSekvenci){
			//alert(this.curSekvenca);
			this.StopSlideshow();
			this.curSekvenca = 0;
			return;
		}
	}
	
	var myObjRef = this;
	fadeIn.onMotionFinished = function(){ 
		setTimeout("fadeOut.start()",myObjRef.kasnjenjeFadeOut);
		//fadeOut.start();  
	};
	
	fadeOut.onMotionFinished = function(){ 
	
		var mySlide = document.getElementById(myObjRef.slide+myObjRef.curSlide);
		mySlide.style.display = "none";
	
		nextSlide = parseInt(myObjRef.curSlide)+1; 
		
		if(!myObjRef.slideShowLooping){ return; }
		
		if(nextSlide <= myObjRef.brojSlajdova){
			myObjRef.curSlide = nextSlide;
			myObjRef.SlideShowLoop(nextSlide);
		}else{
			myObjRef.curSlide = 0;
			myObjRef.SlideShowLoop(0); 
		}
	};	

}




//STOP LOOP
this.StopSlideshow = function (){
	
	this.slideShowLooping = false;
	
	if(this.usePlayButton){
		var playButt = document.getElementById(this.slidePlayButt);
		playButt.style.display = "block";	
	}
}

//START LOOP
this.StartSlideshow = function (){
	
	var previous = document.getElementById(this.slide+this.prevSlide);
	previousHide = new OpacityTween(previous,Tween.strongEaseIn, 100, 0, this.Tfout);
	previousHide.start();
	
	this.slideShowLooping = true;
	this.curSlide = 0;
	this.SlideShowLoop(0);
}

}
