try {
	menuPreProcessing();
} catch(err) { }


var divTitle;
var list_sez;
var PMK; // Variabile PMK da utilizzare anche nelle pagine (e' solo la parte centrale) -> forse obsoleto
var pmkhead; // Variabile pmk estesa per l'header
var overLiv = 0;
var timerID = null;
var currentLiv = 0;
var currentSel = 0; // variabile che setta la sezione da evidenziare
var arrElem = new Array();
var arrTitolo = new Array(); // array dei "compinenti" titolo

var urlHalves = String(document.location).split('?');
var urlVarValue = '';
if(urlHalves[1]){
	var urlVars = urlHalves[1].split('&');
	for(i=0; i<=(urlVars.length); i++){
		if(urlVars[i]){
			var urlVarPair = urlVars[i].split('=');
			if (urlVarPair[0] && urlVarPair[0] == "idPath") {
				urlVarValue = urlVarPair[1];
				break;
			}
		}
	}
}
if (pathID || urlVarValue){
	if (urlVarValue != '') {
		pathID = urlVarValue;
	}
} else {
	var pathID = 1;
}
function createLink(newlnk){
	if( newlnk.indexOf("?") != -1 ){
		return newlnk +"&"+ pmkhead;
	} else {
		return newlnk +"?"+ pmkhead;
	}
}
function setLiv(id){
	arrElem = new Array();
	arrTitolo = new Array();
	// recupero la posizione dall'id
	for(var c in menu){
		if(menu[c].id == id ) {
			var liv = c;
			break;
		}
	}
	if (!liv) { var liv = 0;}
	// inizializzazione path di navigazione: il primo livello e' sempre il nome del canale
	if ( window.pathPMK != undefined){
		pmkhead = "pmk="+pathPMK;
	} else {
		pmkhead = "pmk="+menu[liv].pmk;
	}
	var titleText = "<div id='sez_liv_0'><a href='"+ createLink(menu[0].link) +"' onmouseover='m_over(0);' onmouseout='m_out_count();'>" + menu[0].nome +"</a></div>";
	arrTitolo.push(0);
	var subSezText = createSubSez(liv);
	// inizializzazione la variabile per la creazione dell'albero dei path
	var livContr = liv;
	// creazione path di navigazione
	if(liv != 0){
		do {
			var z = 0;
			for(var c in menu){
				if(menu[c].id == menu[livContr].padre && c > 0) {
					arrElem.push({"div":"<div id='sez_liv_"+c+"' ><a href='"+createLink(menu[c].link)+"' onmouseover='m_over("+c+");' onmouseout='m_out_count();'>"+ menu[c].nome +"</a></div>","id":c});
					livContr = c;
					z = 1;
				}
			}
		} while (z == 1)
		arrElem.reverse();
		for (var c in arrElem){
			if(arrElem[c].div){
				titleText += arrElem[c].div;
				arrTitolo.push(arrElem[c].id);
			}
		}
		if (subSezText != "") {
			titleText += "<div id='sez_liv_"+liv+"'><a href='"+createLink(menu[liv].link)+"' onmouseover='m_over("+liv+");' onmouseout='m_out_count();'>" + menu[liv].nome+"</a></div>";
			arrTitolo.push(liv);
			currentSel = liv;
		}
	}
	
	// se non esiste sottomenu, assegna classe "current" (che colora di nero) alla sezione cliccata
	if (subSezText == ""){
		for(var c in menu){
			if(menu[c].id == menu[liv].padre ) {
				subSezText = createSubSez(c);
				currentSel = overLiv = c;
			}
		}
		list_sez.innerHTML = subSezText;
		document.getElementById("subMenu"+liv).className = "current";
	} else {
		list_sez.innerHTML = subSezText;
		overLiv = liv;
	}
	divTitle.innerHTML = titleText;
	document.getElementById("sez_liv_"+currentSel).className = "selected";
	currentLiv = liv;
}
function createSubSez(liv) {
	// inizializzazione la stringa dei sottomenu
	var subSez = "";
	// creazione il sottomenu cercando tutti i "figli" della sezione corrente
	for(var c in menu){
		var vis = (menu[c].visibilita === undefined)?"true":menu[c].visibilita;
		if(menu[c].padre == menu[liv].id && vis == "true" ) {
			// set "class=first" se e' la prima (toglie il trattino)
			var first = (subSez=='')?'first ':'';
			var curr = (menu[c].id==pathID)?'current ':'';
			var imp = (menu[c].importanza === undefined)?1:menu[c].importanza;
			subSez += "<li class='"+ first +"txt"+imp+"'><a id='subMenu"+c+"' class='"+ curr +"' href='"+createLink(menu[c].link)+"'>"+menu[c].nome+"</a></li>";
		}
	}
	return subSez;
}
function m_over(liv){
	clearTimeout(timerID);
	if(liv != overLiv){
		patchHover = 1;
		var succ;
		var subSezText = createSubSez(liv);
		list_sez.innerHTML = subSezText;
		document.getElementById("sez_liv_"+overLiv).className = "";
		for (var c=0; c<arrTitolo.length; c++){
			if(arrTitolo[c] == overLiv && arrTitolo[(c+1)]){
				document.getElementById("sez_liv_"+arrTitolo[(c+1)]).className = "";
			}
		}
		document.getElementById("sez_liv_"+liv).className = "selected";
		overLiv = liv;
		for (var c=0; c<arrTitolo.length; c++){
			if(parseInt(arrTitolo[c]) == liv && arrTitolo[(c+1)]){
				document.getElementById("sez_liv_"+arrTitolo[(c+1)]).className = "noLine";
			}
		}
	}
}
function m_out_count(){
	if (overLiv != currentSel ){
		timerID = setTimeout("m_out()", 1500);
	}
}
function m_out(){
	clearTimeout(timerID);
	setLiv(pathID);
}

function setBar() {
	divTitle = document.getElementById("pathTitle");
	document.getElementById("list_cont").innerHTML = '<ul id="list_sez" onmouseout="m_out_count();" onmouseover="clearTimeout(timerID);"></ul>';
	list_sez = document.getElementById("list_sez");
	setLiv(pathID);
}

/* se nell'html viene specificato executeBar=true il menù si compone automaticamento
 se executeBar=false il metodo setBar può essere richiamato in seguito dall'evento onload o quando si vuole venga eseguito */
if(undefined === window.executeBar) 
setBar();