/*
	Codice che consente di scrollare una pagina automaticamente dall'alto al basso.
	E' possibile indicare che lo scroll cominci dopo un certo periodo di tempo ed eventualmente che riinizi
	dopo essere tornati al top della pagina.
	
	Usare la funzione di accesso:	SetScrollPageParams
*/

/*
	Funzione di accesso. Tutti i parametri sono opzionali. Comincia il processo di scroll della pagina
*/
//function SetScrollPageParams(startScrollAfter, scrollAmount, scrollStepTimeOut, returtToTopTimeOut)
//{
//	if (startScrollAfter!=undefined)
//		m_startScrollAfter = startScrollAfter;
//	if (scrollAmount!=undefined)
//		m_scrollAmount = scrollAmount;
//	if (scrollStepTimeOut!=undefined)
//		m_scrollStepTimeOut = scrollStepTimeOut;
//	if (returtToTopTimeOut!=undefined)
//		m_returtToTopTimeOut = returtToTopTimeOut;
//		
//	startScrollPage();
//}


//// Indica di quanto devo scrollare dall'alto al basso ad ogni step
//var m_scrollAmount = 300;
//// Indica ogni quanto tempo scrollare in millisecondi
//var m_scrollStepTimeOut= 30000;
//// Indica dopo quanto tempo dal raggiungimento della fine del documento ritornare al top della pagina
//// Indicare valori negativi per non tornarci
//var m_returnToTopTimeOut = 15000;
//// Millisecondi dopo i quali reiniziare lo scroll della pagina
//var m_startScrollAfter = 15000;

//Funzione che esegue lo scroll della pagina di uno step.
//Restituisce True se lo scroll č avvenuto (cioč se la posizione delle barre č cambiata), altrimenti false
function pageScroll()
{
	var leftScroll = f_scrollTop();		//Memorizzo la posizione corrente. Se non cambia non sto a rifare il giro
    window.scrollBy(0, m_scrollAmount); // horizontal and vertical scroll increments
    
    //Riciclo sulla funzione solo se ha funzionato
    return (leftScroll != f_scrollTop())
}
function pageScrollToEnd() {
    window.scrollBy(0, f_clientHeight());
}
//function checkPageScroll()
//{
//	if (pageScroll())
//		setTimeout('checkPageScroll()',m_scrollStepTimeOut); // scrolls every 100 milliseconds
//	else if (m_returnToTopTimeOut>0)
//		setTimeout('window.scroll(0,0); startScrollPage();',m_returnToTopTimeOut);
//}

////Setta il timout per iniziare lo scroll
//function startScrollPage()
//{
//	//Comincio a scrollare dopo x millisecondi
//	setTimeout('checkPageScroll()',m_startScrollAfter);
//}


/*
	Funzioni che indicano la posizione e dimensione corrente della pagina.
	Thanks to: http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
*/
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

