// the scroll width in pixel per click
var scrollWidth = 10;
// scroll interval in milli seconds
var scrollInterval = 60;

/*---------------------------------------------------------------------------------------------------*/

var container = null;
var content = null;
var doScroll = true;
var scrollHandle = null;
var maxScrollWidth = 0;

$(document).ready(function(evt)
{
	$('#scrollUp').bind('mousedown', onScrollUp);
	$('#scrollDown').bind('mousedown', onScrollDown);
	$('#scrollUp').bind('mouseup', onScrollUp);
	$('#scrollDown').bind('mouseup', onScrollDown);
	
	container = $('#scrollContainer');
	content = $('#content');
	
	if (content.get(0).offsetHeight <= container.get(0).offsetHeight)
	{
		$('#scrollbar').css('display', 'none');
	}
	else
	{
		maxScrollWidth = content.get(0).offsetHeight - container.get(0).offsetHeight;
	}
});

function onScrollUp(evt)
{
	evt.preventDefault();	
	if (doScroll)
	{
		doScroll = false;
		scrollHandle = window.setInterval("performScroll('up')", scrollInterval);	
	}
	else
	{
		stopScroll();
	}
}

function onScrollDown(evt)
{
	evt.preventDefault();	
	if (doScroll)
	{
		doScroll = false;
		scrollHandle = window.setInterval("performScroll('down')", scrollInterval);	
	}
	else
	{
		stopScroll();
	}
}

function stopScroll()
{
	doScroll = true;
	window.clearInterval(scrollHandle);
}

function performScroll(direction)
{
	var topValue = parseInt(content.css('top'));
	
	//console.log(topValue + ' : ' + content.get(0).offsetHeight);
			
	if (direction == 'up')
	{
		if (topValue != 0)
		{
			content.css('top', topValue + scrollWidth);
		}
		else
		{
			stopScroll();
		}
	}
	else if (direction == 'down')
	{		
		if (Math.abs(topValue) <= maxScrollWidth)
		{
			content.css('top', topValue - scrollWidth);
		}
		else
		{
			stopScroll();
		}
	}
}
