//
function Scroller()
{
	this.viewport = document.getElementById('viewport');
	this.content = document.getElementById('content');
	this.arrowUp = document.getElementById('arrow-up');
	this.arrowDown = document.getElementById('arrow-down');
	this.viewportHeight = this.viewport.offsetHeight;
	this.contentOffset = 14;
	this.contentHeight = this.content.offsetHeight;
	this.scrollAmount = 14;
	this.scrollTimer = null;
	this.scrollDelay = 60;

	if (this.contentHeight - this.contentOffset > this.viewportHeight)
	{
		this.viewport.className = 'reduced';
		this.contentHeight = this.content.offsetHeight;
		this.arrowDown.className = '';
	}

	var scroller = this;

	//
	this.beginScrollUp = function ()
	{	
		scroller.scrollTimer = window.setTimeout(scroller.scrollUp, scroller.scrollDelay);
	}

	//
	this.scrollUp = function ()
	{
		scroller.stopScroll();

		if (Math.abs(scroller.content.offsetTop) > scroller.contentOffset)
		{
			scroller.content.style.top = (scroller.content.offsetTop + scroller.scrollAmount) + 'px';

			if (scroller.arrowDown.className != '')
			{
				scroller.arrowDown.className = '';
			}

			scroller.scrollTimer = window.setTimeout(scroller.scrollUp, scroller.scrollDelay);
		}
		else
		{
			if (scroller.arrowUp.className == '')
			{
				scroller.arrowUp.className = 'hidden';
			}
		}
	}

	//
	this.beginScrollDown = function ()
	{	
		scroller.scrollTimer = window.setTimeout(scroller.scrollDown, scroller.scrollDelay);
	}

	//
	this.scrollDown = function ()
	{
		scroller.stopScroll();

		if (scroller.contentHeight - (Math.abs(scroller.content.offsetTop) + scroller.viewportHeight) > 0)
		{
			scroller.content.style.top = (scroller.content.offsetTop - scroller.scrollAmount) + 'px';

			if (scroller.arrowUp.className != '')
			{
				scroller.arrowUp.className = '';
			}

			scroller.scrollTimer = window.setTimeout(scroller.scrollDown, scroller.scrollDelay);
		}
		else
		{
			if (scroller.arrowDown.className == '')
			{
				scroller.arrowDown.className = 'hidden';
			}
		}
	}

	//
	this.stopScroll = function ()
	{
		window.clearTimeout(scroller.scrollTimer);
	}

	this.viewport.onselectstart = function () { return false; }
	this.viewport.onmousedown = function () { return false; }

	this.arrowUp.onmousedown = this.beginScrollUp;
	this.arrowUp.onmouseup = this.stopScroll;

	this.arrowDown.onmousedown = this.beginScrollDown;
	this.arrowDown.onmouseup = this.stopScroll;
}