// JavaScript code for the ImageSlideShow Component  

var imageSlideShows = new Array();  

// Internal data structure used for each Slide  
function ImageSlide(imageUrl, title, slideUrl) {  
  this.title = title;  
  this.slideUrl = slideUrl;  
  this.image = new Image();  
  this.image.src = imageUrl;  
}  

function ImageSlideShow(key, interval) {  
  this.key = key;  
  this.idx = 0;  
  this.timer = null;  
  this.interval = interval;  
  this.slides = new Array();  
  this.btnImg = new Array();  
  this.btnImg2 = new Array();  
  this.pauseLabel = "||";  
  this.playLabel = ">";  
  if (!imageSlideShows[key]) {imageSlideShows[key] = this};  


  this.addSlide = function (slideImg, slideTitle, slideURL) {  
    this.slides[this.slides.length] = new ImageSlide(slideImg, slideTitle, slideURL);  
  }  
    
  this.addButtonImg = function (img1, img2) {  
 this.btnImg[this.slides.length] = img1;  
 this.btnImg2[this.slides.length] = img2;  
  }  

  this.updateDiv = function() {  
    var fadeTime = IWOV_FX.fadeOut(this.key+"_div", 25, 10);  
    setTimeout("imageSlideShows['"+key+"'].setSlide()", fadeTime);  
    setTimeout("IWOV_FX.fadeIn('"+this.key+"_div', 25, 10)", fadeTime);  
  }  

  this.setSlide = function() {  
    try {  
      var slide = this.slides[this.idx];  
      var d = document.getElementById(this.key+"_div");  
      var a = d.getElementsByTagName("a")[0];  
      var img = d.getElementsByTagName("img")[0];  
      var bookTarget = d.getElementsByTagName("input")[0];  
	  
	  
		  if (!a || !img) {  
			// Establish the initial content of the div, an <a><img/></a> structure where src=  
			// and title= attributes will be replaced from now on.  
			
			if(slide.slideUrl != "") {
				d.innerHTML = "<a "  
				  + "href='"+slide.slideUrl+"' "  
				  + "><img border='0' width='500' height='290'"  
				  + "title='"+slide.title+" ' "  
				  + "src='"+slide.image.src+"' "  
				  + "/></a><input type='hidden' name='bookTarget' value='"+slide.slideUrl+"'/>";  
			} else {
				d.innerHTML = "<a "  
				  + "><img border='0' width='500' height='290'"  
				  + "title='"+slide.title+" ' "  
				  + "src='"+slide.image.src+"' "  
				  + "/></a>";  
			}
		  }  
		  else {  
			// Replace attributes in the existing <a><img/></a> content.
						//a.href = slide.slideUrl;  
						img.title = slide.title;  
						img.src = slide.image.src;  
				  //bookTarget.value = slide.slideUrl;  
				  var buttons = document.getElementById('buttons');  
				  var imgs = buttons.getElementsByTagName("img");  
				  for (var i = 0; i < this.slides.length; i++) {  
				   if (i == this.idx) {  
					imgs[i].src = this.btnImg2[i];  
				   } else {  
					imgs[i].src = this.btnImg[i];  
				   }  
				  }  
		  }  
	
	
	
      document.getElementById(this.key+"_buttonDiv").style.visibility = "inherit";  
    } catch (noSlidesException) {}  
  }  

  this.goNext = function() {  
    if (this.idx < this.slides.length-1) {  
      this.idx++;  
    } else {  
      this.idx = 0;  
    }  
    this.updateDiv();  
  }  

  this.goPrev = function() {  
    if (this.idx > 0) {  
      this.idx--;  
    } else {  
      this.idx = this.slides.length-1;  
    }  
    this.updateDiv();  
  }  

  this.setPauseBtnLabels = function(pauseLabel, playLabel) {  
    this.pauseLabel = pauseLabel;  
    this.playLabel = playLabel;  
  }  
    
  this.togglePause = function(pauseBtn, isGraphic) {  
    if (this.timer!=null) {  
      // pausing  
      clearInterval(this.timer);  
      this.timer = null;  
      if (pauseBtn) {  
        pauseBtn.title = pauseBtn.getAttribute("pausedTitle");  
        if (isGraphic) {  
          pauseBtn.style.backgroundImage = "url('" + this.playLabel +"')";  
        } else {  
          pauseBtn.innerHTML = this.playLabel;  
        }  
      }  
    } else {  
      // starting  
      this.timer = setInterval("imageSlideShows['"+this.key+"'].goNext()", this.interval*1000);  
      if (pauseBtn) {  
        this.goNext();  
        pauseBtn.title = pauseBtn.getAttribute("playingTitle");  
        if (isGraphic) {  
          pauseBtn.style.backgroundImage =  "url('" + this.pauseLabel +"')";  
        } else {  
          pauseBtn.innerHTML = this.pauseLabel;  
        }  
      }  
    }  
  }  

  this.restartTimer = function() {  
    if (this.timer!=null) {  
      clearInterval(this.timer);  
      this.timer = setInterval("imageSlideShows['"+this.key+"'].goNext()", this.interval*1000);  
    }  
  }  

  this.clickNext = function() {  
    this.goNext();  
    this.restartTimer();  
  }  

  this.clickPrev = function() {  
    this.goPrev();  
    this.restartTimer();  
  }  

}  

