/* funzione principale */
function mmenu(ID) {
var clic = document.getElementById(ID);
status = clic.style.display;
var uls = document.getElementsByTagName("ul");
for (i=0;i<uls.length;i++) {
if(uls[i].getAttribute("class")=="submenu")uls[i].style.display = "none";
if(uls[i].getAttribute("id") && uls[i].getAttribute("id").search("submenu-")!= -1) uls[i].style.display = "none";
}
if(ID) { getmenu(ID); }
}

/* gestione del menu */
function getmenu(ID) {
var menu = document.getElementById(ID);
var root = ID.substring(0, 9);
var menuroot = document.getElementById(root);
if(ID.length > 11) {
var sub = ID.substring(0, 11);
var menusub = document.getElementById(sub);
}
//var display = menu.style.display;
var display = status;
menuroot.style.display = "block";
if(ID.length > 11) { menusub.style.display = "block"; }
menu.style.display = (display == "block") ? "none" : "block";
}

var rule = null;
var levels = null;
var liSelectedIter = null;

/* inizializzazione del menu 
Per inizializzare un menu in modo che si apra in un particolare contesto utilizzare le 
seguenti regole da includere nella pagina html chiamante:
		var openRule = "all:2";
		var openRule = "branch:1-4_3"
pił in generale:
all: apre tutti i menu fino al livello indicato dopo il :
branch: apre il percorso fino alla foglia specificata dopo il : (che deve corrispondere all'id del <li>)
*/
function inizializzazione() 
{
	if(openRule)
	{
		var arr = openRule.split(":");
		rule = arr[0];
		tmpStartPoint = arr[1];
		if(tmpStartPoint.search("_"))
		{
			arrStartPoint = tmpStartPoint.split("_");
			liSelectedIter = arrStartPoint[1];
			levels = arrStartPoint[0].split("-");
		}
		else
			levels = tmpStartPoint;
	} else rule = "default";
	switch(rule)
	{
		case "all":
			var uls = document.getElementsByTagName("ul");
			for (i=0;i<uls.length;i++) 
			{
				if(uls[i].getAttribute("id"))
				{
					var cId = uls[i].getAttribute("id");
					if(cId.length>7)
					{
						var lStr = (cId.substr(7,cId.length-1));
						var l = lStr.length/2;
						if(uls[i].getAttribute("id") && uls[i].getAttribute("id").search("submenu-")!= -1 && (l >= levels)) 
							uls[i].style.display = "none";
					}
				}
			}
			break;
		case "branch":
			var uls = document.getElementsByTagName("ul");
			for (i=0;i<uls.length;i++) 
			{
				//if(uls[i].getAttribute("class")=="submenu")
				//	uls[i].style.display = "none";
				var almenoUno = false;
				var trovatoEl = false;
				if(!uls[i].getAttribute("id")) almenoUno = true;
				else 
				{
					var tmpStep = "submenu";
					for (k=0;k<levels.length;k++) 
					{
						tmpStep += "-"+levels[k];
						//alert(uls[i].getAttribute("id") + "==" + tmpStep);
						if(uls[i].getAttribute("id") == tmpStep) 
							almenoUno = true;
						if(uls[i].getAttribute("id") == tmpStep && k == (levels.length-1)) 
							trovatoEl = true;
					}
				}
				if(trovatoEl)
				{
					var tmpStep = "submenu";
					var selectedEl = "";
					for (k=0;k<levels.length;k++) 
					{
						tmpLiSelectedIter = levels[k];
						selectedEl = document.getElementById(tmpStep+"_"+tmpLiSelectedIter);
						if(selectedEl) selectedEl.className = "voceattiva";
						tmpStep += "-"+levels[k];
					}
					selectedEl = document.getElementById(tmpStep+"_"+liSelectedIter);
					if(selectedEl) selectedEl.className = "voceattiva";
				}
				if(uls[i].getAttribute("id") && uls[i].getAttribute("id").search("submenu-")!= -1 && !almenoUno) 
				{
					//alert("almenoUno: " + almenoUno + " - " + uls[i].id);
					uls[i].style.display = "none";
				}
			}
			if(mID) { getmenu(mID); }
			break;
		default:
			var uls = document.getElementsByTagName("ul");
			for (i=0;i<uls.length;i++) 
			{
				if(uls[i].getAttribute("class")=="submenu")
					uls[i].style.display = "none";
				if(uls[i].getAttribute("id") && uls[i].getAttribute("id").search("submenu-")!= -1) 
					uls[i].style.display = "none";
			}
			if(mID) { getmenu(mID); }
			break;
	}
}

/* link esterni */
window.onerror = HandleError;function HandleError() {return true}
function externalLinks() { 
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a"); 
for (var i=0; i<anchors.length; i++) { 
	var anchor = anchors[i]; 
	if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "esterno") {
		anchor.target = "_blank";
		if (anchor.title) anchor.title += " (Il link apre una nuova finestra)";
		if (!anchor.title) anchor.title = "Il link apre una nuova finestra";
	} 
} 
} 

function inizia() {
	if(typeof oldOnloadScript == "function") oldOnloadScript();
	externalLinks();
	inizializzazione();
}

var oldOnloadScript = null;
if(typeof window.onload == "function") oldOnloadScript = window.onload;
window.onload = inizia;
