var BDS={}
BDS.Slideshow=Class.create();BDS.Slideshow.DefaultOptions={duration:0.6,seconds_per_slide:10.0,pause_on_mouseover:true,onChange:function(){}}
Object.extend(BDS.Slideshow.prototype,{initialize:function(container,slide_selector,options){this.options=Object.extend(Object.extend({},BDS.Slideshow.DefaultOptions),options||{});this.container=$(container);this.slides=Selector.findChildElements(this.container,[slide_selector]);this.currentSlide=0;this.paused=false;var self=this;this.slides.each(function(slide,idx){if(idx>0)Element.hide(slide);if(self.options.pause_on_mouseover){}})
this.start();this.options.onChange(this);},forward:function(){var newSlideIdx=this.currentSlide+1;if(newSlideIdx>=this.slides.length)newSlideIdx=0;this.transition(newSlideIdx);},backward:function(){var newSlideIdx=this.currentSlide-1;if(newSlideIdx<=0)newSlideIdx=this.slides.length-1;this.transition(newSlideIdx);},jumpToSlide:function(idx){if(idx<0||idx>=this.slides.length)return false;this.stop();this.transition(idx);},start:function(){if(this.interval)return;this.interval=setInterval(this.forward.bind(this),this.options.seconds_per_slide*1000);this.container.addClassName('playing');},stop:function(){if(!this.interval)return;clearInterval(this.interval);this.interval=null;this.container.removeClassName('playing');},pausePlay:function(){if(this.interval)this.stop();else this.start();},transition:function(newSlideIdx){var oldSlideIdx=this.currentSlide;if(newSlideIdx==oldSlideIdx)return;if(this.fadeIn&&this.fadeIn.state!='finished')this.fadeIn.cancel();if(this.fadeOut&&this.fadeOut.state!='finished'){this.fadeOut.cancel();Element.hide(this.fadeOut.element);}
this.fadeOut=new Effect.Fade(this.slides[oldSlideIdx],{duration:this.options.duration});this.fadeIn=new Effect.Appear(this.slides[newSlideIdx],{duration:this.options.duration});this.currentSlide=newSlideIdx;this.options.onChange(this);}});