var SlideItMoo=new Class({initialize:function(options){this.options=$extend({itemsVisible:5,showControls:1,autoSlide:0,transition:Fx.Transitions.linear,currentElement:0,thumbsContainer:'thumbs',elementScrolled:'thumb_container',overallContainer:'gallery_container'},options||{});this.images=$(this.options.thumbsContainer).getElements('a');this.image_size=this.images[0].getSize();this.setContainersSize();this.myFx=new Fx.Scroll(this.options.elementScrolled,{transition:this.options.transition});if(this.images.length>this.options.itemsVisible){this.fwd=this.addControlers('addfwd');this.bkwd=this.addControlers('addbkwd');this.forward();this.backward();if(!this.options.autoSlide){$(this.options.thumbsContainer).addEvent('mousewheel',function(ev){new Event(ev).stop();ev.wheel<0?this.fwd.fireEvent('click'):this.bkwd.fireEvent('click');}.bind(this));}else{this.startIt=function(){this.fwd.fireEvent('click')}.bind(this);this.autoSlide=this.startIt.periodical(this.options.autoSlide,this);this.images.addEvents({'mouseover':function(){$clear(this.autoSlide);}.bind(this),'mouseout':function(){this.autoSlide=this.startIt.periodical(this.options.autoSlide,this);}.bind(this)})}};if(this.options.currentElement!==0){this.options.currentElement-=1;this.slide(1);}},setContainersSize:function(){$(this.options.overallContainer).set({styles:{'width':this.options.itemsVisible*this.image_size.x+50*this.options.showControls+(this.options.itemsVisible-1)*3}});$(this.options.elementScrolled).set({styles:{'width':this.options.itemsVisible*this.image_size.x+(this.options.itemsVisible-1)*3}});},forward:function(){this.fwd.addEvent('click',function(){this.slide(1);}.bind(this));},backward:function(){this.bkwd.addEvent('click',function(){this.slide(-1);}.bind(this))},addControlers:function(cssClass){element=new Element('div',{'class':cssClass,styles:{'display':this.options.showControls?'':'none'}}).injectInside($(this.options.overallContainer));return element;},slide:function(step){if(this.options.autoSlide&&this.options.currentElement>=this.images.length-this.options.itemsVisible){this.options.currentElement=-1;}if((this.options.currentElement<this.images.length-this.options.itemsVisible&&step>0)||(step<0&&this.options.currentElement!==0)){this.myFx.cancel();this.options.currentElement+=step;this.myFx.toElement(this.images[this.options.currentElement]);}}})
