﻿var noobSlide=new Class({initialize:function(a){this.items=a.items;this.mode=a.mode||"horizontal";this.modes={horizontal:["left","width"],vertical:["top","height"]};this.size=a.size||240;this.box=a.box.setStyle(this.modes[this.mode][1],this.size*this.items.length+"px");this.button_event=a.button_event||"mouseoout";this.handle_event=a.handle_event||"mouseover";this.onWalk=a.onWalk||null;this.currentIndex=null;this.previousIndex=null;this.nextIndex=null;this.interval=a.interval||5e3;this.autoPlay=a.autoPlay||false;this._play=null;this.handles=a.handles||null;if(this.handles)this.addHandleButtons(this.handles);this.buttons={previous:[],next:[],play:[],playback:[],stop:[]};if(a.addButtons)for(var b in a.addButtons)this.addActionButtons(b,$type(a.addButtons[b])=="array"?a.addButtons[b]:[a.addButtons[b]]);this.fx=new Fx.Tween(this.box,$extend(a.fxOptions||{duration:500,wait:false},{property:this.modes[this.mode][0]}));this.walk(a.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))}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(b,a,c){this.stop();if(!c)this[a](false);this._play=this[a].periodical(b,this,[false])},stop:function(){$clear(this._play)},walk:function(a,b,c){if(a!=this.currentIndex){this.currentIndex=a;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(c)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)}}})
