// JavaScript Document
var ritardo = 350;
var last_menu = null;//ultimo menu visualizzato
var old_menu = Array();//
var timeO = null;
var riga = Array();
var div_da_eliminare = Array();

function Crea_div (id_name , class_name , proprieta, stile){
	prop="";
	style="";
	if(!ie)
		nuovo_div=document.createElement("div");
	
	if(proprieta){
		proprieta_array=proprieta.split('#');
		for(j=0;j<proprieta_array.length;j++){
			aux=proprieta_array[j].split('=');
			attr_name=aux[0];
			attr_val=aux[1];
			
			if(!ie)
				nuovo_div.setAttribute(attr_name,attr_val);
			else
				prop=prop+attr_name+"="+"'"+attr_val+"' ";
		}
	}
	
	if(stile){
		stile_array=stile.split('#');
		if(ie) style = " style=\" ";
		for(j=0;j<stile_array.length;j++){
			aux=stile_array[j].split(':');
			attr_name=aux[0];
			attr_val=aux[1];
			
			if(!ie)
				eval('nuovo_div.style.'+attr_name+' = "'+attr_val+'"');
			else style=style+attr_name+":"+attr_val+"; ";
				
		}
		if(ie) style += " \" ";
	}
	
	if(ie)
		nuovo_div=document.createElement("<div "+prop+" "+style+" >");
		
	if(id_name!='')
		nuovo_div.setAttribute("id",id_name);
	if (class_name!='') 
		nuovo_div.className=class_name;
	
	return nuovo_div;
}
function Crea_br(){
	if(!ie)
		nuovo_br=document.createElement("br");
	else
		nuovo_br=document.createElement("<br>");
		
	return nuovo_br;
}

function Crea_link(id_name , class_name , text , perc , proprieta){
	
	prop="";
	if(!ie)
		nuovo_link=document.createElement("a");
	
	if(proprieta){
		proprieta_array=proprieta.split('#');
		for(j=0;j<proprieta_array.length;j++){
			aux=proprieta_array[j].split('=');
			attr_name=aux[0];
			attr_val=aux[1];
			
			if(!ie)
				nuovo_link.setAttribute(attr_name,attr_val);
			else
				prop=prop+attr_name+"="+"'"+attr_val+"' ";
		}
	}
	if(ie)
		nuovo_link=document.createElement("<a "+prop+">");
		
	if(id_name!='')
		nuovo_link.setAttribute("id",id_name);
	else if (class_name!='') 
		nuovo_link.className=class_name;
		
	nuovo_link.href=perc;
	
	nuovo_testo=document.createTextNode(text);
	nuovo_link.appendChild(nuovo_testo);
	
	return nuovo_link;
}

function Visualizza(links,element){
	if(last_menu == null){
		
		new_div=Array();
		links_array=links.split(';');
		
		coordinates = getCoordinates(element);
		coordinates.y +=10;
		styles='position:absolute#top:'+coordinates.y+'px#left:'+coordinates.x+'px';
		
		new_div=Crea_div('','navigazione_extra','onmouseover=Stop()#onmouseout=Aspetta()',styles);
		
		for(i=0;i<links_array.length;i++){
			if( i < (links_array.length)-1 )
				eval("separatore"+i+"=Crea_br();");
			else 
				eval("separatore"+i+"=document.createTextNode('');");
			aux=links_array[i].split('#,#');
			testo=aux[0];//il testo dei link
			percorso=aux[1];//l' href dei link
			id=aux[2];//id del link
			
			new_link=Crea_link(id,'link_nero',testo,percorso);
			if(aux[0]!=" "){
				new_div.appendChild(new_link);
				eval("new_div.appendChild(separatore"+i+");");
			}
		}
		
		//arrivato qua ho il sottomenu composto
		//il sottomenu di default compare sotto la voce del menu principale,
		//se pero aggiuggendo il sottomenu sforamo l'altezza della pagina, allora lo facciamo apparire sopra
		new_div.style.visibility = "hidden";
		
		
		document.body.insertBefore(new_div,document.body.firstChild);
		//++++++++++++++++++++++++++++++++++++++++++++++
		//prima era cosi ma dava problemi con explorer
		//se la funzione veniva richiamata prima che la pagina fosse stata caricata completamente
		//creava dei problemi e non visualizzava la pagina
		//++++++++++++++++++++++++++++++++++++++++++++++
		//document.body.appendChild(new_div);
		//++++++++++++++++++++++++++++++++++++++++++++++
	
		if( (coordinates.y + new_div.offsetHeight) > document.body.clientHeight ){
			new_div.style.top = coordinates.y-(new_div.offsetHeight+20)+"px";
		}
		
		new_div.style.visibility = "visible";
		//alert(new_div.offsetHeight);
		last_menu = new_div;
		
	}
	else{
		Stop();
		Nascondi();
		Visualizza(links,element);
	}
}

function Nascondi(){
	if(last_menu!=null){
		document.body.removeChild(last_menu);
		last_menu=null;
		timeO=null;
	}
}

function Aspetta ( rit){
	if(timeO==null){
		if (!rit) rit=ritardo;
		timeO=setTimeout('Nascondi();',rit);
	}
	else
		Stop();
}
function Stop(){
	if(timeO!=null){
		clearTimeout(timeO);
		timeO=null;
	}
}


function getCoordinates(element) {
 var coords = {x: 0, y: 0, width: 0};

 while (element) {
   coords.x += element.offsetLeft;
   coords.y += element.offsetTop;
//   coords.y += element.top;
   element = element.offsetParent;
 }

// alert(coords.x+' '+coords.y);
 return coords;
}
