/*******************************************************************************
____________________________ API DOCUMENTATION BEGIN ___________________________
````````````````````````````````````````````````````````````````````````````````
Provides support for slide show.

````````````````````````````````````````````````````````````````````````````````
_____________________________ API DOCUMENTATION END ____________________________
*******************************************************************************/

//------------------------------------------------------------------------------
// VARIABLES BEGIN
//------------------------------------------------------------------------------

currentSlide = 0; //current slide
slideDelay = 4500; //slide change speed
slideArr = new Array(); //slide array

//------------------------------------------------------------------------------
// VARIABLES END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// CLASS CONSTRUCTORS BEGIN
//------------------------------------------------------------------------------

//CLASS CONSTRUCTOR--
function Class_SlideShow(argDivID, argSlide, argLedDivID, argLedX) {
 this.objDivElement = document.getElementById(argDivID); //create reference to [object HTMLDivElement]
 this.slide = argSlide;
 this.ledID = document.getElementById(argLedDivID); 
 this.ledX = argLedX+"px";
}

//------------------------------------------------------------------------------
// CLASS CONSTRUCTORS END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// FUNCTIONS BEGIN
//------------------------------------------------------------------------------

function initSlides() {
 pageLoaded = true;
 slideTimer = setTimeout("doSlide(1)", slideDelay); //invoke slide show
}

addOnLoadEvent(initSlides);
//window.onload = initSlides;

//FUNCTION-- invokes clearTimer and setSlide functions
function doSlide(argDirection) {
 if(pageLoaded)
 {
  if(slideTimer) clearTimer();
  setSlide(argDirection);
 }
}

//------------------------------------------------------------------------------

//FUNCTION-- sets slide for viewing
function setSlide(argDirection) {
 if(pageLoaded)
 {
	if(argDirection == null) //if called from image
	{
   slideArr[currentSlide].objDivElement.innerHTML = slideArr[currentSlide].slide;
   slideArr[currentSlide].ledID.style.left = slideArr[currentSlide].ledX;
	}
  else if(argDirection) //clicked next button
  {
	 if(currentSlide < slideArr.length-1) {currentSlide += 1;}
	 else {currentSlide = 0;}
   slideArr[currentSlide].objDivElement.innerHTML = slideArr[currentSlide].slide;
   slideArr[currentSlide].ledID.style.left = slideArr[currentSlide].ledX;
  }
  else //clicked previous button
  {
	 if(currentSlide != 0) {currentSlide -= 1;}
	 else {currentSlide = slideArr.length-1;}
   slideArr[currentSlide].objDivElement.innerHTML = slideArr[currentSlide].slide;
   slideArr[currentSlide].ledID.style.left = slideArr[currentSlide].ledX;
  }
 }
 slideTimer = setTimeout("setSlide(1)", slideDelay);
}

//------------------------------------------------------------------------------

//FUNCTION-- clears setTimeout object
function clearTimer() {
 if(pageLoaded) clearTimeout(slideTimer);
}

//------------------------------------------------------------------------------
// FUNCTIONS END
//------------------------------------------------------------------------------