/*
  slideshow
  
  javascript:
    $('div.slideshow').slideshow();
    
  styles:
    div.slideshow { position:relative }
    div.slideshow img { position:absolute; top:0; left:0; z-index:8 }
    div.slideshow img.bovenop { z-index:10 }
    div.slideshow img.erachter { z-index:9 }

  xml:
    <slideshow>
      [WebEtui::thumbs(album:album, desc_class:acties)]
    </slideshow>
  
  html:
    <div class="slideshow">
      <img src="foto/album/foto1.jpg"/>
      <img src="foto/album/foto2.jpg"/>
      <img src="foto/album/foto3.jpg"/>
      ..
    </div>
*/

(function($) {
  $.fn.slideshow = function(options) {
    var settings = $.extend({
      intervalTime : 5000,
      fadingTime   : 1000,
      firstSlide   : 0,
      description  : null
    }, options || {});
    
    return this.each(function() {
      var title = $('img:eq('+settings.firstSlide+')', this).addClass('bovenop').attr('title');
      if (settings.description && title != "") {
        $(settings.description).children(':contains(' + title + ')').addClass('bovenop');
      }
      var obj = this;
      function slide() {
        var bovenop = $('img.bovenop', obj);
        if ( bovenop.length == 0 ) bovenop = $('img:last', obj);
        var next =  bovenop.next('img').length ? bovenop.next('img')  : $('img:first', obj);
        
        bovenop.addClass('erachter');
        
        if (settings.description && next.attr('title') != "") {
          $(settings.description).children().removeClass('bovenop');
          $(settings.description).children(':contains(' + next.attr('title') + ')').addClass('bovenop');
        }
        
        next.css({opacity: 0.0})
          .addClass('bovenop')
          .animate({opacity: 1.0}, settings.fadingTime, function() {
              bovenop.removeClass('bovenop erachter');
          });
      }
      this.intervalID = setInterval( slide, settings.intervalTime );
      this.show_initialized = true;
    });
    
  }
  
  $.fn.slide_stop = function() {
    return this.each(function() {
      clearInterval(this.intervalID);
    });
  }
})(jQuery);