var scrollbar=new Class({
	initialize:function(options)
	{
		this.options=$extend({slideInt:4000,delay:4000,autoplay:true,mw:1,tc:0,max:3,inf:0,scrollBymax:0,navw:80,cid:0,icont:'tc',iscroll:'t',cont:'g',transition:Fx.Transitions.linear},options || {});
		this.mstep=(this.options.scrollBymax?this.options.max:1);
		this.thumbs=document.id(this.options.icont).getElements('div.tb');
		this.thumb_size=this.thumbs[0].getSize();
		this.myFx=new Fx.Scroll(this.options.iscroll,{transition: this.options.transition });
		if(this.thumbs.length > this.options.max )
		{
			this.addControlers(this.options.cont+'_next','&rsaquo;').addEvent('click',function(){this.slide(this.mstep,1);}.bind(this));
			this.addControlers(this.options.cont+'_prev','&lsaquo;').addEvent('click',function(){this.slide(-this.mstep,1);}.bind(this));
			if(this.options.mw)document.id(this.options.icont).addEvent('mousewheel',function(ev){new Event(ev).stop();this.slide(ev.wheel < 0 ? this.mstep : -this.mstep,1);}.bind(this));
		};
		if(this.options.cid==-1)this.options.cid=($random(0,this.thumbs.length-1));
		if(this.options.inf)		
		{
			for(var i=0;i<this.options.max;i++)	this.thumbs[i].clone().inject(this.options.icont,'bottom');
			for(var i=0;i<this.options.max;i++)	this.thumbs[this.thumbs.length-1-i].clone().inject(this.options.icont,'top');
			this.offs=this.options.max;
		}
		else this.offs=0;
		this.myFx.set((this.options.cid+this.offs)*this.thumb_size.x,0);
		this.uc();	
		if(this.options.autoplay)this.swInt=this.autoplay.delay(this.options.delay,this);
	},
	addControlers:function(cssClass,txcode){if(this.options.tc) el=new Element('div',{'id': cssClass,'html':txcode});else el=new Element('div',{'id': cssClass});el.injectInside(document.id(this.options.cont));return el;},
	autoplay:function(){this.slide(this.mstep,0);this.swInt=this.slidex.periodical(this.options.slideInt,this);},
	stop:function(){clearInterval(this.swInt)},
	slidex:function(){this.slide(this.mstep,0)},
	uc:function()
	{
		if(!this.options.inf)
		{
			id=this.options.cid;
			ls=this.thumbs.length-1;
    	$(this.options.cont+'_prev').setStyle('display',(id==0)?'none':'block');
    	$(this.options.cont+'_next').setStyle('display',((id+this.options.max-1)==ls)?'none':'block');
			return;
		}	
	},
	slide:function(step,ss)
	{
		if(ss)this.stop();
		ls=this.thumbs.length-1;
		inf=this.options.inf;
		id=this.options.cid;
		if(!inf && ((id==0 && step<0) || (step>0 && id==ls)))
		{

		}
		else
		{
			this.myFx.cancel();
			if(inf && id<=0 && step<0)
			{	
				this.options.cid=ls+1+step;
				inx=this.options.cid+this.offs+this.mstep; 
				this.myFx.set(inx*this.thumb_size.x,0);								
				this.myFx.start((inx+step)*this.thumb_size.x,0);
			}
			else if(inf && (id+step)>ls && step>0)
			{	  
				this.options.cid=0;
				inx=this.offs-this.mstep;
				this.myFx.set(inx*this.thumb_size.x,0);	
				this.myFx.start((inx+step)*this.thumb_size.x,0);				
			}
			else
			{
				this.options.cid += step;
				this.myFx.start((this.options.cid+this.offs)*this.thumb_size.x,0);
			}
		}
		this.uc();
	} 
})

