var SlideItMoo=new Class({Implements:[Options],options:{overallContainer:null,elementScrolled:null,thumbsContainer:null,itemsVisible:5,elemsSlide:1,itemsSelector:null,itemWidth:null,itemHeight:null,showControls:1,transition:Fx.Transitions.linear,duration:800,direction:1,vertical:0,autoSlide:false,mouseWheelNav:false,stopOnHover:true,forwardButton:null,backButton:null,pauseButton:null,playButton:null},initialize:function(a){this.setOptions(a);this.elements=$(this.options.thumbsContainer).getElements(this.options.itemsSelector);
this.totalElements=this.elements.length;if(!(this.totalElements<=this.options.itemsVisible)){this.elementWidth=this.options.itemWidth||this.elements[0].getSize().x;this.elementHeight=this.options.itemHeight||this.elements[0].getSize().y;this.currentElement=0;this.direction=this.options.direction;this.autoSlideTotal=this.options.autoSlide+this.options.duration;if(this.options.elemsSlide==null)this.options.elemsSlide=1;this.begin()}},begin:function(){this.setContainersSize();this.myFx=new Fx.Morph(this.options.thumbsContainer,
{wait:true,transition:this.options.transition,duration:this.options.duration});this.addControls();this.options.mouseWheelNav&&!this.options.autoSlide&&$(this.options.thumbsContainer).addEvent("mousewheel",function(a){(new Event(a)).stop();this.slide(a.wheel>0?-1:1)}.bind(this));this.options.autoSlide&&this.startAutoSlide()},setContainersSize:function(){if(this.options.vertical){$(this.options.overallContainer).set({styles:{height:this.options.itemsVisible*this.elementHeight}});$(this.options.elementScrolled).set({styles:{height:this.options.itemsVisible*
this.elementHeight}});$(this.options.thumbsContainer).set({styles:{height:this.totalElements*(this.elementHeight+10)}})}else{$(this.options.overallContainer).set({styles:{width:this.options.itemsVisible*this.elementWidth}});$(this.options.elementScrolled).set({styles:{width:this.options.itemsVisible*this.elementWidth}});$(this.options.thumbsContainer).set({styles:{width:this.totalElements*(this.elementWidth+10)}})}},addControls:function(){if(this.options.showControls){var a=this;this.fwd=$$(this.options.forwardButton);
(this.fwd=this.fwd.length>0?this.fwd[0]:false)&&this.fwd.addEvent("click",this.slide.pass(this.options.direction,this));this.bkwd=$$(this.options.backButton);(this.bkwd=this.bkwd.length>0?this.bkwd[0]:false)&&this.bkwd.addEvent("click",this.slide.pass(-1*this.options.direction,this));this.play=$$(a.options.playButton);(this.play=this.play.length>0?this.play[0]:false)&&this.play.addEvent("click",function(){a.autoSlide=a.startIt.periodical(a.autoSlideTotal,a);a.pause.setStyle("display","block");a.play.setStyle("display",
"none")});this.pause=$$(this.options.pauseButton);(this.pause=this.pause.length>0?this.pause[0]:false)&&this.pause.addEvent("click",function(){$clear(a.autoSlide);a.pause.setStyle("display","none");a.play.setStyle("display","block")})}},slide:function(a){if(!this.started){this.direction=a;this.currentIndex();if(this.options.elemsSlide&&this.options.elemsSlide>1&&this.endingElem==null){this.endingElem=this.currentElement;for(var b=0;b<this.options.elemsSlide;b++){this.endingElem+=a;if(this.endingElem>=
this.totalElements)this.endingElem=0;if(this.endingElem<0)this.endingElem=this.totalElements-1}}if(this.options.vertical){if(this.direction==-1){for(b=0;b<this.options.elemsSlide;b++)this.rearange();$(this.options.thumbsContainer).setStyle("margin-top",-this.elementHeight*this.options.elemsSlide)}this.started=true;this.myFx.start({"margin-top":this.direction==1?-this.elementHeight*this.options.elemsSlide:0}).chain(function(){for(var c=0;c<this.options.elemsSlide;c++)this.rearange(true);if(this.options.elemsSlide>
1)this.endingElem=null}.bind(this))}else{if(this.direction==-1){for(b=0;b<this.options.elemsSlide;b++)this.rearange();$(this.options.thumbsContainer).setStyle("margin-left",-this.elementWidth)}this.started=true;this.myFx.start({"margin-left":this.direction==1?-this.elementWidth:0}).chain(function(){this.rearange(true);if(this.options.elemsSlide>1)this.endingElem=null}.bind(this))}}},rearange:function(a){if(a)this.started=false;if(!(a&&this.direction==-1)){this.currentElement=this.currentIndex(this.direction);
a=this.options.vertical?"top":"left";$(this.options.thumbsContainer).setStyle("margin-"+a,0);if(this.currentElement==1&&this.direction==1)this.elements[0].injectAfter(this.elements[this.totalElements-1]);else if(this.currentElement==0&&this.direction==1||this.direction==-1&&this.currentElement==this.totalElements-1)this.rearrangeElement(this.elements.getLast(),this.direction==1?this.elements[this.totalElements-2]:this.elements[0]);else this.direction==1?this.rearrangeElement(this.elements[this.currentElement-
1],this.elements[this.currentElement-2]):this.rearrangeElement(this.elements[this.currentElement],this.elements[this.currentElement+1])}},rearrangeElement:function(a,b){this.direction==1?a.injectAfter(b):a.injectBefore(b)},currentIndex:function(){var a=null;switch(this.direction){case 1:a=this.currentElement>=this.totalElements-1?0:this.currentElement+this.direction;break;case -1:a=this.currentElement==0?this.totalElements-1:this.currentElement+this.direction;break}return a},startAutoSlide:function(){this.startIt=
this.slide.bind(this).pass(this.direction||1);this.autoSlide=this.startIt.periodical(this.autoSlideTotal,this);this.options.stopOnHover&&$(this.options.overallContainer).addEvents({mouseover:function(){$clear(this.autoSlide)}.bind(this),mouseout:function(){this.autoSlide=this.startIt.periodical(this.autoSlideTotal,this)}.bind(this)})}});

