﻿//Objetos
//

//array que tiene la familia
var familia = new Array(4);
var etiquetaCookie = '';
var nivelCookie = '';
var MenuSeleccionado = '';


//funcion que contramenmos y apagamos todo el menu
function contraeMenu(etiqueta) {
    _num = 1;
  //PARAMETROS UL,

  //Cargamos el grupo de LI
  abuelos = document.getElementById(etiqueta).childNodes;
  //recorremos el nodo
  for (i=0 ;i<abuelos.length;i++)
  {
    //es un LI?
    if (abuelos.item(i).tagName == 'LI')
    {
      //preguntamos se esta abierto
      if (abuelos.item(i).className == 'abierto' || abuelos.item(i).className == 'sin seleccionado' )
      {
        //si esta abierto lo cerramos
          if (abuelos.item(i).childNodes.length > _num)
        {
            abuelos.item(i).childNodes[_num].style.display = 'none';
        
          // Preguntamos sis tiene hijos para quitarle el estilo
            if (abuelos.item(i).childNodes[_num].tagName == 'UL')
          {
            // le ponemos el estilo contraido CON hijos
            abuelos.item(i).className = 'con'; 
            //si tiene hijos llamamos recursivamente para recoorerlos
            contraeMenu(abuelos.item(i).childNodes[_num].id);
          }
          else
          {
            //si no tiene hijos,  le ponemos el estilo contraido SIN hijos 
            abuelos.item(i).className = 'sin';
          }
        }
        else
        {
          abuelos.item(i).className = 'sin';
        }
      }
    }
  }
   if (document.getElementById(MenuSeleccionado)) 
   {     
     if (MenuSeleccionado != '')
     {
        document.getElementById(MenuSeleccionado).className = 'sin seleccionado';
     }
   }
}


//funcion que cargamos el array de la familia
function cargaFamilia(etiqueta, nivel)
{
  // PARAMETROS LI, NIVEL
  
  //cargamos el menu por el id
  var menu = document.getElementById(etiqueta);
  
  if (menu != null)
  {
    switch (nivel)
    { 
      case '3': // nieto
        familia[0] = menu.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id;
        familia[1] = menu.parentNode.parentNode.parentNode.parentNode.id;
        familia[2] = menu.parentNode.parentNode.id;
        familia[3] = menu.id;
        break;     
      case '2': // hijo
        familia[0] = menu.parentNode.parentNode.parentNode.parentNode.id;
        familia[1] = menu.parentNode.parentNode.id;
        familia[2] = menu.id;
        familia[3] = '';
       break;
      case '1': // Padre
        familia[0] = menu.parentNode.parentNode.id;
        familia[1] = menu.id;
        familia[2] = '';
        familia[3] = '';
        break;
      case '0': // Abuelo
        familia[0] = menu.id;
        familia[1] = '';
        familia[2] = '';
        familia[3] = '';
        break;
    }
  }
}

//funcion que enciende el menu
function enciendeMenu(etiqueta, nivel, contrae) {
    _num = 1;
  //alert(etiqueta);
  // PARAMETROS LI, NIVEL
  
  document.cookie='menuEstadoIngesan =' + etiqueta + '~' + nivel;
  // Cargamos el array de la familia
  cargaFamilia(etiqueta, nivel);
  // Contaemos todo
  if (contrae)
  {
    contraeMenu('menuOHL');
  }
   //cargamos el menu por el id
  var menu = document.getElementById(etiqueta);
  if (menu != null)
  {
     //encendemos nuestra familia
    switch (nivel)
    { 
      case '3': // nieto
        // abrimos
          menu.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.childNodes[_num].style.display = 'block';
        // cambiamos el estilo a encendido
        menu.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className = 'abierto';
      case '2': // hijo
        // abrimos
          menu.parentNode.parentNode.parentNode.parentNode.childNodes[_num].style.display = 'block';
        // cambiamos el estilo a encendido
        menu.parentNode.parentNode.parentNode.parentNode.className = 'abierto';
      case '1': // Padre
        // abrimos
          menu.parentNode.parentNode.childNodes[_num].style.display = 'block';
        // cambiamos el estilo a encendido
        menu.parentNode.parentNode.className = 'abierto';
      case '0': // Abuelo
        // abrimos
        //alert(menu.childNodes.length);
        // comprobamos si tenie hijos
        if (menu.childNodes.length > _num) {
            menu.childNodes[_num].style.display = 'block';
            menu.className = 'abierto';
        }
        else {
            menu.className = 'sin seleccionado';
        }
        // cambiamos el estilo a encendido
    }
  }
}
