var viewer=new Class({mode:"rand",modes:["top","right","bottom","left","alpha"],sizes:{w:480,h:240},fxOptions:{duration:500},interval:5000,initialize:function(A,B){if(B){for(var C in B){this[C]=B[C]}}if(this.buttons){this.buttons.previous.addEvent("click",this.previous.bind(this,[true]));this.buttons.next.addEvent("click",this.next.bind(this,[true]))}this._current=0;this._previous=null;this.items=A.setStyle("display","none");this.items[this._current].setStyle("display","block");this.disabled=false;this.attrs={left:["left",-this.sizes.w,0,"px"],top:["top",-this.sizes.h,0,"px"],right:["left",this.sizes.w,0,"px"],bottom:["top",this.sizes.h,0,"px"],alpha:["opacity",0,1,""]};this.rand=this.mode=="rand";this.sequence=typeof (this.mode)=="object"?this.mode:false;this.curseq=0;this.timer=null},walk:function(D,C){if(this._current!==D&&!this.disabled){this.disabled=true;if(C){this.stop()}if(this.rand){this.mode=this.modes.getRandom()}else{if(this.sequence){this.mode=this.sequence[this.curseq];this.curseq+=this.curseq+1<this.sequence.length?1:-this.curseq}}this._previous=this._current;this._current=D;var A=this.attrs[this.mode].associate(["p","f","t","u"]);for(var B=0;B<this.items.length;B++){if(this._current===B){this.items[B].setStyles($extend({display:"block","z-index":"2"},JSON.decode('{"'+A.p+'":"'+A.f+A.u+'"}')))}else{if(this._previous===B){this.items[B].setStyles({"z-index":"1"})}else{this.items[B].setStyles({display:"none","z-index":"0"})}}}this.items[D].set("tween",{onComplete:this.onComplete.bind(this)}).tween(A.p,A.f,A.t)}},play:function(A){this.stop();if(!A){this.next()}this.timer=this.next.periodical(this.interval,this,[false])},stop:function(){$clear(this.timer)},next:function(A){this.walk(this._current+1<this.items.length?this._current+1:0,A)},previous:function(A){this.walk(this._current>0?this._current-1:this.items.length-1,A)},onComplete:function(){this.disabled=false;this.items[this._previous].setStyle("display","none");if(this.onWalk){this.onWalk(this._current)}}});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))}}}});
