

var slideshow = {

  number_of_slides: 0,
  slides: new Array(),
  active_slide: null,
  slideshow_interval: 5000,
  
  init: function() {

    slideshow.number_of_slides = $('#landing-slideshow-window div.slide').length;

    if(slideshow.number_of_slides == 0) {
      return;
    }

    $('#landing-slideshow-control-list').append('<ul id="landing-slideshow-control-number-list"></ul>');

    var slide_number = 1;
    $('#landing-slideshow-window div.slide').each(function() {

      if(slide_number == 1) {
        $('#landing-slideshow-control-number-list').append('<li class="number first active">'+slide_number+'</li>');
      } else if(slide_number == slideshow.number_of_slides) {
        $('#landing-slideshow-control-number-list').append('<li class="number last">'+slide_number+'</li>');
      } else {
        $('#landing-slideshow-control-number-list').append('<li class="number">'+slide_number+'</li>');
      }

      var slide = slideshow.slides[slide_number] = $(this);
      slide.number = slide_number;
      slideshow.slides[slide_number]['numberObj'] = $('#landing-slideshow-control-number-list li.number').eq(slide_number-1);

      slideshow.slides[slide_number]['numberObj'].bind('click', function() {
        slideshow.stopSlideShow();
        slideshow.showSlide(slide);
      });

      slide_number++;
    });

    slideshow.active_slide = slideshow.slides[1];
    slideshow.startSlideShow();
  },
  showSlide: function(slide) {
    slideshow.hideCurrentSlide();
    $(slide).css('opacity', '0').animate({opacity: 1}, 1500);
    $(slide).addClass('active');
    $(slide.numberObj).addClass('active');
    slideshow.active_slide = slide;
  },
  hideCurrentSlide: function() {
    $(slideshow.active_slide).removeClass('active');
    $(slideshow.active_slide.numberObj).removeClass('active');
  },
  showNext: function() {
    var next_index = (slideshow.active_slide.number+1 > slideshow.number_of_slides) ? 1 : slideshow.active_slide.number+1;
    slideshow.showSlide(slideshow.slides[next_index]);
  },
  showPrevious: function() {
    var next_index = (slideshow.active_slide.number-1 > 1) ? slideshow.active_slide.number-1 : 1;
    slideshow.showSlide(slideshow.slides[next_index]);
  },
  selectNext: function() {
    var next_index = (slideshow.active_slide.number+1 > slideshow.number_of_slides) ? 1 : slideshow.active_slide.number+1;
    slideshow.stopSlideShow();
    slideshow.showSlide(slideshow.slides[next_index]);
  },
  selectPrevious: function() {
    var next_index = (slideshow.active_slide.number-1 > 0) ? slideshow.active_slide.number-1 : slideshow.number_of_slides;
    slideshow.stopSlideShow();
    slideshow.showSlide(slideshow.slides[next_index]);
  },
  startSlideShow: function() {
    slideshow.interval = setInterval(slideshow.showNext, slideshow.slideshow_interval);
  },
  stopSlideShow: function() {
    clearInterval(slideshow.interval);
  }
}
$(document).ready(function(){
  slideshow.init();
});
