// Requires EXTRAS namespace (extras.js in this folder)
// Requires IEtoW3C namespace (IEtoW2C.js in this folder)
var MENUUNAOPCION = {
	selmenus : [], 	// [i][0]: parent element reference
			// [i][1]: title reference
			// [i][2]: list menu reference
			// only restriction: have *one* title and menu for each "selmenu"

	start : function() {
		/* Añadimos el css de comportamiento al <head> */
		var oCSSComportamiento = document.createElement("link");
		oCSSComportamiento.setAttribute("type", "text/css");
		oCSSComportamiento.setAttribute("href", "/css2/comun/menuMultinivelComportamientos.css");
		oCSSComportamiento.setAttribute("rel", "stylesheet");
		document.getElementsByTagName("HEAD")[0].appendChild (oCSSComportamiento);
	

		//alert ("BB");
		/* Recuperamos los diferentes menús que haya en la página
			normalmente sólo habrá uno */
		var mmono = EXTRAS.getElementsByClass("menuMono");
		var mmulti = EXTRAS.getElementsByClass("menuMulti");
		sm = mmono.concat(mmulti);
		//alert (sm.length);

		for (var i = 0; i < sm.length; i++) {
			/* decidimos si es mono-opción o multi-opción */
			if (sm[i].className == "menuMono")
				sm[i].plus_tipo = "mono";
			else
				sm[i].plus_tipo = "multi";

			var items = sm[i].getElementsByTagName("LI");
			//alert ( items.length);
			for (var j = 0; j < items.length; j++) {
				/* Vamos añadiendo a cada elemento su manejador de despliegue */
				//alert(items[j].tagName + " " + MENUUNAOPCION.tieneHijos(items[j]) + items[j].innerHTML +items[j].childNodes.item(0));
				//alert(items[j].className);
				if (MENUUNAOPCION.tieneHijos(items[j]) && items[j].className != "conhijos desplegado origen") {
					items[j].insertBefore(MENUUNAOPCION.creaManejadorDespliege(items[j], sm[i]), items[j].childNodes.item(0) );
				}
				//alert(items[j].textContent);
			}
			//sm[i].textContent);
		}

	},
	
	tieneHijos: function(oItem) {
		var bTieneHijos = false;
		for (var i = 0; i < oItem.childNodes.length; i++) {
			if (oItem.childNodes[i].tagName == "UL") {
				bTieneHijos = true;
				//alert (i + ". " +oItem.childNodes[i].tagName);
				break;
			}
		}
		return (bTieneHijos);
	},
	
	creaManejadorDespliege: function(oLIPadre, oMenu) {
		/* <a class="conhijos desplegado" id="I466650" onclick="despliega(this);"> */
		//oLIPadre.setAttribute ("class", "conhijos plegado"); /* No rula en el IExplorer, ¡que extraño! */
		//oLIPadre.className ="conhijos plegado";
		oLIPadre.plus_oMenu = oMenu;
		oLIPadre.plus_plegado = true;

		var oManejador = document.createElement("span");

		oManejador.appendChild(oLIPadre.childNodes.item(0));

		//oManejador.setAttribute ("onclick", "return MENUUNAOPCION.cambiaEstado (this)");
		//EXTRAS.addEvent(oManejador, 'click', MENUUNAOPCION.cambiaEstado, true);
		oManejador.addEventListener("click", MENUUNAOPCION.cambiaEstado, false);
		//alert ("addEventListener a " + oLIPadre.getAttribute ("class") + " - " +oManejador.tagName);
		return (oManejador);
	},
	cambiaEstado: function(oEvento) {
		//alert("onclick " + oEvento.target.tagName);

		var oLiPadre = oEvento.target.parentNode;
		//alert("onclick " + oLiPadre.tagName);
		
		var bNuevoEstado = !oLiPadre.plus_plegado
		/* si es mono-opción plegamos todo el árbol */
		if (oLiPadre.plus_oMenu.plus_tipo == "mono")
			MENUUNAOPCION.pliegaArbol (oLiPadre.plus_oMenu, true);

		/* Cambiamos el estado del nodo */
		MENUUNAOPCION.pliegaItem(oLiPadre, bNuevoEstado);
/*
		if (oLiPadre.plus_plegado) {
			oLiPadre.className = "conhijos desplegado";
			oLiPadre.plus_plegado = false;
		}
		else {
			oLiPadre.className = "conhijos plegado";
			oLiPadre.plus_plegado = true;
		}
		*/
		return false;
	},
	pliegaItem: function(oNodo, bPlegado) {
		if (bPlegado) {
			oNodo.className = "conhijos plegado";
			oNodo.plus_plegado = true;
		}
		else {
			oNodo.className = "conhijos desplegado";
			oNodo.plus_plegado = false;
		}
	},
	pliegaArbol: function(oArbol, bPlegado) {
		/* Pone todos los nodos del arból plegados / desplegados dependiendo de bPlegado */
		var items = oArbol.getElementsByTagName("LI");
		//alert ( items.length);
		for (var j = 0; j < items.length; j++) {
			if (MENUUNAOPCION.tieneHijos(items[j]) && items[j].className != "conhijos desplegado origen") 
				MENUUNAOPCION.pliegaItem(items[j], bPlegado);
		}
		
	}
	
}


//alert("HOLA");
//if (document.getElementsByTagName) EXTRAS.addEvent(window, 'load', SELMENU.start, false);
//if (document.getElementsByTagName) EXTRAS.addEvent(window, 'load', MENUUNAOPCION.start, false);
window.addEventListener("load", MENUUNAOPCION.start, false);
//document.write("<link type=\"text/css\" href=\"menuMultinivelComportamientos.css\" rel=\"stylesheet\" />\n");
