var slideWidth = 970;
var slideCount = 0;
var autoslideing = true;
var autoslideWait = 6000;
var currentIndex = 0;
var slides = null;
var sliding = false;

function sliderSetup(){
  slides = $$('#homeSlider .slide');
  slides.each(function(slide,index){
    if(index!=0){
      slide.style.left = slideWidth + "px";
      slide.style.zIndex = 0;
    }
  });
  
  slideCount = slides.size();
  if(autoslideing){
    setTimeout(autoslide,autoslideWait)
      }
  //console.log("did setup and slide count = " + slideCount );
}  


//This one handles actual clicks
function slideSlides(direction){
  autoslideing = false;
  slideSlidesImpl(direction);
  return false;
}

function autoslide(){
  if(autoslideing){
    slideSlidesImpl('right');
    setTimeout(autoslide,autoslideWait)
      }
}


function nextSlideIndex(direction){
  var nextIndex = 0;
  if(direction == 'left'){
    nextIndex = currentIndex + 1;
    if( nextIndex >= slideCount ){
      nextIndex = 0;
    }
  }else{
    nextIndex = currentIndex - 1;
    if( nextIndex < 0 ){
      nextIndex = slideCount - 1;
    }
  }
  return nextIndex;
}

function slideSlidesImpl(direction){
  if(sliding){return}
    sliding = true;
              var nextIndex = nextSlideIndex(direction);
              var nextSlide = slides[nextIndex];
              var currentSlide = slides[currentIndex];
              currentSlide.style.zIndex = 1;
              nextSlide.style.zIndex = 2;
              if(direction == "left"){
                nextSlide.style.left = "-" + slideWidth + "px";
              }else{
                nextSlide.style.left = slideWidth + "px";
              }
              new Effect.Move(nextSlide, { x: 0, y: 0, mode: 'absolute', duration: 0.5, afterFinish : cleanupSlides });
              currentIndex = nextIndex;
              
              /*
              curLeft = $('slideTable').offsetLeft;
              if(direction == 'left' ){
              if(curLeft > minLeft){
              new Effect.Move('slideTable', { x: -1*slideWidth, y: 0, mode: 'relative', duration: 1 });
             }else{
              new Effect.Move('slideTable', { x: maxLeft, y: 0, mode: 'absolute', duration: 1 });
             }
             }else{ 
              if( curLeft < maxLeft ){
              new Effect.Move('slideTable', { x: slideWidth, y: 0, mode: 'relative', duration: 1 });
             }else{
              new Effect.Move('slideTable', { x: minLeft, y: 0, mode: 'absolute', duration: 1 });
             }
             }
              */
              
             }
  
  function cleanupSlides(){
    slides.each(function(slide,index){
      if( index != currentIndex){
        slide.style.left = slideWidth + "px";
        slide.style.zIndex = 0;
      }
    });
    sliding = false;
  }
  
  document.observe('dom:loaded',  function(){ sliderSetup(); } );
  
