/* 
 *   S c r o l l   v e r t i c a l e
 */
 
var box_pos=0, maxp;
// imposto lo scorrimento attivo per default al caricamento della pagina
var scrollGo = true;
// valore di default se viene invocata direttamente _boxScroll
var _msec = 25;
// valore di default del css ID usato per identificare il tag html da scrollare
var css_id = 'scroll_txt';
//
var scroll_text_dom; 

// funzione usata per interrompere lo scrolling
function stop()
{
    scrollGo = false;
}
// funzione usata per riprendere lo scrolling
function go()
{
    scrollGo = true;
}

// funzione utente per inizializzare _boxScroll
function boxScroll(css_id, msec)
{
    _msec = msec; 
    
    // recupera l'oggetto dom che corrisponde a css_id
    if (document.getElementById) //dovrebbe bastare
    {        
        scroll_text_dom = document.getElementById(css_id);       
    }
    else // per browser del secolo scorso
    {
        scroll_text_dom = document.all[css_id];
    }    
   
    if (scroll_text_dom.offsetHeight)  //dovrebbe bastare
    {
            maxp = scroll_text_dom.offsetHeight;
    }
    else
    {
            maxp =  scroll_text_dom.style.pixelHeight;            
    }
    
   // _boxScroll();
  setInterval('_boxScroll()',  _msec);
}

// esegue lo scrolling di un box html
function _boxScroll()
{    
    if(scrollGo)
    {        
        box_pos--;
        //box_pos -= 2; // scatticchia ma consuma meno CPU :|

        if (box_pos < -maxp) box_pos = 0;        

        // modifico la posizione del box 
        scroll_text_dom.style.top = box_pos+"px"; // aggiungo il px usato per indicare una misura in css, con doctype xhtml senza non funziona	
    }
  
    // rieseguo _boxScroll ogni n microsec
    //setTimeout('_boxScroll()', _msec);
    
}

var ul_li,this_li,next_li,state,current=0,delay=4000;speed=8;value = 1;

function initRotate(el_ul)
{
  // recupero l'elemento UL del DOM
  var ul_root = document.getElementById(el_ul);
  //recupero la lista di LI elements dal nodo root UL
  ul_li = ul_root.getElementsByTagName("li");
  
  //inizializzo alcuni parametri (forse e' + efficiente se lo faccio via CSS) indagare!
  for (var i=0; i < ul_li.length; i++)
  {
    // il primo lo setto visibile
    if (i==0) {ul_li[i].style.opacity = 1;} 
    // gli altri invisibili
    else
    {
      ul_li[i].style.opacity = 0;
      ul_li[i].style.filter = "alpha(opacity=0)";
      ul_li[i].style.display = 'none';
    }
  }
  loopNews();
}

function loopNews()
{
  if (current>=ul_li.length) current = 0;
  this_li = (next_li) ? next_li : ul_li[current];
  next_li = (ul_li[++current]) ? ul_li[current] : ul_li[current = 0];
  this_li.style.display = "block";
  state = 'on';
  value = 1;
  window.setTimeout(fader,delay);
}

function fader()
{
  // fade-out
  if (state=='on')
  {
	value = value - 0.1;
  	value = parseInt(value*100)/100;
	if (value >= 0)
	{
  	   this_li.style.opacity = value;
  	   this_li.style.filter = "alpha(opacity="+(value*100)+")";
	    window.setTimeout(fader,speed);
	}
	else
	{
  	   this_li.style.display = "none";
	    next_li.style.display = "block";
	    state='off';
	    window.setTimeout(fader,speed);
	}
  }
  //fade-in
  else if (state=='off')
  {
  	value = value + 0.1;
  	value = parseInt(value*100)/100;
        if(value <= 1)
	{
  	    next_li.style.opacity = value;
  	    next_li.style.filter = "alpha(opacity="+(value*100)+")";
	    window.setTimeout(fader,speed);
	}
	else {loopNews();}
  }
}
