var mooCarrousel=new Class({Implements:[Events,Options],options:{onNext:Class.empty,onPrev:Class.empty,direction:"horizontal",transition:Fx.Transitions.linear,duration:500,mode:"buttons",progressBy:1,inertie:30,butts:{nextB:"vCarrouNext",prevB:"vCarrouPrev"},items:{space:10,width:100,height:150}},initialize:function(d,b,c,a){this.setOptions(a);this.carrou=$(d);this.defil=$(b);this.items=$$("."+c)||[];this.itemsNum=this.items.length;this.itemsRW=this.options.items.width+this.options.items.space;this.itemsRH=this.options.items.height+this.options.items.space;this.sectionW=this.itemsNum*this.itemsRW;this.sectionH=this.itemsNum*this.itemsRH;this.dn=this.options.progressBy;this.ch=this.carrou.getCoordinates().width/2;this.cv=this.carrou.getCoordinates().height/2;this.carLeft=this.carrou.getCoordinates().left;this.carTop=this.carrou.getCoordinates().top;this.move=0;this.tbMove=0;this.speed=-1/this.options.inertie;this.diff=0;this.tbDiff=0;this.speed=-1/this.options.inertie;if(this.itemsNum>this.dn){(2).times(function(){this.items.each(function(e){e.clone().inject(this.defil,"bottom")}.bind(this))}.bind(this));this.allitems=$$("."+c)||[];switch(this.options.direction){case"horizontal":this.defil.setStyles({width:this.sectionW*3,position:"absolute",left:-this.sectionW});break;case"vertical":this.defil.setStyles({height:this.sectionH*3,position:"absolute",top:-this.sectionH});break}if(this.options.mode=="buttons"){$(this.options.butts.nextB).addEvent("click",function(f){f.stop();this.toNext()}.bind(this));$(this.options.butts.prevB).addEvent("click",function(f){f.stop();this.toPrev()}.bind(this));this.defilFx=new Fx.Tween(this.defil,{transition:this.options.transition,duration:this.options.duration,link:"ignore",onComplete:function(){this.repos();this.compEvent()}.bind(this)})}else{if(this.options.mode=="mouse"){this.defil.addEvents({mouseenter:function(){if(this.enRoute){$clear(this.enRoute)}this.moveAO()}.bind(this),mousemove:function(f){this.mouseX=f.client.x;this.mouseY=f.client.y;this.diff=(this.mouseX-(this.carLeft-window.getScroll().x))-this.ch;this.tbDiff=(this.mouseY-(this.carTop-window.getScroll().y))-this.cv;this.move=this.diff*this.speed;this.tbMove=this.tbDiff*this.speed}.bind(this),mouseleave:function(){this.move=0;this.tbMove=0;$clear(this.enRoute);if(this.options.reset==true){this.deg=[];this.diff=0;this.tbDiff=0}}.bind(this)})}}}},repos:function(){this.defilPos=this.defil.getPosition(this.carrou);if(this.options.direction=="horizontal"){if(this.defilPos.x<=-this.sectionW*2){this.defil.setStyle("left",this.defilPos.x+this.sectionW)}if(this.defilPos.x>=-this.itemsRW*this.dn){this.defil.setStyle("left",this.defilPos.x-this.sectionW)}}if(this.options.direction=="vertical"){if(this.defilPos.y<=-this.sectionH*2){this.defil.setStyle("top",this.defilPos.y+this.sectionH)}if(this.defilPos.y>=-this.itemsRH*this.dn){this.defil.setStyle("top",this.defilPos.y-this.sectionH)}}},toNext:function(){this.compEvent=function(){this.fireEvent("onNext")};this.defilPos=this.defil.getPosition(this.carrou);if(this.options.direction=="horizontal"){this.defilFx.start("left",this.defilPos.x-(this.itemsRW*this.dn))}if(this.options.direction=="vertical"){this.defilFx.start("top",this.defilPos.y-(this.itemsRH*this.dn))}},toPrev:function(){this.compEvent=function(){this.fireEvent("onPrev")};this.defilPos=this.defil.getPosition(this.carrou);if(this.options.direction=="horizontal"){this.defilFx.start("left",this.defilPos.x+(this.itemsRW*this.dn))}if(this.options.direction=="vertical"){this.defilFx.start("top",this.defilPos.y+(this.itemsRH*this.dn))}},moveAO:function(){this.repos();this.defilPos=this.defil.getPosition(this.carrou);if(this.options.direction=="horizontal"){this.defil.setStyles({left:this.defilPos.x+this.move})}else{this.defil.setStyles({top:this.defilPos.y+this.tbMove})}this.enRoute=this.moveAO.delay(15,this)}});