//-----------------------------------------------------------------------------
//                          DEFINICION DE VARIABLES
//-----------------------------------------------------------------------------

// IMAGENES UTILIZADAS
//=============================
// images/separador.gif => pto de un color que separa las secciones
// images/flecha_hoja_cerrada.gif => flecha de las hojas, cuando el ratón NO está sobre ellas
// images/flecha_hoja_abierta.gif => flecha de las hojas, cuando el ratón está sobre ellas

// ESTILOS UTILIZADOS
//=============================
// selec_1 => Estilo del cuadro para las carpetas cuando está el ratón sobre ellas
// selec_2 => Estilo del cuadro para las hojas cuando está el ratón sobre ellas
// noselec_1 => Estilo del cuadro para las carpetas cuando NO está el ratón sobre ellas
// noselec_2 => Estilo del cuadro para las hojas cuando NO está el ratón sobre ellas
// mi_estilo_1 => Estilo del texto de las carpetas
// mi_estilo_2 => Estilo del texto de las hojas

// FUNCIONES UTILIZADAS
//=============================
// fuera_1()=> Se usa para apagar la casilla de una carpeta
// sobre_1()=> Se usa para iluminar la casilla de una carpeta

// NOMBRES DE LOS FRAMES USADOS
//==================================
// contenido => Donde se muestran las paginas
// menu => Donde se muestra el menu


// VARIABLES DE ENTRADA/SALIDA (modificables por el usuario)
//=============================================================================
var frame_menu= 1;  // numero del frame en el que irá el menu (los frames se numeran por orden de definición
var frame_contenido= 2;  // numero del frame donde se muestran las páginas del menu
var ancho_menu= 132; //ancho del menu


// VARIABLES INTERNAS DEL CODIGO
//=============================================================================
//Elementos del menu
var elemento = new Array();

//Links de cada elemento
var link = new Array();

//Nombre del elemento que vuelve a la página principal
var principal = "Página principal";


// OTRAS VARIABLES
var adapta = "href=\"JavaScript:";
var base = "";
var marca = 0; //****//
var ramaAbierta = 0; //****//
var nivelDosAbierto = 0; //****//
var marcaRama=100;
var marcaNodo=200;
var abierto=0;
var pinchado = 0; //****//
var inicio = 0; //****//
var num_de_dibu=0;
var foldersTree = 0;
var timeOutId = 0;


//-----------------------------------------------------------------------------
//                          DEFINICION DE FUNCIONES
//-----------------------------------------------------------------------------

//Redibuja el menú
//------------------------
function enlace1() {
	
	parent.frames[frame_menu].window.location.href = base + "menu.htm";
}

//Devuelve el primer caracter de una cadena
//-----------------------------------------------
function one(cadena) {
  if (cadena[0] == null) {
     return cadena.charAt(0);
  } else {
     return cadena[0];
  }
}

//---------------------------------------------------------
// NOTAS SOBRE EL FORMATO DEL ARBOL DE MENUS
//---------------------------------------------------------
// Cada nodo del arbol es un array con 4+N posiciones
//  nodo[0]= 0/1 según si el nodo está cerrado/abierto
//  nodo[1]= 0/1 según si la carpera está cerrada/abierta
//  nodo[2]= 1 si el hijo del nodo es un documento 
//  nodo[3]= nombre de la capeta
//  nodo[4]...node[4+N]= Referencias a los N nodos hijos


//Genera el árbol
//---------------------------
function generateTree(){

	var aux1, aux2, aux3, aux4, i, j, k, car, cadena, solo;

	var navname = navigator.appName.substring(0,8);

        num_de_dibu=0;
	// raiz
	foldersTree = folderPrime(principal);
	
	
		//Construye el resto de ramas
		for (i=0;i<elemento.length;i++){

			//alert("elemento " + i);
			solo=0;
			if (navname == "Netscape"){
				if (elemento[i][0] == "*") solo = 1;
			}else if (navname == "Microsof"){
				if (elemento[i][0] == null) solo = 1;
			}

		 	if (solo){
				
				aux1 = appendChild(foldersTree, folderNode(elemento[i].substring(1,elemento[i].length )));
				
			} else {
				aux1 = appendChild(foldersTree, folderNode(elemento[i][0]));				
				abierto=0;
				for (j=1; j<elemento[i].length; j++) {
  					//alert ("elemento: " +i + ","+j);
					cadena="";
					k=0;
					car = elemento[i][j].charAt(k);
					
					while ((car != "%") && (car != "/")){
						cadena = cadena + car;
						k++;
						car = elemento[i][j].charAt(k);		
					}
					
					if (cadena == nivelDosAbierto) {
						abierto=1;
					} else {
						abierto=0;
					}
					appendChild(aux1, generateDocEntry(0,elemento[i][j], link[i][j], abierto));
				}
					
			}
		}	
					
}



//Construye el elemento a la página principal
//-----------------------------------------------
function folderPrime(name){

	var arrayAux;

	arrayAux = new Array;
	arrayAux[0] = 1;
	arrayAux[1] = 1;
	arrayAux[2] = 0;
	arrayAux[3] = name;
        
   return arrayAux;
}

//Construye los elementos padre
//-----------------------------------------------
function folderNode(name){

	var arrayAux;

	arrayAux = new Array;
	
	if (name == ramaAbierta){
		arrayAux[0] = 1;
		arrayAux[1] = 1;
	} else {
		arrayAux[0] = 0;
		arrayAux[1] = 0;
	}
	
	arrayAux[2] = 0;
	arrayAux[3] = name;
        
   return arrayAux;
}

// Función auxiliar para construir el nodo
//-----------------------------------------------
function appendChild(parent, child){
	
	parent[parent.length] = child;
	return child;
}

//Si se pincha sobre un padre lo despliega, si se pincha sobre un hijo salta al link
//-------------------------------------------------------------------------------------
function doble(para,titulo, marcaNodo, nivelDos){

alert(para);
alert(titulo);
alert(marcaNodo);
alert(nivelDos);

	pinchado = titulo;
	if (nivelDos == 1) {
		if (titulo == nivelDosAbierto) {
			nivelDosAbierto="";
		} else {
			nivelDosAbierto = titulo;
		}
	}

	
	if (para.substring(0,5) == "Javas") {
alert("caso 1");
alert(para);
	   eval(para);
	} else {
alert("caso 2");
alert(para);
alert(base+para);
	    if (para != "nada") {
		self.top.window.frames[frame_contenido].location.href = base + para;
	    }	
	}

	marca=marcaNodo;
	generateTree();

	enlace1();
		
	self.top.window.frames[frame_menu].location.href = base + "menu.htm#" + marcaNodo;
}





//============================================================================
//                         FUNCIONES PARA EL DIBUJO
//============================================================================

// REDIBUJA Todo el Frame del menu
//------------------------------------
function redrawTree() {

	var cadena;
	var doc = parent.frames[frame_menu].window.document;
	marcaRama=100;
	marcaNodo=200;
	
	doc.clear();
        doc.write("<div align='left'><table width='" + ancho_menu + "' border='0' cellpadding='0' cellspacing='0'>");
        for (i=4;i<foldersTree.length;i++) {
  	  redrawNode(foldersTree[i], doc, 0, 1, "");
        }
        doc.write("</table></div>");
	doc.close();
	
}


// Crea el código HTML para mostrar la carpeta y su etiqueta
// Aquí está el cógigo que determina
function displayIconAndLabel(foldersNode, doc, level) {

//	doc.write("<img src=");
//	if (foldersNode[1]) { // SI nodos abiertos
//		if (level == 0) {
//			opengif = "images/flecha_carpeta_abierta.gif";
//			doc.write(opengif + " border=noborder></a>");
//		} else {
//			if (level == 1) {
//				opengif="images/flecha_carpeta_abierta.gif";
//				doc.write(opengif + " border=noborder ></a>");
//			}
//		}
//			
//	} else {  // SI nodos cerrados
//		if (level == 0) {
//			closegif = "images/flecha_carpeta_abierta.gif";
//			doc.write(closegif + " border=noborder></a>");
//		} else {
//			if (level == 1) {
//				closegif="images/flecha_carpeta_cerrada.gif";
//				doc.write(closegif + " border=noborder ></a>");
//			}
//		}
//	}
//	doc.write("<td valign=middle align=left >");	

	doc.write("<a class='mi_estilo_1' " + adapta + "top.openBranch(\'" + foldersNode[3] + "\', \'" + marcaRama + "\')\" >"+foldersNode[3]+"</font><a name='" + marcaRama + "'>");
	marcaRama++;	
}

//============================================================================
//                      FUNCIONES RECURSIVAS
//============================================================================

// Si el padre está cerrado todos sus hijos también han de estar cerrados
//----------------------------------------------------------------------------
function closeFolders(foldersNode){

   var i=0;
   nivelDosAbierto="";
   pinchado="";
	
   if (foldersNode[3] != principal) {
      	for (i=4; i< foldersNode.length; i++) {
		 	oso = one(foldersNode[i]);
			if (oso == "1") closeFolders(foldersNode[i]);
	}
	foldersNode[0] = 0;
	foldersNode[1] = 0;

    } else { 
        generateTree();
    }
}

// Funcion recursiva llamada por RedrawTree
function redrawNode(foldersNode, doc, level, lastNode, leftSide){

	var j=0;
	var i=0, k, l;
	var oso=0;

	doc.write("<tr><TD colspan='2' class='noselec_1' onmouseout='fuera_1(this);' onmouseover='sobre_1(this);' align='left'>");
	doc.write(leftSide);	
	displayIconAndLabel(foldersNode, doc, level);
	doc.write("</tr><tr><td colspan='2'><img border='0' src='images/separador.gif' width='" + ancho_menu + "' height='1'></td></tr>");


	if (foldersNode.length > 4 && foldersNode[0]){ // Si hay subcarpetas y el nodo está abierto

		level = level+1;
		for (i=4; i<foldersNode.length;i++) {
			oso = one(foldersNode[i]);
			if (oso == "0") {
				if (i==foldersNode.length-1) {
					redrawNode(foldersNode[i], doc, level, 1, leftSide);
				} else {
					redrawNode(foldersNode[i], doc, level, 0, leftSide);
				}
			
			} else {

				if (oso == "1") {
					if (i==foldersNode.length-1) {
						redrawNode(foldersNode[i], doc, level, 1, leftSide);
					} else {
						redrawNode(foldersNode[i], doc, level, 0, leftSide);
					}

				} else {
					doc.write(leftSide);
				 	doc.write("<tr>");
					doc.write(foldersNode[i]);
					doc.write("</tr>");
					doc.write("<tr><td colspan='2'><img border='0' src='images/separador.gif' width=" + ancho_menu + " height='1'></td></tr>");
				}
			}
		}
  	}
}


// Aqui se generan las representacion de las hojas del árbol, 
// es decir los enlaces a las páginas web
//------------------------------------------------------------------
function generateDocEntry(icon, docDescription, link){
	
	var retString ="", i, j, max, nivelDos;
	var cadena1 = new Array();
	var cadena2 = new Array();
	i=0;
	j=0;	
	
	while (docDescription.charAt(i) != "/") {
		cadena1[j] = "";
		while ((docDescription.charAt(i) != "%") && (docDescription.charAt(i) != "/")) {
			cadena1[j] = cadena1[j] + docDescription.charAt(i);
			i++;
		}
		if (docDescription.charAt(i) == "/") break;

		j++;
		i++;	
	}
	
	
	i=0;
	j=0;
	while (link.charAt(i) != "/"){
		cadena2[j] = "";
		while ((link.charAt(i) != "%") && (link.charAt(i) != "/")){
			cadena2[j] = cadena2[j] + link.charAt(i);
			i++;
		}
		if (link.charAt(i) == "/") break;
		
		j++;
		i++;		
	}

	
	retString=" ";

	if (abierto) {		
          max=cadena1.length;
	} else {
	  max=1;
	}

	
	for (i=0;i<max;i++) {
                num_de_dibu++;
		if (i > 0) {
			nivelDos = 0;
			retString = retString + "<td class='noselec_2' align='left'><a class='mi_estilo_2' target='contenido' href='" + cadena2[i] + "'><img border='0' name='bde_" + num_de_dibu + "' src='images/flecha_hoja_cerrada.gif' hspace='3'></a></td>";						
		} else {
			nivelDos = 1;	
			retString = retString + "<td class='noselec_2' align='left'><a class='mi_estilo_2' target='contenido' href='" + cadena2[i] + "'><img border='0' name='bde_" + num_de_dibu + "' src='images/flecha_hoja_cerrada.gif' hspace='3'></a></td>";
		}

		if (pinchado == cadena1[i]){
			retString = retString + "<td class='noselec_2' align='left'><a class='mi_estilo_2' target='contenido' href='" + cadena2[i] + "' onmouseout=\"return CambiarImagen('bde_" + num_de_dibu + "','images/flecha_hoja_cerrada.gif')\" onmouseover=\"return CambiarImagen('bde_" + num_de_dibu + "','images/flecha_hoja_abierta.gif')\">" + cadena1[i] + "</a><a name='" + marcaNodo + "'></td>";
		} else {
			retString = retString + "<td class='noselec_2' align='left'><a class='mi_estilo_2' target='contenido' href='" + cadena2[i] + "' onmouseout=\"return CambiarImagen('bde_" + num_de_dibu + "','images/flecha_hoja_cerrada.gif')\" onmouseover=\"return CambiarImagen('bde_" + num_de_dibu + "','images/flecha_hoja_abierta.gif')\">" + cadena1[i] + "</a><a name='" + marcaNodo + "'></td>";
		}
		marcaNodo++;	
	}	
        //alert (retString);
	return  retString;
}




// Función recursiva llamada por openbranch
//---------------------------------------------
function clickOnFolderRec(foldersNode, folderName){
	
	var i=0;
	var cadena;

	if (foldersNode[3] == folderName){
		if (foldersNode[0]) {
		   closeFolders(foldersNode);
		} else {	
		   ramaAbierta = folderName;
		   generateTree();
		   foldersNode[0] = 1;
		   foldersNode[1] = 1;
		}

	} else {

	       for (i=4; i<foldersNode.length; i++) {
			oso = one(foldersNode[i]);
			if (oso == "0") {
  	   	    	  clickOnFolderRec(foldersNode[i], folderName);
			} else {
			    if (oso == "1") 
				clickOnFolderRec(foldersNode[i], folderName);
			}
		}
	}
}

//====================================================================
//                      EVENT HANDLERS
//====================================================================

//Función llamada cuando se hace click sobre una carpeta
function openBranch(branchName, marcaRama) {

	nivelDosAbierto = "";
	pinchado = "";
	marca = marcaRama;
		
	clickOnFolderRec(foldersTree, branchName);
        enlace1();
}


//Se llama una vez se ha cargado la página HTML
function initializeTree(){
  generateTree();
}



//-----------------------------------------------------------------------------
//                            CODIGO  PRINCIPAL
//-----------------------------------------------------------------------------

//Definición de los elementos: elemento[x] = "cadena" (Elemento sin hijos con link directo)
//			       elemento[x] = new Array() (Elemento con hijos)
//			       elemento[x][0] = "cadena" (Elemento principal del que cuelgan los hijos)
//			       elemento[x][1...n] = "cadena" (Cada uno de los hijos)	
// Los nombres de los hijos no deben repetirse, para que se queden iluminados al hacer click							


elemento[0] = new Array();
	elemento[0][0] = "Visita virtual";
		elemento[0][1] = "Inicio de la visita/";
		elemento[0][2] = "Recepción/";
		elemento[0][3] = "Planta Baja/";
		elemento[0][4] = "Primera y Segunda Planta/";
		elemento[0][5] = "Tercera Planta/";
		elemento[0][6] = "Comedor/<br>";
link[0] = new Array()
	link[0][0] = ""
		link[0][1] = "evv_inicio.htm/";
		link[0][2] = "evv_recepcion.htm/";
		link[0][3] = "evv_plantabaja.htm/";
		link[0][4] = "evv_planta1y2.htm/";
		link[0][5] = "evv_planta3.htm/";
		link[0][6] = "evv_comedor.htm/<br>";

			
elemento[1] = new Array();
	elemento[1][0] = "Info y Reservas";
		elemento[1][1] = "Tarifas/";
		elemento[1][2] = "Reservas/<br>";
link[1] = new Array();
	link[1][0] = "";
		link[1][1] = "eir_tarifas.htm/";
		link[1][2] = "eir_reservas.htm/<br>";
		

elemento[2] = new Array();
	elemento[2][0] = "¿Dónde estamos?";
		elemento[2][1] = "Nuestro lugar/";
		elemento[2][2] = "¿Cómo llegar?/<br>";
link[2] = new Array();
	link[2][0] = "";
		link[2][1] = "ede_nlugar.htm/";
		link[2][2] = "ede_cllegar.htm/<br>";

elemento[3] = new Array();
	elemento[3][0] = "Turismo y ocio";
		elemento[3][1] = "Arriondas/";
		elemento[3][2] = "Cangas de Onís/";
		elemento[3][3] = "Ribadesella/";
		elemento[3][4] = "El Fitu/";
		elemento[3][5] = "Covadonga/<br>";
link[3] = new Array();
	link[3][0] = "";
		link[3][1] = "eto_arriondas.htm/";
		link[3][2] = "eto_cangas.htm/";
		link[3][3] = "eto_ribadesella.htm/";
		link[3][4] = "eto_fitu.htm/";
		link[3][5] = "eto_covadonga.htm/<br>";


elemento[4] = new Array();
	elemento[4][0] = "¿Quiénes somos?";
		elemento[4][1] = "Conócenos mejor/";
		elemento[4][2] = "Nuestras instalaciones/";
		elemento[4][3] = "Información de contacto/<br>";
link[4] = new Array();
	link[4][0] = "";
		link[4][1] = "eqs_conocenos.htm/";
		link[4][2] = "eqs_ubicacion.htm/";
		link[4][3] = "eqs_contacto.htm/<br>";

generateTree();
inicio=1;




