// $Id: slideshow.js,v 1.7 2006/12/25 16:26:47 timcn Exp $

$(document).ready(function() {
  if (!Drupal.settings.slideshow) return;
  
  $('.slideshow').each(function() {
    var container = $(this), slideshow = Drupal.settings.slideshow[this.id];
    if (!slideshow) return;
    
    function preloadImages(i) {
      var n = slideshow.images[++i];
      if (slideshow.current != i) {
        if (n) {
          n.image = $('<img />').src(n.src).load(function() { preloadImages(i); }); 
        } else {
          preloadImages(0);
        }
      }
    }
    
    function updateSlideshow() {
      var current = slideshow.images[slideshow.current];
      current.title = current.title || '';
      current.href = current.href || '#';
      
      container.        
        find('img').src(current.src).end().
        find('.title').html(current.title).end().
        find('.link').href(current.href).end().
        find('.current').html(slideshow.current).end();
      return false;
    }
    
    container.find('.previous').click(function() {
      if(!(slideshow.images[--slideshow.current])) slideshow.current = slideshow.total;
      return updateSlideshow();
    }).end().
    
    find('.next').click(function() {
      if(!(slideshow.images[++slideshow.current])) slideshow.current = 1;
      return updateSlideshow();
    }).end();
    
    preloadImages(slideshow.current);
  });
});