var _VerticalScroller_OldOnload = window.onload;
window.onload = function()
{
	if(_VerticalScroller_OldOnload)//if a previous function was associated, call it
		_VerticalScroller_OldOnload();
	
	var oDivs = document.getElementsByTagName('DIV');
	for(var i = 0 ; i < oDivs.length;i++)//for each div
	{
		var oDiv = oDivs[i];
		
		for(var j=0;j<oDiv.attributes.length;j++)//for each attribute
		{
			var oAttrib = oDiv.attributes[j]	
			if(oAttrib.nodeName.toLowerCase().indexOf('verticalscroll') != -1)
			{
				VerticalScroll_initScroll(oDiv,oAttrib.nodeValue)
			}
		}
	}
}

function VerticalScroll_initScroll(oDiv,sOffset)
{
	for(var i = 0 ; i < oDiv.childNodes.length; i++)
		if(oDiv.childNodes[i].nodeType == 1)
		{
			var oChild = oDiv.childNodes[i];
			oChild.position = 'absolute'
			
		}
	oDiv.onmouseover = function(){clearInterval(oDiv.VerticalScrollTimer);}
	oDiv.onmouseout = function(){oDiv.VerticalScrollTimer = setInterval(function(){VerticalScroll_Move(oDiv,-parseInt(sOffset))},50);}
	setTimeout(function(){
		oDiv.VerticalScrollTimer = setInterval(function(){VerticalScroll_Move(oDiv,-parseInt(sOffset))},50)
		},500)
	
}
function VerticalScroll_Move(oDiv,nOffset)
{
	if(oDiv.scrollTop)
		var nTop = parseInt(oDiv.scrollTop);
	else
		var nTop = 0;
	nTop += nOffset;
	oDiv.scrollTop = nTop;
	if(nTop>0) //upwards
	{
		for(var i = 0 ; i < oDiv.childNodes.length; i++)
			if(oDiv.childNodes[i].nodeType == 1)
			{
				var oFirstChild = oDiv.childNodes[i];
				break;
			}
		if(oFirstChild &&  oFirstChild.offsetHeight < nTop)
		{
			oDiv.scrollTop = nTop-oFirstChild.offsetHeight;
			oDiv.removeChild(oFirstChild);
			oDiv.appendChild(oFirstChild);
		}
	}
	else  if(nTop<0) //downwards
	{
		for(var i = oDiv.childNodes.length-1 ; i > 0 ; i--)
			if(oDiv.childNodes[i].nodeType == 1)
			{
				var oLastChild = oDiv.childNodes[i];
				break;
			}
		if(oLastChild &&  oLastChild.offsetTop > oDiv.offsetHeight)
		{
			oDiv.removeChild(oLastChild);
			oDiv.insertBefore(oLastChild,oDiv.childNodes[0]);
			oDiv.scrollTop = nTop+oLastChild.offsetHeight;

		}
	}
}

