var ImageSlider=new Class({Implements:[Options,Events],options:{objToSlide:"",sliderElements:"",numOfElementsToSlide:2,numOfElementsShown:3,leftBtn:"",rightBtn:"",easing:Fx.Transitions.Expo.easeInOut},initialize:function(a){this.setOptions(a);this.options.objToSlide=$(this.options.objToSlide);if(!(this.options.objToSlide)){return false}this.setup()},setup:function(){var d=this.options;d.sliderElements=(d.objToSlide.getElements(d.sliderElements));d.leftBtn=$(d.leftBtn);d.rightBtn=$(d.rightBtn);d.objToSlide.setStyles({position:"relative",left:0});var b=$(d.sliderElements[0]);var c=parseFloat(b.getStyle("margin-left"))+parseFloat(b.getStyle("margin-right"));var a=b.getSize();d.elementWidth=a.x+c;d.objToSlide.setStyle("width",(d.elementWidth*d.sliderElements.length));d.index=0;d.total=d.sliderElements.length-d.numOfElementsShown;d.totalMoves=-(d.total/d.numOfElementsToSlide);d.myFx=new Fx.Morph(d.objToSlide,{duration:500,transition:d.easing,link:"chain"});if(d.total<=0){$(d.leftBtn).setStyle("display","none");$(d.rightBtn).setStyle("display","none")}d.leftBtn.addEvent("click",this.leftClick.bindWithEvent(this));d.rightBtn.addEvent("click",this.rightClick.bindWithEvent(this))},leftClick:function(b){b.stop();if(this.sliding){return}var d=this.options;var a;d.index+=1;if(d.index<0){a=(d.elementWidth*d.numOfElementsToSlide)*d.index;this.fireEvent("onMiddleEl",this.options.index)}else{d.index=0;a=0;this.fireEvent("onFirstEl",this.options.index)}var c=d.objToSlide.getCoordinates(d.objToSlide.getParent()).left;if(c==a){return false}this.slide(a)},rightClick:function(b){b.stop();if(this.sliding){return}var d=this.options;var a;d.index-=1;if(d.index>d.totalMoves){a=(d.elementWidth*d.numOfElementsToSlide)*d.index;this.fireEvent("onMiddleEl",this.options.index)}else{d.index=d.totalMoves;a=(d.elementWidth*d.numOfElementsToSlide)*d.index;this.fireEvent("onLastEl",this.options.index)}var c=d.objToSlide.getCoordinates(d.objToSlide.getParent()).left;if(c==a){return false}this.slide(a)},slide:function(a){this.sliding=true;this.options.myFx.start({left:a}).chain(function(){this.sliding=false;this.fireEvent("onSlideComplete",this.options.index)}.bind(this))},slideTo:function(c){if($type(c)!="number"){return false}var b=this.options;c=c+1;var a;b.index=-(((c-b.numOfElementsShown)/b.numOfElementsToSlide).round());if(b.index>=b.totalMoves){a=(b.elementWidth*b.numOfElementsToSlide)*b.index}else{b.index=b.totalMoves;a=(b.elementWidth*b.numOfElementsToSlide)*b.index}this.slide(Math.min(0,a))}});