var EasySlideshow=new Class({Implements:[Options,Events],options:{"useNav":true,"autoPlay":false,"interval":4,"fxInDuration":600,"fxOutDuration":300,"stackClass":"eSlide-stack","playButtonStartText":"Play slideshow","playButtonStopText":"Stop slideshow","playButtonClass":"eSlide-play","playButtonPlayingClass":"eSlide-play_isplaying","stepsWrapperClass":"eSlide-steps","stepHoveredClass":"eSlide-step_hovered","stepSelectedClass":"eSlide-step_selected","imageCurrentClass":"eSlide-image_current","clearClass":"clearfloat"},initialize:function(A,B){if(!A){return }this.setOptions(B);this.options.interval=this.options.interval*1000;this.eslide=$(A);this.stack=this.eslide.getElement("."+this.options.stackClass).setStyle("position","relative");this.images=this.stack.getElements("img");if(!this.images){return }this.numOfImages=this.images.length;this.index=0;this.nextImage=this.images[0];this.isPlaying=this.options.autoPlay;this.playButton=null;this.navSteps=null;if(this.images.length>0){this.setup()}},setup:function(){if(!Element.Events.pressEnter){Element.Events.pressEnter={base:"keydown",condition:function(A){return(A.key=="enter")}}}this.images.each(function(B,A){if(A==0){B.addClass(this.options.imageCurrentClass)}if(!B.hasClass(this.options.imageCurrentClass)){B.setOpacity(0)}B.setStyles({"position":"absolute","top":0,"left":0})}.bind(this));if(this.images.length<=1){this.options.useNav=false}if(this.options.useNav){this.buildNav()}if(this.options.autoPlay){this._startAutoPlay.delay(this.options.interval,this)}},buildNav:function(){var C=this._toggleAutoPlay.bindWithEvent(this);this.playButton=new Element("a",{"href":"javascript:void(0);","class":this.options.playButtonClass,"events":{"pressEnter":C,"mousedown":C}});var D=new Element("span").set("html",this.options.playButtonStartText).inject(this.playButton);this.playButton.inject(this.eslide,"bottom");this.navSteps=new Array();var B=new Element("ul",{"class":this.options.stepsWrapperClass});this.images.each(function(H,E){var F=this.options.stepHoveredClass;var G=function(){this.index=E;var I=this.nextImage;var J=this.images[E];if(this.isPlaying){this._stopAutoPlay()}if(I!=J){this._updateSteps();this._playFade(I,J)}}.bindWithEvent(this);this.navSteps[E]=new Element("li",{"class":(E==this.index)?this.options.stepSelectedClass:"","html":"<span>"+(E+1)+"</span>","events":{"pressEnter":G,"mousedown":G,"mouseenter":function(){this.addClass(F)},"mouseleave":function(){this.removeClass(F)}}}).inject(B,"bottom")}.bind(this));B.inject(this.eslide,"bottom");var A=new Element("div",{"class":this.options.clearClass}).inject(this.eslide,"bottom")},_toggleAutoPlay:function(){if(this.isPlaying==false){this._startAutoPlay()}else{this._stopAutoPlay()}},_startAutoPlay:function(){this.isPlaying=true;if(this.playButton!=null){this.playButton.addClass(this.options.playButtonPlayingClass);this.playButton.getElement("span").set("html",this.options.playButtonStopText)}this._autoPlayNext();this.interval=this._autoPlayNext.periodical(this.options.interval,this)},_stopAutoPlay:function(){this.isPlaying=false;if(this.playButton!=null){this.playButton.removeClass(this.options.playButtonPlayingClass);this.playButton.getElement("span").set("html",this.options.playButtonStartText)}$clear(this.interval)},_autoPlayNext:function(){var A=this.stack.getElement("img."+this.options.imageCurrentClass);if(this.index>=this.numOfImages-1){this.index=-1}this.index++;var B=this.images[this.index];this._updateSteps();this._playFade(A,B)},_playFade:function(D,G){var B=this.options.imageCurrentClass;var A=this.options.fxInDuration;var C=this.options.fxOutDuration;this.images.each(function(H){H.removeClass(B)});G.addClass(B);this.nextImage=G;var E=new Fx.Morph($(G),{"duration":A,"transition":new Fx.Transition(Fx.Transitions.Sine).easeIn});var F=new Fx.Morph($(D),{"duration":C,"transition":new Fx.Transition(Fx.Transitions.Sine).easeOut,"onComplete":function(H){E.start({"opacity":1})}}).start({"opacity":0})},_updateSteps:function(){if(this.navSteps!=null){this.navSteps.each(function(A){A.removeClass(this.options.stepSelectedClass)}.bind(this));this.navSteps[this.index].addClass(this.options.stepSelectedClass)}}})