function OptimusScroller(scrolldiv,height)
{
	this.scrolldiv		= scrolldiv;
	this.knob			= scrolldiv.getElement('.knob');
	this.viewarea		= scrolldiv.getElement('.scrollarea');
	if(height>0 && this.viewarea)
	{
		this.viewarea.setStyle('height',height+'px');
	}
	this.contents		= scrolldiv.getElement('.scrollcontents');	
	this.scrollsize		= this.contents.getSize();
	this.scrollwidth	= (this.scrollsize.scrollSize.x)-(this.scrollsize.size.x);
	this.viewportsize	= this.viewarea.getSize();					
	this.knobsize		= (Math.round(this.viewportsize.size.x*(this.viewportsize.size.x/this.scrollsize.scrollSize.x)));	
	this.knob.setStyle('width',this.knobsize+'px');						
													
	this.slider			= new Slider(this.scrolldiv.getElement('.scrollbar'), this.knob,
	{
		initialize: function()
		{
			this.contents			= self.contents;
			this.knob				= self.knob;
		},
		steps: this.scrollwidth,
		onTick: function(position)
		{
			var myTransition 	= new Fx.Transition(Fx.Transitions.Pow, 4);
			var marginChange	= this.knob.effect('left',{duration: 500,transition: myTransition.easeOut});
			marginChange.start(this.knob.getStyle('left'),position);
		},
		onComplete: function()
		{
			this.ticked			= false;
		},		
		onChange: function(step)
		{					
			if(this.dragging)
			{
				this.contents.setStyle('margin-left','-'+step+'px');
			}else
			{
				var myTransition2 	= new Fx.Transition(Fx.Transitions.Pow, 4);
				var marginChange	= this.contents.effect('margin-left',{duration: 500,transition: myTransition2.easeOut});
				marginChange.start(this.contents.getStyle('margin-left'),'-'+step);
			}
		}
	}).set(0);			
}
