var SlideShow=new Class({options:{slidesArray:[],startingSlide:0,slidesContainer:null,nextBtn:null,prevBtn:null,startRandom:false,timeOut:5000},initialize:function(options){this.setOptions(options);this.timeoutId=null;this.currentSlide=this.options.startingSlide;this.slidesContainer=$(this.options.slidesContainer);this.nextBtn=$(this.options.nextBtn);this.prevBtn=$(this.options.prevBtn);this.box=new Element("div",{"class":"box","height":this.slidesContainer.getSize().y,"width":this.slidesContainer.getSize().x,"opacity":0}).inject(this.slidesContainer);this.loading=new Element("div",{"class":"loading","visibility":"hidden"}).injectAfter(this.box);this.FxOptions={"duration":600,"transition":Fx.Transitions.Expo.easeOut,"wait":true};this.boxFx=new Fx.Morph(this.box,this.FxOptions);this.nextBtn.addEvent('click',function(){this.goToNext()}.bind(this));this.prevBtn.addEvent('click',function(){this.goToPrev()}.bind(this));if(this.options.slidesArray.length>1){this.slidesContainer.addEvent('mouseenter',function(){this.showControlls()}.bind(this));this.slidesContainer.addEvent('mouseleave',function(){this.hideControlls()}.bind(this))}this.showSlide(this.currentSlide)},showSlide:function(index){var images=[this.options.slidesArray[index][0]];this.startBox();var loadedImages=[];new Asset.images(images,{onProgress:function(i){loadedImages[i]=this},onComplete:function(){(function(){if(this.slidesContainer.getElement('a.target')!=null){this.slidesContainer.getElement('a.target').dispose()}loadedImages.each(function(image,i){var slide=new Element("a",{"class":"target","href":this.options.slidesArray[this.currentSlide][1], "title" : this.options.slidesArray[this.currentSlide][2]}).injectBefore(this.box).adopt(image)},this);this.endBox.delay(500,this)}.delay(500,this))}.bind(this)})},startBox:function(){this.hideControlls();this.boxFx.start({"opacity":1}).chain(function(){this.loading.setStyles('visibility','visible')}.bind(this))},endBox:function(){this.loading.setStyle('display','none');this.boxFx.start({"opacity":0.00001}).chain(function(){this.box.setStyle("visibility","hidden");if(this.options.slidesArray.length>1){this.timeoutId=this.goToNext.delay(this.options.timeOut,this)}}.bind(this))},goToNext:function(){$clear(this.timeoutId);if(this.currentSlide==this.options.slidesArray.length-1){this.currentSlide=0;this.showSlide(this.currentSlide)}else{this.currentSlide++;this.showSlide(this.currentSlide)}},goToPrev:function(){$clear(this.timeoutId);if(this.currentSlide==0){this.currentSlide=this.options.slidesArray.length-1;this.showSlide(this.currentSlide)}else{this.currentSlide--;this.showSlide(this.currentSlide)}},showControlls:function(){this.nextBtn.setStyle('display','block');this.prevBtn.setStyle('display','block')},hideControlls:function(){this.nextBtn.setStyle('display','none');this.prevBtn.setStyle('display','none')}});SlideShow.implement(new Events,new Options);