
// Visualizacion capas primarias
function gestionCapaExterna(nomFrame, nomCapa, estado){
	if (menuCargado == true){
		parent.frames[nomFrame].gestionCapaInterna(nomCapa, estado);
	}
}

function gestionCapaInterna(nomCapa, estado){
	capaFija = parent.frames['menuizquierda'].getCapaFijada();
	
	
	if (estado == 1){
		if (capaFija == "ninguna"){
			visualizarCapa(nomCapa,1);
			gestionCapaInternaNivelUno(nomCapa, 1);
		}else{
			
			visualizarCapa(capaFija,0);
			gestionCapaInternaNivelUno(capaFija, 0);
			
			visualizarCapa(nomCapa,1);
			gestionCapaInternaNivelUno(nomCapa, 1);
		}
	}
	if (estado == 0){
		if (capaFija == "ninguna"){
			visualizarCapa(nomCapa,0);
			gestionCapaInternaNivelUno(nomCapa, 0);
		}else{
			
			visualizarCapa(nomCapa,0)
			gestionCapaInternaNivelUno(nomCapa, 0);
			
			visualizarCapa(capaFija,1)
			gestionCapaInternaNivelUno(capaFija, 1);
		}
	}
	
	
}
function visualizarCapa(nomCapa, estado){
	if (estado==1)	{
		document.getElementById(nomCapa).style.visibility="visible"; 
	}
	 
 	if (estado==0)  {
 		document.getElementById(nomCapa).style.visibility="hidden"; 
 	}
}

// Comprueba que la pagina se ha cargado totalmente comprobando la existencia de un elemento "comprobacion" al final
function comprobarCarga()
{
	objComprobacion = document.getElementById("comprobacion");
	
	if (objComprobacion != undefined){
		parent.frames['cabmenu1'].setMenuCargado(true)
		
		document.getElementById("cargando").style.visibility="hidden"; 
	}else{
		parent.frames['cabmenu1'].setMenuCargado(false)
		
	}
	
}

function fijarCapaMenu(nombreCapa)
{
	parent.frames['menuizquierda'].setCapaFijada(nombreCapa)
}

//Visualizacion capas secundarias en un frame distinto

function gestionCapasNivelUno(nomFrame, nomCapaPadre, estado){
	if (menuCargado == true){
		parent.frames[nomFrame].gestionCapaInternaNivelUno(nomCapaPadre, estado);
	}
}
//Visualizacion capas secundarias en el frame original
//Estados:
// 0 - No visible
// 1 - Visible
// 2 - Desplegado
// 3 - Replegado
function gestionCapaInternaNivelUno(nomCapaPadre, estado){
	incremento = 22
	for (i=0; i<=document.menu.elements.length;i++){
		objMenu = document.menu.elements[i];
		if (objMenu != undefined){
			nombreCapa = objMenu.name;
			estadoCapa = objMenu.value; 
			textoCapa = objMenu.id;
			
			// Detectamos si deriva del principal --> nombreCapaPadre1NombreCapaHijo
			// o si del primario --> nombreCapaPadre2NombreCapaHijo1NombreCapaNieto
			if (nombreCapa.indexOf(nomCapaPadre, 0)== 0){	
				// Fase 0: se seleccionan las capas de nivel uno y la muestra en su posicion
				if (nombreCapa.indexOf(nomCapaPadre+"1", 0)== 0){
					//Fase 1: se posicionan las capas de nivel uno
					longitudTexto = textoCapa.length
					moverCapa(nombreCapa, incremento);
					incremento = incremento + 22;
					if (longitudTexto > 28){
						incremento = incremento + 12
						if (longitudTexto > 54){
							incremento = incremento + 12
							if (longitudTexto > 70){
								incremento = incremento + 12
								if (longitudTexto > 96){
									incremento = incremento + 12
									if (longitudTexto > 122){
										incremento = incremento + 12
										
									}
								}
							}
						}
					}
											
					//Fase 2: se visualizan las opciones de nivel uno
					visualizarCapa(nombreCapa, estado);
					//Fase 3: si tiene hijos, se despliega
					if (estadoCapa=="abierto"){
						pos = nomCapa.indexOf("1");
						prefijo = nomCapa.substr(0, pos)+"2"+nomCapa.substr(pos+1, nomCapa.length)
						for (j=i; j<=document.menu.elements.length;j++){
							objSubMenu = document.menu.elements[j];
							if (objSubMenu != undefined){
								nombreSubCapa = objSubMenu.name;
								textoSubCapa = objSubMenu.id;
								
								if (nombreSubCapa.indexOf(prefijo, 0)== 0){
									longitudTexto = textoSubCapa.length
									moverCapa(nombreSubCapa, incremento);
									incremento = incremento + 22;
									if (longitudTexto > 28){
										incremento = incremento + 12
										if (longitudTexto > 54){
											incremento = incremento + 12
											if (longitudTexto > 70){
												incremento = incremento + 12
												if (longitudTexto > 96){
													incremento = incremento + 12
													if (longitudTexto > 122){
														incremento = incremento + 12
										
													}
												}
											}
										}
									}
									visualizarCapa(nombreSubCapa, estado);
								}
							}
						}
					}
				}
			}
		}
	}
	// Fin del bucle de opciones secundarias
}


// Mover capas en los menus
function moverCapa(nomCapa, numPixeles){
	alturaActual = getAltura(); 
	alturaActual = parseInt(alturaActual) + parseInt(numPixeles);
	document.getElementById(nomCapa).style.top = alturaActual;
}


// Despliegue - Repliegue de menus
function desplegarSubmenus(nomMenu, nomMenuPadre){
	nomCapa = nomMenuPadre + "1" + nomMenu
	estadoActual = document.forms[0].elements[nomCapa].value;
	if (estadoActual == "cerrado"){
		ocultarSubmenus()
		document.forms[0].elements[nomCapa].value = "abierto"
		futuroEstado = 1 
	}
	if (estadoActual == "abierto"){
		document.forms[0].elements[nomCapa].value = "cerrado"
		futuroEstado = 1
	}
	gestionCapaInternaNivelUno(nomMenuPadre, futuroEstado)
}
function ocultarSubmenus(){
	capaFija = getCapaFijada();
	
	for (j=0; j<=document.menu.elements.length;j++){
		objSubMenu = document.menu.elements[j];
		if (objSubMenu != undefined){
			nombreSubCapa = objSubMenu.name;
			estadoSubCapa = objSubMenu.value; 
			textoSubCapa = objSubMenu.id;
			
			if (nombreSubCapa.indexOf(capaFija+"2", 0)== 0){
				
				visualizarCapa(nombreSubCapa, 0);
			}
		}
	}
}

































function replegarTodosSubmenus(){
	for (i=0; i<=document.menu.elements.length;i++){
		objMenu = document.menu.elements[i];
		if (objMenu != undefined){
			nombreCapa = objMenu.name;
			estadoCapa = objMenu.value; 
			if ((estadoCapa == "abierto")){
				document.forms[0].elements[nombreCapa].value = "cerrado"
				futuroEstado = 3
				gestionCapaInternaNivelUno(nombreCapa, futuroEstado)
			}
		}
	}
	
}

