var scroll_content_id = "content";
var scroll_scroller_id = "scroll";
var scroll_direction =  "up/down"
var scroll_scroller_center = -190;
var scroll_max = 70;
var scroll_interval = null;

var scroll_start = -1;

function scrollMouseDown(content_id, scroller_id,  direction, scroller_center, scroller_max)
{
	scroll_direction = direction == "up/down"?"up/down":"left/right";
	scroll_content_id = content_id;
	scroll_scroller_id = scroller_id;
	scroll_scroller_center = scroller_center;
	scroll_max = scroller_max;

	document.onmousemove = scrollMouseMove;
	document.onmouseup = scrollMouseUp;
	document.onselectstart = new Function("return false");
	
	return false;
}

function scrollMouseUp()
{
	scroll_start = -1;
	window.clearInterval(scroll_interval);
	document.onmousemove = new Function("");
	document.onselectstart = new Function("return true");
	
	if(scroll_direction == "up/down")
	{	
		$(scroll_scroller_id).style.marginTop = scroll_scroller_center;
	}
	else
	{
		$(scroll_scroller_id).style.marginLeft = scroll_scroller_center;
	}
}

function scrollMouseMove(event)
{
	var event = event || window.event;
	
	var current_y = event.clientY;
	var current_x = event.clientX;
	
	var current = scroll_direction == "up/down" ? current_y : current_x;
	
	if( scroll_start < 0)
	{
		scroll_start = current;
	}
	else
	{
		var difference = current - scroll_start;
		
		if(Math.abs(difference) > scroll_max)
		{
			difference = (difference < 0)?-scroll_max:scroll_max;
		}
		
		if(scroll_direction == "up/down")
		{
			$(scroll_scroller_id).style.marginTop = difference + scroll_scroller_center;
		}
		else
		{
			$(scroll_scroller_id).style.marginLeft = difference*2 + scroll_scroller_center;			
		}
		
		var pixels = (current - scroll_start)/3;
		
		window.clearInterval(scroll_interval);
		scroll_interval = window.setInterval("scrollPixels(" + pixels + ")", 10);
	}
}

function scrollPixels(pixels)
{
	if(scroll_direction == "up/down")
	{	
		$(scroll_content_id).scrollTop += pixels;
	}
	else
	{
		$(scroll_content_id).scrollLeft += pixels;	
		$(scroll_content_id).scrollTop = 0;	
	}
}

