/*
    Scroller notizie ultima ora
    Michele Manzato
    $Id$
*/

// Configurazione
var scrollInitPause = 1000;         // Pausa iniziale
var scrollSpeed = 25;               // Rapidità di rotazione (pixel/secondo)
var scrollUpSpeed = 1000;           // Rapidità di rotazione al ritorno (pixel/secondo)
var scrollBottomPause = 5000;       // Pausa a fine scroll, prima di ricominciare
var scrollUpAnimated = false;       // Anima lo scroll-up a fine rullo
var scrollUpPause = 1000;           // Pausa a inizio scroll dopo lo scroll-up

// Programma
var scrollElement = null;
var scrollState = null;             // 0=top; 1=scroll; 2=bottom; 3=scrollup; 4=pause
var scrollHeight = 0;
var scrollCssTop = 0;
var myScrollElement = null;

// Questa è la funzione da chiamare
function scrollInit() {
	scrollElement = $(".scroll-info");
	myScrollElement = document.getElementById("scroll-info");
	scrollElement.hover(
	    function(){
            if (scrollState == 1) {
                //scrollElement.stop();
                scrollState = 4;
            }
        },
        function(){
			if (scrollState == 4) {
                scrollAnimate();
            }
        }
    );
	scrollState = 0;
	scrollCssTop = 0;
    setTimeout("scrollAnimate()", scrollInitPause);
}

// Anima lo scroll-down
function scrollAnimate() {
	var top_container =  $(".scroll-info").offset().top;
	var ultimo_elemento = $(".scroll-info a:last");
	scrollHeight = parseInt($(".scroll").height())
                   - parseInt(ultimo_elemento.offset().top
                   + ultimo_elemento.height())
                   + top_container;
	scrollState = 1;
	myAnimate();
/*  var csstop = parseInt(scrollElement.css('top'));
	var easing = - 1000 * (scrollHeight - csstop) / scrollSpeed;
    scrollElement.animate(
		{ top: scrollHeight },
		easing,
        "linear",
        function() {scrollAnimateDone();}
	);*/
}

// Eseguita a fine animazione
function scrollAnimateDone() {
	scrollState = 2;
    setTimeout("scrollUp(true)", scrollBottomPause);
}

// Esegue l'animazione senza usare jQuery
// Risparmia risorse di CPU
function myAnimate() {
    if (scrollState == 1) {
        if (scrollCssTop > scrollHeight) {
            scrollCssTop--;
            myScrollElement.style.top = scrollCssTop + 'px';
            setTimeout("myAnimate()", 75);
        }
        else
            scrollAnimateDone();
    }
}

// Esegue lo scroll-up a fine rullo
function scrollUp() {
    scrollState = 3;
    var easing = - 1000 * scrollHeight / scrollUpSpeed;
    if (scrollUpAnimated)
        scrollElement.animate(
    		{ top: 0 },
    		easing,
            "linear",
            function() {
            	scrollState = 0;
        		scrollCssTop = 0;
                setTimeout("scrollAnimate()", scrollUpPause);
            }
    	);
    else {
        scrollElement.css("top", 0);
		scrollCssTop = 0;
        setTimeout("scrollAnimate()", scrollUpPause);
    }
}
