var d=document,w=window,wd=window.document;
var ie=n3=n=n6=op=op5=op6=op7=mac=0;
var ll = new Array();		//Array con lista de layers
var tree = new Array();		//Arbol de menues
var hdid;					//timeout id para cerrar TODO
var smid;					//timeout id para cancelar la muestra de un menu
var usa = "pp_menu";
var ds = "<div ";
var de = "</div>";
var num = 0;
var fm=true;
var zi = 500;
function draw_menu(mm,supmen){
	//Comienzo del layer + id
	num++;
	tnum = num;
	var tid = usa+"_"+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=\"menuvbase\"";
	}else{
		td += "position:absolute;";
		td += "visibility:hidden;";
		td += "\"";
		td += " class=\"menuvsub\"";
	}
	
	//Eventos del layer
	td += " onMouseOver=\"";
	td += "sha();";
	td += "\"";
	td += " onMouseOut=\"";
	td += "lmo();";
	td += "\"";
	//Cierra comienzo del layer
	td += ">";
	
	//Setea el superior
	tree[tid] = !fm?supmen:0;
	//Se agrega a la lista de layers
	if(!fm)
		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 += "position:relative;";
		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(mm[i][5],tid);
			mc = mm[0];
			td += "setvisible('"+nid+"',this.id);";
		}else{
			td += "setvisible('"+tid+"','"+tid+"');";
		}
		td += "\"";

		//Cierre del layer del item
		td += ">";
		
		//Contenido
		td += "<a ";
		if(parseInt(mm[i][0])==selmen){
			if(tfl){
				td += " class=\"menuvlinksel\"";
			}else{
				td += " class=\"menuvsublinksel\"";
			}
		}else{
			if(tfl){
				td += " class=\"menuvlink\"";
			}else{
				td += " class=\"menuvsublink\"";
			}
		}
		td += " style=\"display:block;\"";
		td += " href=\""+mm[i][2]+"\"";
		td += ">";
		if(nid){
			td += ds+" style=\"";
			td += "float:right;";
			td += "margin-right:5px;";
			td += "margin-top:5px;";
			td += "\">";
			td += drawImg(v_arrow);
			td += de;
		}
		td += mm[i][1];
		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;
	zi--;
	gds.zIndex = zi;
	return tid;
};
function gei(tid){
	return d.getElementById(tid);
}
function setvisible(id,cid,ms){
	clearTimeout(smid);
	smid = setTimeout("dosetvisible('"+id+"','"+cid+"')",showms);
}
function dosetvisible(id,cid){
	visibles = new Array();
	visibles[0] = id;
	if(cid != id && tree[id]!=0){
		lay = gei(id);
		setpos(cid,tree[id],id)
	}
	while (tree[id]!=0){
		visibles.push(tree[id]);
		id = tree[id];
	}
	for(i=0;i<ll.length;i++){
		tl = gei(ll[i]);
		tl.style.visibility = 'hidden';
	}
	for(i=0;i<visibles.length;i++){
		tl = gei(visibles[i]);
		tl.style.visibility = 'visible';
	}
}
function setpos(cd,fd,sd){
	cm = gei(cd);
	fm = gei(fd);
	sm = gei(sd);
	getWS();
	pl = fm.offsetLeft+parseInt(fm.offsetWidth);
	if(pl+parseInt(sm.offsetWidth) > winW){
		pl = fm.offsetLeft - parseInt(sm.offsetWidth);
		if(pl<0)
			pl = 0;
	}
	pt = fm.offsetTop+cm.offsetTop;
	if(pt<0)
		pt = 0;
	sm.style.top = pt+"px";
	sm.style.left = pl+"px";
}
function lmo(){
	clearTimeout(smid);
	hdid = setTimeout("ha()",hidems);
}
function sha(){
	clearTimeout(hdid);
}
function ha(){
	clearTimeout(smid);
	for(i=0;i<ll.length;i++){
		tl = gei(ll[i]);
		tls = tl.style;
		tls.visibility = 'hidden';
		tls.left = 0;
		tls.top = 0;
	}
}
function trace(txt){
	tr = gei('trace')
	tr.innerHTML += txt+"<br />";
}
function drawImg(iurl){
	it = "<img";
	it += " src='"+iurl+"'";
	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(){
	ha();
}