/*definizione variabili globali*/
var IDDiv;
var IDD; 
var xmlFile;
var nomeFile;
var numNodi;
var arrID=new Array();
/*recupero del valore della voce cliccata*/
function start(n){
   
   if (n!="0"){
var m=n+"sottovoce";
   	//var voce=eval('document.getElementById(menu'+n+')');
	var voce=document.getElementById(m);
			   		
	   voce.style.display="block";
   	}
}
/*recupero del valore dell'attributo liv delle voci del menu
passaggio del nome del file xml da caricare*/
function group_onclick(IDDD){
   IDDiv=IDDD;
//****permette di prendere il numero compreso nella stringa

   nn = /(\d+)/; 
   nn.exec(IDDiv); 
    
   var numero=RegExp.$1
    

//*****
   nomeFile=IDDiv.split(numero);

var filePath="xml/"+nomeFile[0]+".xml"

   carica(filePath);   
}

/*carica file xml sia per ms che per altri s.o.*/
function carica(xmlFile){

   if (document.implementation && document.implementation.createDocument) {

	   xmlDoc = document.implementation.createDocument("", "", null);
	   xmlDoc.async = false;
	   xmlDoc.load(xmlFile);
	   mostra(IDDiv);	
   }else if (window.ActiveXObject){
      xmlDoc= new ActiveXObject("MSXML.DOMDocument");
      xmlDoc.async = false;   	
	   xmlDoc.load(xmlFile);
	   mostra(IDDiv);	  
   }
}

/*funzione che permette di aprire e chiudere le varie voci del menu
e mostrare le sottovoci*/
function mostra(idS){

//****permette di prendere il numero compreso nella stringa

   nn = /(\d+)/; 
   nn.exec(idS); 
    
   var id=RegExp.$1 

//*****
var objNodeListS=xmlDoc.getElementsByTagName("voce");
numNodi=objNodeListS.length;

/*per ogni voce si memorizza in una array il valore dell'attributo liv solo se sono presenti le sottovoci*/
var k=0;
for (var j=0; j<numNodi; j++){
    
 var objNodeListSE=objNodeListS[j].getElementsByTagName("sottovoce");

     if (objNodeListSE.length!=0){     
        arrID[k] = j+1 
                             
        k++;
     }
}

/*PRIMO: controlla se indice i (che stà in corrispondenza con il valore dell'attributo
liv della voce del menu) è presente nell'array; solo in quel caso la voce è dotata di
sottovoce da espandere.
SECONDO: nel caso punto primo affermativo si passa a controllare se l'indice i corrisponde al valore dell'attributo liv della voce di menu clickata
TERZO: nel caso punto secondo affermativo si passa ad espandere o comprimere il div della sottovoce  e a comprimere eventuali altri sottomenu espansi.
*/
 for (var i=0; i<numNodi+1; i++){
    for (var h=0; h<arrID.length; h++){
     
	if (i==arrID[h]){
      
   		if (i==id){                       
	   		var obj=document.getElementById(nomeFile[0]+id+"sottovoce");
				if ( obj.style.display=="block"){
		   			obj.style.display="none";
				}else{
	   				obj.style.display="block";
				}			  				  		
		}
		else{				   		
			var oggetto=document.getElementById(nomeFile[0]+i+"sottovoce")		 				
	   			oggetto.style.display="none";				
	   	}

 	  }

   }
  }			  	
}
