var __scroll_go = 0;
var __scroll_pWidth = 0;

var __scroll_acc_const = 1.2;
var __scroll_topspeed = 30;
var __scroll_speed = 5;

var __scroll_topped = 0;
var __scroll_dec_start = 0;


var __scroll_timeout = '';

var __scroll_source = 0;
var __scroll_destination = 0;

document.getElementsByClassName = function(clsName)
{
	var retVal = new Array();
	var elements = document.getElementsByTagName("*");
	for(var i = 0;i < elements.length;i++)
	{
		if(elements[i].className.indexOf(" ") >= 0)
		{
			var classes = elements[i].className.split(" ");
			for(var j = 0;j < classes.length;j++)
			{
				if(classes[j] == clsName)
					retVal.push(elements[i]);
			}
		}
		else if(elements[i].className == clsName)
			retVal.push(elements[i]);
	}
	return retVal;
}

function __scroll_init()
{
	var div = $('browser-cell-out');
	div.style.overflow = 'hidden';
	__scroll_pWidth = parseInt(div.style.width);

}
 
function __scroll_perform()
{
	if(!__scroll_go) return false;

	var el = $('browser-cell-out');
	
// left to right --------------------------------------------------------------
	if(__scroll_source < __scroll_destination)
	{
		if(el.scrollLeft >= __scroll_destination)
		{
			el.scrollLeft = __scroll_destination;
			__scroll_stop();
			return;
		}

		el.scrollLeft = el.scrollLeft + __scroll_speed;

		if(__scroll_speed < __scroll_topspeed && __scroll_topped == 0)
			__scroll_speed = __scroll_speed * __scroll_acc_const;

		if(__scroll_speed >= __scroll_topspeed && __scroll_topped == 0)
		{
			__scroll_topped = 1;
			__scroll_dec_start = __scroll_destination - (el.scrollLeft - __scroll_source);
		}
		
		if(el.scrollLeft >= __scroll_dec_start && __scroll_topped == 1)
		{
			__scroll_speed = __scroll_speed / __scroll_acc_const;
		}

		__scroll_timeout = setTimeout("__scroll_perform()",1);
	}

// right to left --------------------------------------------------------------
	else if(__scroll_source > __scroll_destination)
	{
		if(el.scrollLeft <= __scroll_destination)
		{
			el.scrollLeft = __scroll_destination;
			__scroll_stop();
			return;
		}

		el.scrollLeft = el.scrollLeft - __scroll_speed;

		if(__scroll_speed < __scroll_topspeed && __scroll_topped == 0)
			__scroll_speed = __scroll_speed * __scroll_acc_const;

		if(__scroll_speed >= __scroll_topspeed && __scroll_topped == 0)
		{
			__scroll_topped = 1;
			__scroll_dec_start = __scroll_destination + (__scroll_source - el.scrollLeft) ;
		}
		
		if(el.scrollLeft <= __scroll_dec_start && __scroll_topped == 1)
		{
			__scroll_speed = __scroll_speed / __scroll_acc_const;
		}

		__scroll_timeout = setTimeout("__scroll_perform()",1);
	}
	else
		return false;
}
 
function __scroll_stop()
{
	__scroll_go = 0;
	clearTimeout(__scroll_timeout);
	__scroll_source = __scroll_destination;
	browser_finish();
}
 
function __scroll_start(dest)
{
	if(__scroll_go == 1) return false;
	__scroll_go = 1;
	if(dest == 0)
		__scroll_destination = 0;
	else
		__scroll_destination = dest * __scroll_pWidth;
		
	__scroll_speed = 2;
	__scroll_topped = 0;
	__scroll_dec_start = 0;
	
	__scroll_perform();
}
