﻿//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)
{
  //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 > 2)
        {
          abuelos.item(i).childNodes[2].style.display = 'none';
        
          // Preguntamos sis tiene hijos para quitarle el estilo
          if (abuelos.item(i).childNodes[2].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[2].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);
  
  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)
{
  // PARAMETROS LI, NIVEL
  
  document.cookie='menuEstadoElsan =' + 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);
   //encendemos nuestra familia
  switch (nivel)
  { 
    case '3': // nieto
      // abrimos
      menu.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.childNodes[2].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[2].style.display = 'block';
      // cambiamos el estilo a encendido
      menu.parentNode.parentNode.parentNode.parentNode.className = 'abierto';
    case '1': // Padre
      // abrimos
      menu.parentNode.parentNode.childNodes[2].style.display = 'block';
      // cambiamos el estilo a encendido
      menu.parentNode.parentNode.className = 'abierto';
    case '0': // Abuelo
      // abrimos
      // comprobamos si tenie hijos
      if (menu.childNodes.length > 2)
      {
        menu.childNodes[2].style.display = 'block';
        menu.className = 'abierto';
      }
      else
      {
       menu.className = 'sin seleccionado';
      }
      // cambiamos el estilo a encendido
  }
}