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||400;
							this.box=a.box.setStyle(this.modes[this.mode][1],(this.size*this.items.length)+'px');
							this.button_event=a.button_event||'click';
							this.handle_event=a.handle_event||'click';
							this.onWalk=a.onWalk||null;
							this.currentIndex=null;
							this.previousIndex=null;
							this.nextIndex=null;
							this.interval=a.interval||5000;
							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(a)
								{
									for(var i=0;i<a.length;i++)
								{
									a[i].addEvent(
												  this.handle_event,this.walk.bind(this,[i,true]))}},
									addActionButtons:function(a,b)
									{
										for(var i=0;i<b.length;i++)
										{
											switch(a){
												case'previous':b[i].addEvent(this.button_event,this.previous.bind(this,[true]));
												break;
												case'next':b[i].addEvent(this.button_event,this.next.bind(this,[true]));
												break;
												case'play':b[i].addEvent(this.button_event,this.play.bind(this,[this.interval,'next',false]));break;
												case'playback':b[i].addEvent(this.button_event,this.play.bind(this,[this.interval,'previous',false]));
												break;
												case'stop':b[i].addEvent(this.button_event,this.stop.bind(this));
												break}
												this.buttons[a].push(b[i])}},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,b,c){
															this.stop();
												if(!c)
												{
													this[b](false)}this._play=this[b].periodical(a,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))
													}
													}
													}
													}
													);
