// $Id: carousel.js,v 1.12 2009/04/21 19:12:55 mguan Exp $

var isDom = (document.getElementById && document.getElementsByTagName);
var slideBox;
var slideShow;
var slides = new Array();
var slide;
var currentSlide = 0;
var oldSlide;
var newSlide;
var stopRotate = false;
var slideCtr;
var slideBtn;
var oldBtn;
var newBtn;
var playButton;
var pauseBtn = false;

function prepareSlides() {
  slideBox = document.getElementById('rotator');
  slideShow = slideBox.getElementsByTagName('div');
  slideCtr = document.getElementById('rotControls');
  slideBtn = slideCtr.getElementsByTagName('a');
  playButton = document.getElementById('playbutton');
  var j=0;

  for (var i=0; i<slideShow.length; i++) {
        if(/slide /.test(slideShow[i].className)){
            slides[j]=slideShow[i];
            j++;
        }
  }

  //will need to increment the array by the longest time specified in the admin
  window.setInterval( "changeSlide(slides)", rotationTime*1000);

}

function changeSlide(slides){
  var oldSlideIndex = currentSlide;

  if(!stopRotate && !pauseBtn){

    currentSlide++;
    //reset the currentslide if we reached the end of the array
    if(currentSlide == slides.length)
      currentSlide = 0;

    oldSlide = slides[oldSlideIndex];
    newSlide = slides[currentSlide];

    oldBtn = slideBtn[oldSlideIndex];
    newBtn = slideBtn[currentSlide];

    oldSlide.style.visibility = "visible";
    newSlide.style.visibility = "visible";

    for(tempcount = 1; tempcount < 11; tempcount++ ){
      setTimeout('fadeSlides('+tempcount+')', 100*tempcount);
    }
  }

  return false;
}

function fadeSlides(val){

  //decrement the opacity of the old slide
  oldSlide.style.opacity = 1/val;
  oldSlide.style.filter = 'alpha(opacity=' + (100-(10*val)) + ')';

  //increment the opacity of the new slide
  newSlide.style.opacity = val/10;
  newSlide.style.filter = 'alpha(opacity=' + (10*val) + ')';

  if (val == 10){
    oldSlide.style.opacity = 0;
    oldSlide.style.visibility = "hidden";
    newBtn.className = "active";
    oldBtn.className = "";
  }
}

function ShowImage(imageIndex){

  imageIndex = imageIndex - 1;
  currentSlide = imageIndex;

  slides[imageIndex].style.visibility = "visible";
  slides[imageIndex].style.opacity = 1;
  slides[imageIndex].style.filter = 'alpha(opacity='+ 100 + ')';
  if(slideBtn[imageIndex])
    slideBtn[imageIndex].className = "active";
  
  pauseBtn = true;
  
  if(playImage && playButton)
    playButton.src = playImage;

  for(var i =0; i < slides.length; i++){
    if(i != imageIndex){
      slides[i].style.visibility = "hidden";
      slides[i].style.opacity =0;
      slides[i].style.filter = 'alpha(opacity=0)';

      if(slideBtn[i])
        slideBtn[i].className = "";
    }
  }
}

function ShowRotator(){

    if( document.getElementById('rotControls'))
    {
      slideCtr = document.getElementById('rotControls');
      
      if(slideCtr.style.visibility == 'hidden')
      {  
        ShowImage(currentSlide+1);
        slideCtr.style.visibility = "visible";
        stopRotate = false;  // start rotate
        TogglePlay();
      }
    }
    else // plain img
    {
        document.getElementById('rotator').style.visibility = "visible";
    }
}

function HideRotator()
{
    if( document.getElementById('rotControls') )
    {
      for(var i=0; i < slides.length; i++){
        slides[i].style.visibility = "hidden";
      }

      slideCtr = document.getElementById('rotControls');
      slideCtr.style.visibility = "hidden";
      // isRotatorHidden = true;
      stopRotate = true;
    }
    else // plain img
    {
        document.getElementById('rotator').style.visibility = "hidden";
    }
}

//This is called on mouseOut
function playSlideShow(event){

  stopRotate = false;

  if(!stopRotate && !pauseBtn && playButton)
  { 
    playButton.src = pauseImage;    
    slideBtn[(slideBtn.length-1)].className = "";
  } 
}

//This is called on mouseOver
function stopSlideShow(){
  stopRotate = true;
  if(stopRotate && !pauseBtn && playButton){
    playButton.src = pauseImage;
    slideBtn[(slideBtn.length)-1].className = "active";
  }
}

function TogglePlay(){

  pauseBtn = !pauseBtn;
  
  if(!playButton)
    return;
    
  if(pauseBtn == true){
    playButton.src = playImage;
  }
  else{
    playButton.src = pauseImage;
  }

}
