// millisecondi di attesa per ciascuna notizia
var DELAY = 5000; 
var xmlDom = null, nodeRoot = null;
var itemLength = 0, itemIndex = 0;
// URL del file XML
var sXmlUrl = ""; // "/public/news/newsAngea.xml";


function InitTicker(p_Xml,p_Dly) {
	if (!document.getElementById("divBoxNews")) return;
	DELAY = p_Dly;
	sXmlUrl = p_Xml;
  // istanzio DOM XML
  if (window.ActiveXObject) {
    xmlDom = new ActiveXObject("Microsoft.XMLDOM");
  } else if (document.implementation && document.implementation.createDocument) {
    xmlDom = document.implementation.createDocument("", "doc", null);
  }
  // SE DOM XML è disponibile
  if (typeof xmlDom != "undefined") {
    // leggo file XML
    xmlDom.load(sXmlUrl);
  }
  
  // avvio il News Ticker
  if (window.ActiveXObject) {
    XmlReady();
  } else if (typeof xmlDom != "undefined") {
    xmlDom.onload = StartTicker;
  }  
}


// Verifica che il file XML sia stato letto.
function XmlReady(){
  // SE ho ultimato la lettura del file XML
  if (xmlDom.readyState == 4) {
    // avvio visualizzazione
    StartTicker();
  } else {
    // verifico ogni 10 ms
    window.setTimeout("XmlReady()", 10);
  }
}


// Inizializza il news ticker.
function StartTicker(){

  // recupero il nodo principale (news)
  nodeRoot = xmlDom.getElementsByTagName("news")[0];
  if (!nodeRoot)
  {
      alert("Attenzione (JS:StartTicker)...")
    return;
  }
  // imposto il n. totale di notizie disponibili
  itemLength = nodeRoot.childNodes.length;

  // mostro la prima notizia
  WriteNews();

  // imposto esecuzione di WriteNews()
  // ogni DELAY millisecondi
  window.setInterval("WriteNews();", DELAY);
}


// Scrive le news nel box.
function WriteNews() {

  var sNews = '';
  var nodeItem = nodeRoot.childNodes[itemIndex];

  // SE è presente l'attributo "url"
  if (nodeItem.getAttribute("url") != null) {
    sNews = '<a href="' + nodeItem.getAttribute("url") + '"';
    // SE è presente l'attributo "target"
    if (nodeItem.getAttribute("target") != null) {
      sNews += ' target="' + nodeItem.getAttribute("target") + '"';
    }
    sNews += '>';
  }

  // inserisco testo
  sNews += nodeItem.firstChild.nodeValue + " (" + (itemIndex + 1) + " di " + itemLength + ")";

  // SE era presente l'attributo "url"
  if (nodeItem.getAttribute("url") != null) {
    sNews += '</a>';
  }

  // sostituisco il contenuto del box
  if (!!document.getElementById("divBoxNews"))
	  document.getElementById("divBoxNews").innerHTML = sNews;
  // incremento posizione notizia
  itemIndex++;
  // SE era l'ultima notizia
  if (itemIndex > itemLength - 1) {
    itemIndex = 0; // torno alla prima
  }
}