/*
 * Chiamato dalle select
 * dei settori o dei territori
 * genera il valore da passare a goLink
 */
 
function goSelectLink(oSelect) {
	theValue = oSelect.options[oSelect.selectedIndex].value;
	if(theValue!=-1) {
		goLink(theValue);
	}
}
/*
 * Apre un link in una nuova finestra, xhtml compliant
 * (no attributo _target nei link!)
 * Usata nelle select di selezione dei siti...
 */
function goLink(fqdn) {
	if(fqdn) {
		window.open('http://' + fqdn);
	}
}

/*
 * Wrapper per aggiungere eventi: cross-browser (si spera)
 */
 
function addEvent(obj, evType, fn){ 

	if (obj.addEventListener){ 
	  	obj.addEventListener(evType, fn, false); 
	  	return true; 
	} else if (obj.attachEvent){ 
	  	var r = obj.attachEvent("on"+evType, fn); 
	  	return r; 
	} else { 
	  	return false; 
	} 
}

/*
 * Se un box e visibile (display:block), nascondilo (display:none)
 * altrimenti (! cioe' se e' 'none' o qualcosa d'altro!)
 * mostralo (display:block)
 */

function showHideBox(boxName) {

 	var boxDisplay;
 	
 	if (document.getElementById) {
 	
 		boxDisplay = document.getElementById(boxName).style;
 		
 	
 	} else if (document.all) {
 	
 		boxDisplay = document.all[boxName].style;
 	
 	} else if (document.layers) {
 	
 		boxDisplay = document.layers[boxName].style;
 	}
 	
 	if(boxDisplay.display=='block') {
 	
 		boxDisplay.display = 'none';
 		
 	} else {
 	
 		boxDisplay.display = 'block';
 		
 	}
 	
}

/*
 * Inizializza news-ticker
 */
 
function initTicker() {

	var newsTicker = document.getElementById('news-ticker');
	var newsItems = newsTicker.getElementsByTagName('p');
	
	for(var i=0; i < newsItems.length; i++) {
		newsItems[i].id='newstick-'+i;
	}
	

	
	showHideBox('newstick-0');
	
	currentTickerNews = 1;
	
	goAlpha('ticker-transparency',0);
	
	window.setInterval("tickNews()",4000);

}
/*
 * News Ticker
 */
function tickNews() {

	var newsTicker = document.getElementById('news-ticker');
	var newsItems = newsTicker.getElementsByTagName('p');
		
	if(currentTickerNews==newsItems.length) {
		currentTickerNews=0;
	} 

	if(currentTickerNews==0) {
		newsItemHide = 'newstick-'+(newsItems.length-1);
	} else {
		newsItemHide = 'newstick-'+(currentTickerNews-1);
	}

	currentNews = 'newstick-'+currentTickerNews;

	goTransition(newsItemHide,currentNews,'ticker-transparency');
	
	currentTickerNews++;

}
/*
 * Transizione tra un elemento e l'altro
 * effettuata con fading
 * 
 */
function goTransition(oldItemN,newItemN,transparentBox) {

	var oldItem = document.getElementById(oldItemN);
	var newItem = document.getElementById(newItemN);
	var timer=0;
	var speed=8;

	showHideBox(transparentBox);
	goAlpha(transparentBox,0);
	
	for( var j = 0;j <= 100;j++) {
	    window.setTimeout("goAlpha('"+ transparentBox +"'," + j + ")",(timer * speed));
	    timer++;
	} 
	
	timer++;
	window.setTimeout("showHideBox('"+oldItemN+"')",(timer * speed));
	timer++;
	window.setTimeout("showHideBox('"+ transparentBox +"')",(timer * speed));
	timer++;
	window.setTimeout("showHideBox('"+newItemN+"')",(timer * speed));
	/*
	for(var i = 100; i > 0 ; i--) {
	    window.setTimeout("goAlpha('"+ transparentBox +"'," + i + ")",(timer * speed));
	    timer++;
	} 
	*/

}

/*
 * Funzione che effettua il fading. Cross Browser (si spera)
 */
function goAlpha(oElementName,iValue) {

	var oElement = document.getElementById(oElementName);
	var objectStyle = oElement.style;
	objectStyle.opacity = (iValue / 100);
    objectStyle.MozOpacity = (iValue / 100);
    objectStyle.KhtmlOpacity = (iValue / 100);
    objectStyle.filter = "alpha(opacity=" + iValue + ")"; 
}
/*
 * Funzione restituisce il vero NextSibling.
 * Presa da http://developer.mozilla.org/en/docs/DOM
 */
function nextValidSibling(sib) {
	while ((sib = sib.nextSibling)) {
    	if (!is_ignorable(sib)) return sib;
  	}
  return null;
}
/*
 * Funzione che verifica se il nodo e' 'ignorabile', cioe' un commento o TEXT
 * Presa da http://developer.mozilla.org/en/docs/DOM
 */
function is_ignorable(nod) {
  return ( nod.nodeType == 8) || // A comment node
         ( (nod.nodeType == 3) && is_all_ws(nod) ); // a text node, all ws
}
/*
 * Funzione che verifica se il nodo e' vuoto
 * Presa da http://developer.mozilla.org/en/docs/DOM
 */
function is_all_ws( nod ) {
  // Use ECMA-262 Edition 3 String and RegExp features
  return !(/[^\t\n\r ]/.test(nod.data));
}
/*
 * Funzione che restituisce il vero firstChild.
 * Presa da http://developer.mozilla.org/en/docs/DOM
 */
function first_child(par) {
  var res=par.firstChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.nextSibling;
  }
  return null;
}
/*
 * Cookie functions.
 * Thanks to Peter-Paul Koch. www.quirksmode.org
 */
function createCookie(name,value,mins) {
	if (mins) {
		var date = new Date();
		date.setTime(date.getTime()+(mins*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


addEvent(window,'load',initTicker);


