
var mdi="font-size:"+textSizes[3]+"pt;";
var sml="font-size:"+textSizes[4]+"pt;";

if(!document.layers) {mdi="font-size:"+textSizes[1]+"pt;"; "font-size:"+textSizes[2]+"pt;";}

// array per l'accesso veloce alla riga di menu senza scorrere tutto l'array tocTab
// (viene riempito la prima volta che si chiama reDisplay)
var hashTab = new Array()

function reDisplay(currentNumber, currentIsExpanded, gotoLink, rebuildAlbero) 
{
/*************************
	gotoLink: imposta se richiamare il link collegato alla voce
	rebuildAlbero: imposta se ricostruire o no il menu js
*************************/

	//alert(currentNumber+"---"+currentIsExpanded)
	var cont=""
	var currentNumArray = currentNumber.split(".");
	var currentLevel = currentNumArray.length-1;
	var theHref="";var nuova=""
	var buildHashTable = (hashTab.length==0);
	
	if(! buildHashTable && gotoLink && currentNumber != "")
	// se l'hashTable è già stata riempita posso recuperare il link senza scorrere l'array
	{
		theHref=hashTab[currentNumber][2];
		nuova=hashTab[currentNumber][3]		
		if (theHref != "") eval(_target + ".location.href = \"" + theHref + "\"");
		if(nuova!="") window.open(nuova,"","scrollbars=1,toolbar=1,location=1,menubar=1,status=1,resizable")	
	}

	if(rebuildAlbero && !(gotoLink && theHref != ""))
	{
		cont=cont+"<table width='" + MenuWidth + "' border='0' cellspacing="+celsp+" cellpadding="+celpd+">";
		//cont = cont + "<tr>";
		for (i=0; i<tocTab.length; i++) 
		{
			thisNumber = tocTab[i][0];

			if (buildHashTable)
				hashTab[thisNumber] = tocTab[i];
			
			var isCurrentNumber = (thisNumber == currentNumber);
			if (isCurrentNumber) {theHref=tocTab[i][2];nuova=tocTab[i][3]}
			var thisNumArray = thisNumber.split(".");
			var thisLevel = thisNumArray.length-1;
			var toDisplay = true;
			if (thisLevel > 0) 
			{
				for (j=0; j<thisLevel; j++) 
				{
					toDisplay = (j>currentLevel)?false:toDisplay && (thisNumArray[j] == currentNumArray[j]);
				}
			}
			thisIsExpanded = toDisplay && (thisNumArray[thisLevel] == currentNumArray[thisLevel])
			
			if (currentIsExpanded) 
			{
				toDisplay = toDisplay && (thisLevel<=currentLevel);
				if (isCurrentNumber) thisIsExpanded = false;
			}
			
			if (toDisplay) 
			{
				if (i==0) 
				{
					cont=cont;
					for (k=0; k<nCols; k++) 
					{
						//cont=cont+"<td></td>";
					}
					//cont=cont+"<td width="+dim+"></td></tr>";
				}
				else 
				{
					var isLeaf = (i==tocTab.length-1) || (thisLevel >= tocTab[i+1][0].split(".").length-1);
					//img = (isLeaf)?img_Leaf:(thisIsExpanded)?img_Expanded:img_NoExpanded;
					img = (isLeaf)?(thisIsExpanded)?img_Expanded_leaf:img_NoExpanded:(thisIsExpanded)?img_Expanded:img_NoExpanded;
					cont=cont+"<tr>";
					for (k=1; k<=thisLevel; k++) 
					{
						if(document.layers) cont=cont+"<td style="+((thisLevel==0)?stiletab:(thisLevel==1)?stiletab1:(thisLevel==2)?stiletab2:stiletab3)+" class='" + classMenuRow + thisLevel +"'>&nbsp;</td>";
						else cont=cont+"";//indentazione del menu(inserire tra virgolette)
					}
					
					// ******* controllo se elemento cliccato ******
					if(tocTab[i][0] == currentNumber)
					{
						//se quello cliccato cambia stile per cambiare colore di sfondo alla cella
						//moficare questa rige se si vuole utilizzare solo i fogli di stile
						if(thisLevel == 1)
						{
							//se secondo livello mette il quadratino invece delle freccie
							cont=cont+"<td id='" + thisNumber +"' width='"+dim+"' nowrap height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel + "clik" + "' valign=middle onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\"></td>";
							cont=cont+"<td id='"+ thisNumber +"' height='" + MenuRowHeight + "' class='"+classMenuRow + thisLevel  + "testo" + "clik" + "' valign='middle' colspan=" + (nCols-thisLevel+indno) + " align='left' width='100%' onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\">";
							cont=cont+((showNumbers)?(thisNumber+" "):"") + tocTab[i][1] + "</td></tr>";
						}
						else
						{
							//se il link di primo livello ha figli
							var z = i +1 ;
							var pezzo = tocTab[z][0].split(".");
							if(tocTab[i][0] == pezzo[0])
							{
								cont=cont+"<td id='" + thisNumber +"' width='"+dim+"' nowrap height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel + "clik" + "espandi" +"' valign=middle onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\"></td>";
								cont=cont+"<td id='"+ thisNumber +"' height='" + MenuRowHeight + "' class='"+classMenuRow + thisLevel + "testo" + "clik" + "' valign='middle' colspan=" + (nCols-thisLevel) + " align='left' width='100%' onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\">";
								cont=cont+((showNumbers)?(thisNumber+" "):"") + tocTab[i][1] + "</td></tr>";
							}
							else
							{
								cont=cont+"<td id='" + thisNumber +"' width='"+dim+"' nowrap height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel + "clik" +"' valign=middle onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\"></td>";
								cont=cont+"<td id='"+ thisNumber +"' height='" + MenuRowHeight + "' class='"+classMenuRow + thisLevel + "testo" + "clik" + "' valign='middle' colspan=" + (nCols-thisLevel) + " align='left' width='100%' onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\">";
								cont=cont+((showNumbers)?(thisNumber+" "):"") + tocTab[i][1] + "</td></tr>";
							}
						}
					}
					// ******* controllo se elemento non cliccato ******
					else
					{
						//moficare questa rige se si vuole utilizzare solo i fogli di stile
						if(thisLevel == 1)
						{
							//se secondo livello mette il quadratino invece delle freccie
							cont=cont+"<td id='" + thisNumber +"' width='"+dim+"' nowrap height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel + "' valign=middle  onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\"></td>";
							cont=cont+"<td id='"+ thisNumber +"' height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel + "testo" + "' valign='middle' colspan=" + (nCols-thisLevel+indno) + " align='left' width='100%' onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\">";
							cont=cont+((showNumbers)?(thisNumber+" "):"") + tocTab[i][1] + "</td></tr>";	
						}
						else
						{
							//se cliccato su una voce di secondo livello non aggiornare la relativa voce di primo livello(lasciare freccia giu)
							var liv2clik = currentNumber.split(".");
							if(liv2clik[0] == tocTab[i][1])
							{
								//entra solo se secondo livello cliccato
								var imggiu = "0clikespandi";
								var testogiu = "0";
								cont=cont+"<td id='" + thisNumber +"' width='"+dim+"' nowrap height='" + MenuRowHeight + "' class='" + classMenuRow + imggiu +"' valign=middle  onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\"></td>";
								cont=cont+"<td id='"+ thisNumber +"' height='" + MenuRowHeight + "' class='" + classMenuRow + testogiu + "testo" + "clik" +"' valign='middle' colspan=" + (nCols-thisLevel) + " align='left' width='100%' onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\">";
								cont=cont+((showNumbers)?(thisNumber+" "):"") + tocTab[i][1] + "</td></tr>";	
							}
							else
							{
								cont=cont+"<td id='" + thisNumber +"' width='"+dim+"' nowrap height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel +"' valign=middle  onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\"></td>";
								cont=cont+"<td id='"+ thisNumber +"' height='" + MenuRowHeight + "' class='" + classMenuRow + thisLevel + "testo" +"' valign='middle' colspan=" + (nCols-thisLevel) + " align='left' width='100%' onclick=\"javaScript:self.reDisplay('" + thisNumber + "'," + thisIsExpanded + ", true, " + _reBuild + ")\">";
								cont=cont+((showNumbers)?(thisNumber+" "):"") + tocTab[i][1] + "</td></tr>";	
							}
						}	
					}
				}
			}
		}
		cont=cont+"</table>";
		if(document.all)
		{
		document.all.layerAlbero.innerHTML=cont;
		}
		if(document.getElementById&&!document.all)
 		 {
		 document.all.layerAlbero.innerHTML=cont;
		 }
		if(document.layers)
		with(document.layerAlbero){document.open();document.write(cont);document.close()}
	}
	if( buildHashTable && gotoLink && currentNumber != "")
	// se l'hashTable non era già stata riempita
	{
		theHref=hashTab[currentNumber][2];
		nuova=hashTab[currentNumber][3]		
		if (theHref != "") eval(_target + ".location.href = \"" + theHref + "\"");
		if(nuova!="") window.open(nuova,"","scrollbars=1,toolbar=1,location=1,menubar=1,status=1,resizable")	
	}
}
