﻿function SlideShow( hold_time )
{
  this.slides = YAHOO.util.Dom.getElementsByClassName("LatestSplash", "div");
  this.captions = YAHOO.util.Dom.getElementsByClassName("LatestCaption", "div");
  this.iCurrSlide = 0;
  this.iPrevSlide = this.slides.length - 1;

  var self = this;

  this.move_next_slide = function(p_bShowAnim)
  {
    self.move_slide(1, p_bShowAnim);
  }
  
  this.move_prev_slide = function(p_bShowAnim)
  {
    self.move_slide(-1, p_bShowAnim);
  }

  this.move_slide = function(p_iDirection, p_bShowAnim)
  {

      self.disableControls();

      if (self.slides.length > 1)
      {

          self.iPrevSlide = self.iCurrSlide;

          self.iCurrSlide = self.iCurrSlide + p_iDirection;

          if (self.iCurrSlide == self.slides.length)
              self.iCurrSlide = 1;

          if (self.iCurrSlide == 0)
              self.iCurrSlide = self.slides.length - 1;


          self.captions[self.iPrevSlide].style.bottom = "-300px";
          self.captions[self.iPrevSlide].style.zIndex = 0;
          self.slides[self.iPrevSlide].style.zIndex = 0;

          self.captions[self.iCurrSlide].style.zIndex = 100;
          self.slides[self.iCurrSlide].style.zIndex = 99;


          if (p_bShowAnim == true)
          {

              var fadeOut = new YAHOO.util.Anim(self.slides[self.iPrevSlide], { opacity: { from: 1, to: 0} });
              var fadeIn = new YAHOO.util.Anim(self.slides[self.iCurrSlide], { opacity: { from: 0, to: 1} });

              var iTop = -1 * (self.captions[self.iCurrSlide].offsetHeight - 4);
              var fadeInCaption = new YAHOO.util.Anim(self.captions[self.iCurrSlide],
                    { bottom: { from: iTop, to: -3} }, 0.5, YAHOO.util.Easing.easeIn);

              fadeIn.onComplete.subscribe(function()
              {
                  self.swapSlides();
                  fadeInCaption.animate();
              });
              
              fadeInCaption.onComplete.subscribe(self.enableControls);

              fadeOut.animate();
              fadeIn.animate();
          }
          else
          {
              self.swapSlides();
              self.captions[self.iCurrSlide].style.bottom = 0;

              self.enableControls();
          }
      }
  }

  this.swapSlides = function()
  {
      self.slides[self.iPrevSlide].style.filter = "alpha(opacity=0)";
      self.slides[self.iPrevSlide].style.opacity = 0;

      self.slides[self.iCurrSlide].style.filter = "alpha(opacity=100)";
      self.slides[self.iCurrSlide].style.opacity = 1;
  }
  
  this.disableControls = function()
  {
      document.getElementById("SplashControls").style.visibility = "hidden";
  }

  this.enableControls = function()
  {
      document.getElementById("SplashControls").style.visibility = "visible";
  }
  
  this.pause = function()
  {
    if (self.timerId)
    {
        clearInterval(self.timerId);
    }
    document.getElementById("playSlide").style.backgroundPosition = "-40px 0";

    YAHOO.util.Event.removeListener("playSlide", "click");  
    YAHOO.util.Event.on("playSlide", "click", function () { self.move_next_slide(true); self.play(); }); 
  }

  this.play = function()
  {
    self.timerId = setInterval( function() { self.move_next_slide(true); }, self.hold_time );
    document.getElementById("playSlide").style.backgroundPosition = "-20px 0";
    
    YAHOO.util.Event.removeListener("playSlide", "click");  
    YAHOO.util.Event.on("playSlide", "click", self.pause); 
  }
  
  this.move_next_slide(true);
  this.hold_time = hold_time; 
  this.timerId = setInterval( function() { self.move_next_slide(true); }, this.hold_time );
  
  YAHOO.util.Event.on("prevSlide", "click", function () { self.pause(); self.move_prev_slide(false); }); 
  YAHOO.util.Event.on("nextSlide", "click", function () { self.pause(); self.move_next_slide(false); }); 
  YAHOO.util.Event.on("playSlide", "click", self.pause); 

}

var imagesLoaded = 0;
function splashSlideShowStart(imgNum)
{
    imagesLoaded += imgNum;
    if (imagesLoaded == 15)
    {
        var slide_show = new SlideShow(9000);
    }
}    

