window.onload = init;

var HMAX = -1;
var memY = 0;
var FIXY = 330;
// var FIXBottom = 350;
var DELTA_TIME = 10;
var idTimerAnim = null;
var HCURVA = 75;
var a,b;
var t;
var DELTAT = 1/30;
/*FUNZIONE CHE INIZIALIZZA */
function init()
{
	if(findElement("scroll")){	
	/* Calcolo l'altezza del box dove cammina il menu e l'altezza del menu */
		HMAX = findElement("menusx2").offsetHeight - findElement("scroll").offsetHeight - HCURVA;
		/* Memorizzo lo scroll decrementando l'altezza del bottom */
		memY = getYScroll()-FIXY;
		setInterval("checkScroll()",DELTA_TIME);
	}
}

function checkScroll()
{ 
	HMAX = findElement("menusx2").offsetHeight - findElement("scroll").offsetHeight - HCURVA;

	if (document.getElementById)
	{
		var y = getYScroll()-FIXY;
	}
	else if (document.all)
	{
		var y = getYScroll()-FIXY;
	}
	else if (document.layers)
	{
		var y = getYScroll()-FIXY;
	}

	if(y>=0)
	{
		if(y>HMAX) y = HMAX;								
	}
	else
		y = 0;						
	if(y != memY)
	{
		b = parseInt(findElement("scroll").style.top);
		memY = y;
		a = memY-b;
		t = 0;						
		if(idTimerAnim == null)
		{
			idTimerAnim = setInterval("Scroller()",DELTA_TIME);
		}
	}
}

function Scroller()
{
	var obj = findElement("scroll").style;
	t += DELTAT;
	if(t >= 1)
	{
		t = 1;
		clearInterval(idTimerAnim);
		idTimerAnim = null;						
	}
	y = a*t+b;
	obj.top = y + "px";
	/*
	var y = parseInt(obj.top);
	if(y == memY)
	{
		clearInterval(idTimerAnim);
		idTimerAnim = null;
		return;
	}
	else if(y<memY)
		y += DELTAY;
	else
		y -= DELTAY;
		
	obj.top = y+"px";
	*/
}

function getYScroll()
{
	var y = -1;
	// scrolling offset calculation via www.quirksmode.org
	if (self.pageYOffset)
	{
		y = self.pageYOffset;
	}else if (document.documentElement && document.documentElement.scrollTop)
	{ 
		y = document.documentElement.scrollTop; 
	}else if (document.body)
	{ 
		y = document.body.scrollTop; 
	}
	return(y);
}
