function Scrollbar (_obj, _callbackFunc, min_val, max_val) {
	var obj		= (document.getElementById(_obj)) ? document.getElementById(_obj):_obj;
	var cbFunc	= _callbackFunc;
	var self	= this;
	var down	= false;
	var x		= 0;
	var x_abs	= 0;
	var bar_w	= (min_val/max_val)*100;
	
	if (!bar_w || bar_w < 5)
		bar_w	= 5;
	
	if (!obj) {
		alert("Scrollbar: no object given!");
		return false;
	}

	
	var table					= document.createElement("table");
	var tr						= document.createElement("tr");
	var tbody					= document.createElement("tbody");
	var left_td					= document.createElement("td");
	var right_td				= document.createElement("td");
	var middle_td				= document.createElement("td");
	var left					= document.createElement("div");
	var middle					= document.createElement("div");
	var right					= document.createElement("div");
	var scrollbar				= document.createElement("div");
	
	
	table.width					= "100%";
	table.height				= "15";
	table.style.width			= "100%";
	table.style.padding			= "0px";
	table.style.margin			= "0px";
	table.cellspacing			= "0";
	table.cellpadding			= "0";
	table.border				= "0";
	table.style.border			= "0";
	
	//left.innerHTML				= "&lt;";
	left.className				= "Scrollbar_left";
	left_td.style.padding		= "0px";
	left.style.position			= "relative";
		
	//right.innerHTML				= "&gt;";
	right.className				= "Scrollbar_right";
	right_td.style.padding		= "0px";
	right.style.position		= "relative";
	
	scrollbar.style.position	= "relative";
	scrollbar.className			= "Scrollbar_scroller";
//	scrollbar.style.width		= bar_w+"%";
	scrollbar.style.width		= "0px";
	
	middle.style.position		= "relative";
	middle_td.style.position	= "relative";
	middle.className			= "Scrollbar_middle";
	middle_td.width				= "100%";
	middle_td.style.padding		= "0px";
	middle.appendChild(scrollbar);
	
	
	left_td.appendChild(left);
	middle_td.appendChild(middle);
	right_td.appendChild(right);
	
	tr.appendChild(left_td);
	tr.appendChild(middle_td);
	tr.appendChild(right_td);
	tbody.appendChild(tr);
	table.appendChild(tbody),
	obj.appendChild(table);
	
		
	
	this.mousedown				= function (event) {
		down			= true;
		var	position	= document.helper.getRealCoordinates(scrollbar);
		var pos_abs		= document.helper.getAbsoluteCoordinates(scrollbar);
		var mouse_x		= document.all ? window.event.clientX : event.pageX;
		x				= pos_abs[0] - mouse_x;
		x_abs			= mouse_x;
	}
	
	this.mousemove				= function (event) {
		if (!down)
			return;
			
		var mouse_x		= document.all ? window.event.clientX : event.pageX;
		var	position	= document.helper.getRealCoordinates(scrollbar);
		var pos_abs		= document.helper.getAbsoluteCoordinates(scrollbar);
		var dim			= document.helper.getRealDimension(scrollbar);
		var dim_parent	= document.helper.getRealDimension(middle);
		var pos_parent	= document.helper.getAbsoluteCoordinates(middle);
		
		var new_x		= parseInt(position[0]) + (parseInt(mouse_x) - parseInt(x_abs));
		
		x_abs			= mouse_x;
		
		new_x			= mouse_x - pos_parent[0] + x;

		if (mouse_x > pos_parent[0] + dim_parent[0])
			new_x =  pos_parent[0] + dim_parent[0];
		
		if (mouse_x < pos_parent[0])
			new_x =  0;			
		
		if (new_x < 0)
			new_x = 0;
			
		if (new_x > dim_parent[0] - dim[0])
			new_x	= dim_parent[0] - dim[0];
				
		scrollbar.style.left	= new_x+"px";
		self.callBack(new_x, Scrollbar.CB_DRAGGED);
	}
	
	
	this.mouseup				= function (event) {
		down	= false;
	}
	
	
	this.jumpTo					= function (event, m_x) {
		if (down)
			return;
			
		var mouse_x;
		if (event)
			mouse_x = document.all ? window.event.clientX : event.pageX;
		else
			mouse_x		= m_x;
			
		var	position	= document.helper.getRealCoordinates(scrollbar);
		var pos_abs		= document.helper.getAbsoluteCoordinates(scrollbar);
		var dim			= document.helper.getRealDimension(scrollbar);
		var dim_parent	= document.helper.getRealDimension(middle);
		var pos_parent	= document.helper.getAbsoluteCoordinates(middle);
		
		new_x			= mouse_x - pos_parent[0] - dim[0]/2;
		
		if (new_x < 0)
			new_x = 0;
			
		if (new_x > dim_parent[0] - dim[0])
			new_x	= dim_parent[0] - dim[0];
				
		
		//scrollbar.style.left	= new_x+"px";
		
		var diff		= position[0] - new_x;
		var stepsize	= diff/15;

		self.callBack(new_x, Scrollbar.CB_ABSCLICK);		
		window.setTimeout(function () { self.slideTo(new_x, stepsize); }, 10);
	}
	
		
	this.middleDown		= function () {
		if (down)
			return;
		middle.className = "Scrollbar_middle_active";
	}
		
	this.slideTo		= function (new_x, stepsize, step) {
		if (!step)
			step = 0;
		if (step < 15) {
			var	position			= document.helper.getRealCoordinates(scrollbar);
			var new_pos				= position[0] - stepsize;
			if ((stepsize > 0 && new_pos >= new_x) ||  (stepsize < 0 && new_pos <= new_x))
			scrollbar.style.left	= new_pos+"px";
			window.setTimeout(function() { self.slideTo(new_x, stepsize, ++step); }, 15);
		} else {
			scrollbar.style.left	= new_x+"px";
		}
	}
	
	this.setPosition	= function (percent) {
		if (percent < 0)
			percent = 0;
			
		if (percent > 100)
			percent	= 100;
				
		var	position	= document.helper.getRealCoordinates(scrollbar);
		var pos_abs		= document.helper.getAbsoluteCoordinates(scrollbar);
		var dim			= document.helper.getRealDimension(scrollbar);
		var dim_parent	= document.helper.getRealDimension(middle);
		var pos_parent	= document.helper.getAbsoluteCoordinates(middle);
		
		var new_x		= percent*(dim_parent[0] - dim[0])/100;
		var diff		= position[0] - new_x;
		var stepsize	= diff/15;
		
		self.slideTo(new_x, stepsize);
	}
	
	this.callBack		= function (new_x, type) {
		if (!cbFunc)
			return;
		var	position	= document.helper.getRealCoordinates(scrollbar);
		var pos_abs		= document.helper.getAbsoluteCoordinates(scrollbar);
		var dim			= document.helper.getRealDimension(scrollbar);
		var dim_parent	= document.helper.getRealDimension(middle);
		var pos_parent	= document.helper.getAbsoluteCoordinates(middle);

		var percent		= new_x/(dim_parent[0] - dim[0])*100;
		cbFunc(percent, type);
	}
	
	
	document.helper.addEvent(scrollbar, "mouseover", function() { if (scrollbar.className == "Scrollbar_scroller") scrollbar.className = "Scrollbar_scroller_hover"; }, false);
	document.helper.addEvent(scrollbar, "mouseout", function() { if (scrollbar.className == "Scrollbar_scroller_hover") scrollbar.className = "Scrollbar_scroller"; }, false);
	document.helper.addEvent(scrollbar, "mousedown", function(event) { scrollbar.className = "Scrollbar_scroller_active"; self.mousedown(event); }, false);
	
	document.helper.addEvent(left, "mouseover", function() { left.className = "Scrollbar_left_hover"; }, false);
	document.helper.addEvent(left, "mouseout", function() { left.className = "Scrollbar_left"; }, false);
	document.helper.addEvent(left, "mousedown", function(event) { left.className = "Scrollbar_left_active"; self.callBack(0, Scrollbar.CB_LEFTCLICK); }, false);
	document.helper.addEvent(left, "mouseup", function(event) { left.className = "Scrollbar_left_hover";  }, false);
	
	
	document.helper.addEvent(right, "mouseover", function() { right.className = "Scrollbar_right_hover"; }, false);
	document.helper.addEvent(right, "mouseout", function() { right.className = "Scrollbar_right"; }, false);
	document.helper.addEvent(right, "mousedown", function(event) { right.className = "Scrollbar_right_active";  self.callBack(0, Scrollbar.CB_RIGHTCLICK); }, false);
	document.helper.addEvent(right, "mouseup", function(event) { right.className = "Scrollbar_right_hover"; }, false);
	
	document.helper.addEvent(middle, "mouseover", function() { middle.className = "Scrollbar_middle_hover"; }, false);
	document.helper.addEvent(middle, "mouseout", function() { middle.className = "Scrollbar_middle"; }, false);
	document.helper.addEvent(middle, "mousedown", function(event) { window.setTimeout(self.middleDown, 50); /*middle.className = "Scrollbar_middle_active";*/ var mouse_x	= document.all ? window.event.clientX : event.pageX; window.setTimeout(function() { self.jumpTo(null, mouse_x); }, 50); }, false);
	document.helper.addEvent(middle, "mouseup", function(event) { middle.className = "Scrollbar_middle_hover";  }, false);
	
	document.helper.addEvent(document, "mousemove", function(event) { self.mousemove(event); }, false);
	document.helper.addEvent(document, "mouseup", function (event) { scrollbar.className = "Scrollbar_scroller"; self.mouseup(event); }, false);
}


Scrollbar.CB_DRAGGED		= 1;
Scrollbar.CB_ABSCLICK		= 2;
Scrollbar.CB_LEFTLCLICK		= 3;
Scrollbar.CB_RIGHTCLICK		= 4;