function OptimusScroller(contentdiv,height)
{
	/* Create scroll html */
	var size					= (contentdiv.getCoordinates());
	contentdiv.setStyle('overflow','visible');
	
	this.scrolldiv				= new Element('div');
	this.scrolldiv.injectBefore(contentdiv);
	
	this.scrolldiv.className	= 'scroller';	
	this.scrollarea				= new Element('div');
	this.scrollarea.className= 'scrollarea';	
	this.contentdiv				= new Element('div');
	contentdiv.injectInside(this.contentdiv);
	
	this.contentdiv.className	= 'scrollcontents';
	this.contentdiv.injectInside(this.scrollarea);	
	this.scrollarea.injectInside(this.scrolldiv);	
	
	/* Create scrollbar */	
	var	scrollbar_outer			= new Element('div');
	scrollbar_outer.className	= 'scrollbar_outer';	
	this.scrollbar				= new Element('div');
	this.scrollbar.className	= 'scrollbar';	
	this.knob					= new Element('div');
	this.knob.className			= 'knob';
	this.knob.setHTML("<table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td id='left'></td><td id='center'><div id='relief'>&nbsp;</div></td><td id='right'></td></tr></table>");
	this.knob.injectInside(this.scrollbar);	
	this.scrollbar.injectInside(scrollbar_outer);
	scrollbar_outer.injectInside(this.scrolldiv);
	
	/* Initialisatie */
	this.viewarea		= this.scrollarea;
	if(height>0 && this.viewarea)
	{
		this.viewarea.setStyle('height',height+'px');
	}else if(!height)
	{
		this.viewarea.setStyle('height',size.height+'px');
	}
	this.contents		= this.contentdiv;	
	this.scrollsize		= this.contents.getSize();
	this.scrollwidth	= (this.scrollsize.scrollSize.x)-(this.scrollsize.size.x);
	if(window.ie6)
	{
		var test			= this.contents.getCoordinates();
		this.scrollwidth	= test.right;
	}	
	
	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.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);			
}
