var d=document,w=window,wd=window.document;
var ie=n3=n=n6=op=op5=op6=op7=mac=0;
var h_ll = new Array();		//Array con lista de layers
var h_tree = new Array();	//Arbol de menues
var h_hdid;					//timeout id para cerrar TODO
var h_smid;					//timeout id para cancelar la muestra de un menu
var h_usa = "pp_h_menu";
var ds = "<div ";
var de = "</div>";
var evt;
var h_num = 0;
var fm=true;
var h_zi = 1000;

function draw_menu_h(mm,supmen){
	//Comienzo del layer + id
	h_num++;
	tnum = h_num;
	var tid = h_usa+"_"+h_num;
	var td = ds+'id="'+tid+'"';
	
	//Style del layer
	td += " style=\"";
	if(fm){ //Position del layer
		td += "position:relative;";
//		td += "visibility:visible;";
		td += "\"";
		td += " class=\"menuhbase\"";
	}else{
		td += "position:absolute;";
		td += "visibility:hidden;";
		td += "\"";
		td += " class=\"menuhsub\"";
	}
	
	//Eventos del layer
	td += " onMouseOver=\"";
	td += "h_sha();";
	td += "\"";
	td += " onMouseOut=\"";
	td += "h_lmo();";
	td += "\"";

	//Cierra comienzo del layer
	td += ">";
	
	//Setea el superior
	h_tree[tid] = !fm?supmen:0;

	//Se agrega a la lista de layers
	if(!fm)
		h_ll.push(tid);

	//No es mas el primer layer
	var tfl = fm;
	fm = false;
	
	//Items de este layer
	for(var i=0;i<mm.length;i++){
		//Comienzo del layer del item + id
		tsid = tid+"_"+i;
		td += ds+'id="'+tsid+'"';

		//Style del item
		td += " style=\"";
		td += "cursor:pointer;";
		td += "\"";
		
		//Eventos del layer
		// onClick
		td += " onClick=\"";
		// JavaScript onClick
		if(mm[i][4])
			td += mm[i][4]+";";
		td += "\"";

		// onMouseOver
		td += " onMouseOver=\"";
		var nid = "";
		if(mm[i][5]){
			nid = draw_menu_h(mm[i][5],tid);
			mc = mm[0];
			td += "h_setvisible('"+nid+"',this.id,"+tfl+",event);";
		}else{
			td += "h_setvisible('"+tid+"','"+tid+"',"+tfl+",event);";
		}
		td += "\"";

		//Cierre del layer del item
		td += ">";
		
		//Contenido
		td += "<a ";
		if(parseInt(mm[i][0])==h_selmen){
			if(tfl){
				td += " class=\"menuhlinksel\"";
			}else{
				td += " class=\"menuhsublinksel\"";
			}
		}else{
			if(tfl){
				td += " class=\"menuhlink\"";
			}else{
				td += " class=\"menuhsublink\"";
			}
		}
		td += " style=\"display:block;\"";
		td += " href=\""+mm[i][2]+"\"";
		td += ">";
		td += mm[i][1];
		if(nid){
			td += drawImg(tfl?h_arrow:h_arrowr);
		}
		td += "</a>"
		
		//Cierre del div
		td += de;
	}
	td += "<div style=\"clear:both;\"></div>";
	td += de;
	// Escribe el layer
	d.write(td);
	var gd = gei(tid);

	// Set Style
	var gds = gd.style;
	h_zi--;
	gds.zIndex = h_zi;
	return tid;
};

function gei(tid){
	return d.getElementById(tid);
}
function h_setvisible(id,cid,fi,et){
	this.evt = et.target;
	clearTimeout(h_smid);
	h_smid = setTimeout("h_dosetvisible('"+id+"','"+cid+"',"+fi+",this.evt)",h_showms);

}
function h_dosetvisible(id,cid,fi,evt){
	visibles = new Array();
	visibles[0] = id;
	if(cid != id && h_tree[id]!=0){
		lay = gei(id);
		h_setpos(cid,h_tree[id],id,fi,evt)
	}
	while (h_tree[id]!=0){
		visibles.push(h_tree[id]);
		id = h_tree[id];
	}
	for(i=0;i<h_ll.length;i++){
		tl = gei(h_ll[i]);
		tl.style.visibility = 'hidden';
	}
	for(i=0;i<visibles.length;i++){
		tl = gei(visibles[i]);
		tl.style.visibility = 'visible';
	}
}
function h_setpos(cd,fd,sd,fi,evt){ //cd: llama; fd: sup; sd: newlayer; fi: primero
	cm = gei(cd);
	fm = gei(fd);
	sm = gei(sd);
	getWS();
	if(evt){
		var Element = evt;
		var CalculatedTotalOffsetLeft = 0;
		var CalculatedTotalOffsetTop = Element.offsetHeight ;
		CalculatedTotalOffsetLeft += Element.offsetLeft ;
		while(fd!=Element.id){
			Element = Element.offsetParent ;
		}
		CalculatedTotalOffsetTop += Element.offsetTop ;
	}
	if(fi){
		if(evt){
			pl = CalculatedTotalOffsetLeft;
		}else{
			pl = fm.offsetLeft+cm.offsetLeft;
		}
	}else{
		pl = fm.offsetLeft+parseInt(fm.offsetWidth);
		if(pl+parseInt(sm.offsetWidth) > winW){
			if(fi)
				pl = fm.offsetLeft+cm.offsetLeft;
			else
				pl = fm.offsetLeft-parseInt(sm.offsetWidth);
			if(pl<0)
				pl = 0;
		}
	}
	if(fi){
		if(evt){
			pt = CalculatedTotalOffsetTop;
		}else{
			pt = fm.offsetTop+cm.offsetTop+cm.offsetHeight; 
		}
	}else{
		pt = fm.offsetTop;
	}
	if(pt<0)
		pt = 0;
	sm.style.top = pt+"px";
	sm.style.left = pl+"px";
}
function h_lmo(){
	clearTimeout(h_smid);
	h_hdid = setTimeout("h_ha()",h_hidems);
}
function h_sha(){
	clearTimeout(h_hdid);
}
function h_ha(){
	clearTimeout(h_smid);
	for(i=0;i<h_ll.length;i++){
		tl = gei(h_ll[i]);
		tls = tl.style;
		tls.visibility = 'hidden';
		tls.left = 0;
		tls.top = 0;
	}
}
function drawImg(iurl){ 
	it = "<img";
	it += " src='"+iurl+"'";
	it += " style=\"";
//	it += "margin-right:5px;";
	it += "margin-left:5px;";
	it += "margin-top:5px;";
	it += "border:none;";
	it += "\"";
	it += " border=0";
	it += ">";
	return it;
}
function getWS(){
	if (parseInt(navigator.appVersion)>3) {
		if (navigator.appName=="Netscape") {
			winW = window.innerWidth-16;
			winH = window.innerHeight-16;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) {
			winW = document.body.offsetWidth-20;
			winH = document.body.offsetHeight-20;
		}
	}
	return(winW,winH)
}
w.onresize = wResize;
function wResize(){
	h_ha();
}
