var noobSlide=new Class({initialize:function(B){this.items=B.items;this.mode=B.mode||"horizontal";this.modes={horizontal:["left","width"],vertical:["top","height"]};this.size=B.size||240;this.box=B.box.setStyle(this.modes[this.mode][1],(this.size*this.items.length)+"px");this.button_event=B.button_event||"click";this.handle_event=B.handle_event||"click";this.onWalk=B.onWalk||null;this.currentIndex=null;this.previousIndex=null;this.nextIndex=null;this.interval=B.interval||5000;this.autoPlay=B.autoPlay||false;this._play=null;this.handles=B.handles||null;if(this.handles){this.addHandleButtons(this.handles)}this.buttons={previous:[],next:[],play:[],playback:[],stop:[]};if(B.addButtons){for(var A in B.addButtons){this.addActionButtons(A,$type(B.addButtons[A])=="array"?B.addButtons[A]:[B.addButtons[A]])}}this.fx=new Fx.Tween(this.box,$extend((B.fxOptions||{duration:500,wait:false}),{property:this.modes[this.mode][0]}));this.walk((B.startItem||0),true,true)},addHandleButtons:function(B){for(var A=0;A<B.length;A++){B[A].addEvent(this.handle_event,this.walk.bind(this,[A,true]))}},addActionButtons:function(C,B){for(var A=0;A<B.length;A++){switch(C){case"previous":B[A].addEvent(this.button_event,this.previous.bind(this,[true]));break;case"next":B[A].addEvent(this.button_event,this.next.bind(this,[true]));break;case"play":B[A].addEvent(this.button_event,this.play.bind(this,[this.interval,"next",false]));break;case"playback":B[A].addEvent(this.button_event,this.play.bind(this,[this.interval,"previous",false]));break;case"stop":B[A].addEvent(this.button_event,this.stop.bind(this));break}this.buttons[C].push(B[A])}},previous:function(A){this.walk((this.currentIndex>0?this.currentIndex-1:this.items.length-1),A)},next:function(A){this.walk((this.currentIndex<this.items.length-1?this.currentIndex+1:0),A)},play:function(A,C,B){this.stop();if(!B){this[C](false)}this._play=this[C].periodical(A,this,[false])},stop:function(){$clear(this._play)},walk:function(C,B,A){if(C!=this.currentIndex){this.currentIndex=C;this.previousIndex=this.currentIndex+(this.currentIndex>0?-1:this.items.length-1);this.nextIndex=this.currentIndex+(this.currentIndex<this.items.length-1?1:1-this.items.length);if(B){this.stop()}if(A){this.fx.cancel().set((this.size*-this.currentIndex)+"px")}else{this.fx.start(this.size*-this.currentIndex)}if(B&&this.autoPlay){this.play(this.interval,"next",true)}if(this.onWalk){this.onWalk((this.items[this.currentIndex]||null),(this.handles&&this.handles[this.currentIndex]?this.handles[this.currentIndex]:null))}}}});