	var Menu = function(sCont,iOpenDelay,iCloseDelay){
		
		//proprietà oggetto	
		this.sCont = sCont;
		this.iOpenDelay = iOpenDelay;
		this.iCloseDelay = iCloseDelay;
		this.oSelVoice = null;
		this.aDispVoice = new Array();
		this.aEvidVoice = new Array();
		this.iDispTimer = -1;
		this.iHideTimer = -1;
		
		//metodi
		this.onmouseover_voice = function (oVoice){
			//elimino il timer che potrebbe farmi nascondere tutto
			clearTimeout(this.iHideTimer);
			//se ho selezionato il blocco già selezionato esco diretto
			if (this.oSelVoice == oVoice)
				return;
			//elimino l'eventuale timer di visualizzazione che è stato fatto partire prima
			clearTimeout(this.iDispTimer);		
			//imposto sel_voice
			this.oSelVoice = oVoice;
			//lancio il timer per la visualizzazione
			var this_obj = this;
			this.iDispTimer = setTimeout(
													function(){
														this_obj.show_menu();
													},
													this.iOpenDelay
												);
		}	
		this.show_menu = function (){
			//nascondo ciò che visualizzato in precedenza
			this.hide_menu();
			//mostro mio figlio se presente (è un UL)
			var oChild = getobj(this.oSelVoice.id + "_0");
			if (oChild)
				nshow(oChild);
			//mostro i miei antenati (UL)
			for (sUl = this.oSelVoice.id.substr(0,this.oSelVoice.id.lastIndexOf("-")); sUl.indexOf("-") != -1 ; sUl = sUl.substr(0,sUl.lastIndexOf("-")) )
				nshow(sUl);
			//evidenzio i miei me e i miei antenati (LI)
			for (sLi = this.oSelVoice.id ; sLi.indexOf("_") != -1 ; sLi = sLi.substr(0,sLi.lastIndexOf("_")) )
				getobj(sLi).className = getobj(sLi).className.replace(/_out/g,"_in");			
		}	
		this.hide_menu = function (){
			var oCont = getobj(sCont);
			if (oCont){
				//nascondo tutti gli ul contenuti nel container (partendo dal secondo!)
				var aUl = oCont.getElementsByTagName('ul');
				for (var i = 1; i < aUl.length; i++)
					nhide(aUl[i]);
				//dis-evidenzio tutti i li contenuti nel container
				var aLi = oCont.getElementsByTagName('li');
				for (var i = 0; i < aLi.length; i++)
					aLi[i].className = aLi[i].className.replace(/_in/g,"_out");
			}
		}	
		this.onmouseout_voice = function (){
			//lancio il timer per la cancellazione del menu
			var this_obj = this;
			this.iHideTimer = setTimeout(
													 function(){
													 		this_obj.oSelVoice = null;
													 		this_obj.hide_menu();
													 },
													 this.iCloseDelay
												);
		}
	}
