      
  /* ===================================================================================

       DHTML Menu
      ------------       

       Copyright (C) 2005 Iñaki Elizari Reta <ielizari@alumni.unav.es>
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation; either version 2 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

    ================================================================================*/

      var capa_abierta = '';
      var capa_on = false; 

      var colores = new Array();
      colores[0] = 'c5dcea';      // menu_item background inactivo (adc7db)
      colores[1] = 'd1ebf9';      // menu_item background activo
      colores[2] = '073859'       // menu_item color inactivo
      colores[3] = '073859';      // menu_item color activo
      colores[4] = '447dba';      // menu_ancla color inactivo
      colores[5] = 'b22743';      // menu_ancla color activo

      function initMenu()
      {       
        var i;
        var ancla,capa = '';

        // Coloca los menus desplegables c1, c2, c3 y c4 debajo de los menu ancla m1...m4
        for(i=1;i<=4;i++)
        { 
           capa = 'c' + i;
           ancla = 'm' + i;
           xLeft(capa, xOffsetLeft(ancla));
           xTop(capa, (xOffsetTop(ancla)+xHeight(ancla)+1));
        }
      }

      function muestraCapa(capa)
      {
        var item = '';

        // Si ya hay un submenu abierto...
        if (capa_abierta != '')
        {
           xHide(capa_abierta);                  // Esconde la capa abierta
           item = 'm'+capa_abierta.charAt(1);    // Guarda en item el nombre del menu ancla correspondiente
                                                 // a la capa abierta.
           cambiaColor(0,item,colores[4]);       // Aplica el color inactivo a ese menu ancla
        }

        capa_abierta = capa;                     // Guarda el id de la nueva capa abierta
        capa_on = true;                          // Indica que hay una capa abierta
        xShow(capa);                             // Muestra la capa
     
      }

      // Es llamada al salir de un menu desplegable abierto. Deja medio segundo de tiempo antes de cerrar
      // la capa, durante el que puede volverse a pasar el raton para evitar que desaparezca.
      // Este medio segundo sirve para pasar el raton del menu ancla a su menu desplegable correspondiente,
      // ya que de lo contrario el menu desapareceria en cuanto saliesemos del menu ancla.
      function ocultaCapa(capa)
      {        
        capa_on = false;                            // Si no se pone en on antes de medio segundo, se cerrara
        setTimeout("cierra_capa("+capa+")", 500);
      }

     function cierra_capa(capa)
     {       
       var item = '';

       // Si el raton no esta sobre ningun menu desplegable abierto...
       if (capa_on == false)
       {
         item = 'm'+capa_abierta.charAt(1);       // menu ancla correspondiente al menu abierto    
         cambiaColor(0,item,colores[4]);          // Pone su color inactivo
         xHide(capa);                             // Oculta la capa desplegable.
       }
     }

     // Funcion llamada al pasar el raton por un menu desplegable que este abierto. Cancela la ocultacion
     // que es llamada por ocultaCapa() al salir del menu desplegable abierto, poniendo la variable
     // capa_on en true.
     function activa_capa(capa)
     {       
       capa_on = true;
       capa_abierta = capa;       
     }

     // Funcion llamada al poner el raton en un menu ancla sin menu desplegable asociado, cierra las 
     // capas abiertas,y pone el color del menu ancla correspondiente en inactivo automaticamente, sin 
     // esperar el medio segundo.
     function cierraTodo()
     {
       var item = '';

       if (capa_abierta != '')
       {
         item = 'm'+capa_abierta.charAt(1);       // menu ancla correspondiente al menu abierto    
         cambiaColor(0,item,colores[4]);          // Pone su color inactivo
         xHide(capa_abierta);                     // Oculta la capa desplegable.         
       }
     }

     function cambiaColor(tipo,item,color)
     {          
       if(tipo==0)
         xColor(item,color);
       else
         xBackground(item,color);
     }

     window.onload=function() { initMenu();}
     window.onresize=function() { initMenu(); }
