/* (c) 2005, Monitor Informatica Software, S.L. Todos los derechos reservados */

var Opc = -1;
var tOut = -1;
var tOpcP = -1;
var tOpcS = -1;

var iFijo = -1;
var Estado = new Array();
var tMostrar = new Array();
var tOcultar = new Array();
var tAnim = -1;
var cAnim = 0;

var TM = 200; // timeout para mostrar
var TO = 3000; // timeout para ocultar
var TA = 50;  // timeout animacion 
var TOUT = 5;  // timeout auxiliar

var AltoAcelM = 30;
var VelM = 15;

var AltoAcelO = 10;
var VelO = 8;

// colores: 0:0 - 3:51 - 6:102 - 9:153 - c:204 - f:255
var ColorFondoP_Normal = new Array(255, 255, 153);
var ColorFondoP_Over = new Array(204, 255, 255);
var ColorFondoP_Sub = new Array(153, 204, 255);
var ColorBordeSub_Oculto = new Array(255, 255, 102);
var ColorFondoSub_Oculto = new Array(255, 255, 102);
var ColorBordeSub_Visible = new Array(0, 0, 153);
var ColorFondoSub_Visible = new Array(204, 255, 255);

var DegOpcBkM = new Array();
var DegOpcBkO = new Array();
var DegTabBr = new Array();
var DegTabBk = new Array();

//function CrearMenu(MenuP, MenuS, MenuP_Enlaces, MenuS_Enlaces)
//{
//  var i, p;
//    
//  // menu principal
//  document.write("<table id='TMenu' border='0' cellpadding='0' cellspacing='0'>");
//  for (i=0; i<MenuP.length; i++)
//  {
//    // opcion menu P
//    document.write("<tr id='" + OpcionPID(i) + "' class='Menu_OpcionP_Normal' onmouseover='MouseOverP(" + i + ");' onmouseout='MouseOutP(" + i + ");' onclick='location.href=\"" + MenuP_Enlaces[i] + "\";'>");

//    document.write("<td id='" + OpcionPAID(i) + "' class='Menu_OpcionPA_Normal'><a id='" + TextoP(i) + "' href='" + MenuP_Enlaces[i]+ "' class='Menu_EnlaceP' onmouseover='return true;' onmouseout='return true;'>" + MenuP[i] + "</a></td>");
//    if (MenuS[i].length)
//      document.write("<td id='" + OpcionPBID(i) + "' class='Menu_OpcionPB_Normal'><img src='/images/flecha_submenu.gif' width='10' height='10' alt='' /></td>");
//    else
//      document.write("<td id='" + OpcionPBID(i) + "' class='Menu_OpcionPB_Normal'><img src='/images/spacer.gif' width='10' height='10' alt='' /></td>");

//    document.write("</tr>");

//    // submenu
//    if (MenuS[i].length)
//    {
//      document.write("<tr><td colspan='2'>");
//      document.write("<div id='" + CapaOpcionID(i) + "' style='height: 1px; display: none; overflow: hidden'>");
//      document.write("<table id='" + TablaOpcionID(i) + "' class='Menu_TablaS_Oculta' width='100%' cellpadding='0' cellspacing='0'>");
//            
//      for (j=0; j<MenuS[i].length; j++)
//        document.write("<tr><td id='" + OpcionSID(i, j) + "' class='Menu_OpcionS_Normal' onmouseover='MouseOverS(" + i + ", " + j + ")' onmouseout='MouseOutS(" + i + ", " + j + ")' onclick='location.href=\"" + MenuS_Enlaces[i][j] + "\";'><a id='" + TextoS(i, j) + "' href='" + MenuS_Enlaces[i][j] + "' class='Menu_EnlaceS' onmouseover='return true;' onmouseout='return true;'>" + MenuS[i][j] + "</a></td></tr>");
//      
//      document.write("</table>");
//      document.write("</div>");
//      document.write("</td></tr>");
//    }

//    if ( (i + 1) < MenuP.length)
//      document.write("<tr><td style='font-size: 5%'>&nbsp;</td></tr>");

//    // variables
//    Estado[i] = 0;
//    tMostrar[i] = -1;
//    tOcultar[i] = -1;
//  }
//  document.write("</table>");

//  // calculamos colores para la animcacion del menu
//  for(i=0; i<=10; i++)
//  {
//    p = i/9;
//    DegOpcBkM[i] = "rgb(" + parseInt(ColorFondoP_Over[0] + p * (ColorFondoP_Sub[0] - ColorFondoP_Over[0])) + ", " + parseInt(ColorFondoP_Over[1] + p * (ColorFondoP_Sub[1] - ColorFondoP_Over[1])) + ", " + parseInt(ColorFondoP_Over[2] + p * (ColorFondoP_Sub[2] - ColorFondoP_Over[2])) + ")";
//    DegOpcBkO[i] = "rgb(" + parseInt(ColorFondoP_Normal[0] + p * (ColorFondoP_Sub[0] - ColorFondoP_Normal[0])) + ", " + parseInt(ColorFondoP_Normal[1] + p * (ColorFondoP_Sub[1] - ColorFondoP_Normal[1])) + ", " + parseInt(ColorFondoP_Normal[2] + p * (ColorFondoP_Sub[2] - ColorFondoP_Normal[2])) + ")";
//    DegTabBr[i] = "rgb(" + parseInt(ColorBordeSub_Oculto[0] + p * (ColorBordeSub_Visible[0] - ColorBordeSub_Oculto[0])) + ", " + parseInt(ColorBordeSub_Oculto[1] + p * (ColorBordeSub_Visible[1] - ColorBordeSub_Oculto[1])) + ", " + parseInt(ColorBordeSub_Oculto[2] + p * (ColorBordeSub_Visible[2] - ColorBordeSub_Oculto[2])) + ")";
//    DegTabBk[i] = "rgb(" + parseInt(ColorFondoSub_Oculto[0] + p * (ColorFondoSub_Visible[0] - ColorFondoSub_Oculto[0])) + ", " + parseInt(ColorFondoSub_Oculto[1] + p * (ColorFondoSub_Visible[1] - ColorFondoSub_Oculto[1])) + ", " + parseInt(ColorFondoSub_Oculto[2] + p * (ColorFondoSub_Visible[2] - ColorFondoSub_Oculto[2])) + ")";
//  }
//}

// prepara el Menu Lateral para comenzar a usarlo (inicialmente viene todo extendido por si no hay JavaScript)
function PrepararMenu() {
    var Objeto;
    var i, p;

    for (i = 0; i < 3; i++) {
        // ajustamos propiedades
        CogerElementoMenu(OpcionPID(i)).className = "Menu_OpcionP_Normal"
        CogerElementoMenu(OpcionPAID(i)).className = "Menu_OpcionPA_Normal"
        CogerElementoMenu(OpcionPBID(i)).className = "Menu_OpcionPB_Normal"
        CogerElementoMenu(CapaOpcionID(i)).style.display = "none"
        
        // variables
        Estado[i] = 0;
        tMostrar[i] = -1;
        tOcultar[i] = -1;
    }

    // calculamos colores para la animcacion del menu
    for (i = 0; i <= 10; i++) {
        p = i / 9;
        DegOpcBkM[i] = "rgb(" + parseInt(ColorFondoP_Over[0] + p * (ColorFondoP_Sub[0] - ColorFondoP_Over[0])) + ", " + parseInt(ColorFondoP_Over[1] + p * (ColorFondoP_Sub[1] - ColorFondoP_Over[1])) + ", " + parseInt(ColorFondoP_Over[2] + p * (ColorFondoP_Sub[2] - ColorFondoP_Over[2])) + ")";
        DegOpcBkO[i] = "rgb(" + parseInt(ColorFondoP_Normal[0] + p * (ColorFondoP_Sub[0] - ColorFondoP_Normal[0])) + ", " + parseInt(ColorFondoP_Normal[1] + p * (ColorFondoP_Sub[1] - ColorFondoP_Normal[1])) + ", " + parseInt(ColorFondoP_Normal[2] + p * (ColorFondoP_Sub[2] - ColorFondoP_Normal[2])) + ")";
        DegTabBr[i] = "rgb(" + parseInt(ColorBordeSub_Oculto[0] + p * (ColorBordeSub_Visible[0] - ColorBordeSub_Oculto[0])) + ", " + parseInt(ColorBordeSub_Oculto[1] + p * (ColorBordeSub_Visible[1] - ColorBordeSub_Oculto[1])) + ", " + parseInt(ColorBordeSub_Oculto[2] + p * (ColorBordeSub_Visible[2] - ColorBordeSub_Oculto[2])) + ")";
        DegTabBk[i] = "rgb(" + parseInt(ColorFondoSub_Oculto[0] + p * (ColorFondoSub_Visible[0] - ColorFondoSub_Oculto[0])) + ", " + parseInt(ColorFondoSub_Oculto[1] + p * (ColorFondoSub_Visible[1] - ColorFondoSub_Oculto[1])) + ", " + parseInt(ColorFondoSub_Oculto[2] + p * (ColorFondoSub_Visible[2] - ColorFondoSub_Oculto[2])) + ")";
    }
}

function MostrarMenuFijo(Index)
{  
  var Tabla, Capa, OpcionP, Elemento, AltoTotal;
    
  if (Index != -1)
  {
    // si hay temporizador para mostrar, cancelamos
    if (tMostrar[Index] != -1)
    {
      clearTimeout(tMostrar[Index]);
      tMostrar[Index] = -1;
    }

    OpcionP = CogerElementoMenu( OpcionPID(Index) );
    Capa = CogerElementoMenu( CapaOpcionID(Index) );
    Tabla = CogerElementoMenu( TablaOpcionID(Index) );

    OpcionP.className = "Menu_OpcionP_Over";
    OpcionP.style.backgroundColor = "rgb(" + ColorFondoP_Sub[0] + ", " + ColorFondoP_Sub[1] + ", " + ColorFondoP_Sub[2] + ")";
    Elemento = CogerElementoMenu( OpcionPAID(Index) );
    Elemento.className = "Menu_OpcionPA_Over";
    Elemento = CogerElementoMenu( OpcionPBID(Index) );
    Elemento.className = "Menu_OpcionPB_Over";

    Capa.style.display = '';
    Tabla.style.backgroundColor = "rgb(" + ColorFondoSub_Visible[0] + ", " + ColorFondoSub_Visible[1] + ", " + ColorFondoSub_Visible[2] + ")";
    Tabla.style.borderColor = "rgb(" + ColorBordeSub_Visible[0] + ", " + ColorBordeSub_Visible[1] + ", " + ColorBordeSub_Visible[2] + ")";
    AltoTotal = Tabla.offsetHeight + 2;
    Capa.style.height = AltoTotal + "px";
    Tabla.className = "Menu_TablaS_Visible";

    // trick para solucionar problema en Mozilla, que no actualiza el alto del DIV
    //CogerElementoMenu("DMenu").style.height = "100px";
    //CogerElementoMenu("DMenu").style.height = "";
  }

  iFijo = Index;
}

function MostrarMenuFijoAnimado(Index)
{  
  var Elemento;
    
  if (Index != -1)
  {
    Elemento = CogerElementoMenu( OpcionPID(Index) );
    Elemento.className = "Menu_OpcionP_Over";
    Elemento.style.backgroundColor = "rgb(" + ColorFondoP_Over[0] + ", " + ColorFondoP_Over[1] + ", " + ColorFondoP_Over[2] + ")";
    Elemento = CogerElementoMenu( OpcionPAID(Index) );
    Elemento.className = "Menu_OpcionPA_Over";
    Elemento = CogerElementoMenu( OpcionPBID(Index) );
    Elemento.className = "Menu_OpcionPB_Over";

    MostrarSubmenu(Index);
  }

  iFijo = Index;
}

function MouseOverP(Index)
{
  var Elemento;

  // si hay un temporizador del evento mouseout,
  // cancelamos temporizador y este evento (se cancelan por pares)
  if (tOut != -1)
  {
    clearTimeout(tOut);
    tOut = -1;

    if (tOpcS == -1)
    {
      if (Index == tOpcP)
      {
        // estamos en la misma Opcion P, cancelamos eventos (Out + Over)
        tOpcP = -1;
        return;
      } else
        MouseOutP2(tOpcP);
    } else
    {
      // estabamos en una Opcion S, permitimos evento out 
      MouseOutS2(tOpcP, tOpcS);
    }
  }

  // si hay un mouseover sin que hubiera el correspondiente mouseout, lo generamos
  if (Opc != -1)
    MouseOutP2(Opc);

  // cambiamos propiedades de la opcion si no esta mostrando menu
  Opc = Index;
  if ( (Index != iFijo) && (Estado[Index] == 0) )
  {
    Elemento = CogerElementoMenu( OpcionPID(Index) );
    Elemento.className = "Menu_OpcionP_Over";
    Elemento.style.backgroundColor = "rgb(" + ColorFondoP_Over[0] + ", " + ColorFondoP_Over[1] + ", " + ColorFondoP_Over[2] + ")";
    Elemento = CogerElementoMenu( OpcionPAID(Index) );
    Elemento.className = "Menu_OpcionPA_Over";
    Elemento = CogerElementoMenu( OpcionPBID(Index) );
    Elemento.className = "Menu_OpcionPB_Over";
  }

  Elemento = CogerElementoMenu ( TextoP(Index) );
  window.status = "Ir a " + QuitarEntidadesHTML(Elemento.innerHTML);

  // si no tiene submenu, salimos
  if (CogerElementoMenu( CapaOpcionID(Index) ) == null)
    return;

  // si es fijo, tb salimos
  if (Index == iFijo)
    return;
    
  // segun el estado actual, vemos que hacer
  switch(Estado[Index])
  {
    case 0: // oculto
      // ponemos temp para mostrar
      tMostrar[Index] = setTimeout("MostrarSubmenu(" + Index + ");", TM);
      break
      
    case 1: // mostrando
      // quitamos temp de ocultar, si lo hubiera
      if (tOcultar[Index] != -1)
      {
        clearTimeout(tOcultar[Index]);
        tOcultar[Index] = -1;
      }
      break

    case 2:  // visible
      // quitamos temp de ocultar, si lo hubiera
      if (tOcultar[Index] != -1)
      {
        clearTimeout(tOcultar[Index]);
        tOcultar[Index] = -1;
      }
      break

    case 3:  // ocultando
      // pasamos a mostrando directamente
      Estado[Index] = 1;
      break;      
  }
}


function MouseOutP(Index)
{
  if (tOut != -1)
  {
    clearTimeout(tOut);
    tOut = -1;
  }
  
  // fijamos temporizador mouseout (por si se cancela con un mouseover)
  tOpcP = Index;
  tOpcS = -1;
  tOut = setTimeout("MouseOutP2(" + Index + ");", TOUT);
}

function MouseOutP2(Index)
{
  var Elemento;
  
  tOut = -1;
  tOpcP = -1;
  
  // cambiamos propiedades si el elemento no muestra menu
  Opc = -1;
  if ( (Index != iFijo) && (Estado[Index] == 0) )
  {
    Elemento = CogerElementoMenu( OpcionPID(Index) );
    Elemento.className = "Menu_OpcionP_Normal";
    Elemento.style.backgroundColor = "rgb(" + ColorFondoP_Normal[0] + ", " + ColorFondoP_Normal[1] + ", " + ColorFondoP_Normal[2] + ")";
    Elemento = CogerElementoMenu( OpcionPAID(Index) );
    Elemento.className = "Menu_OpcionPA_Normal";
    Elemento = CogerElementoMenu( OpcionPBID(Index) );
    Elemento.className = "Menu_OpcionPB_Normal";
  }
  window.status = "";
    
  // si no tiene submenu, salimos
  if (CogerElementoMenu( CapaOpcionID(Index) ) == null)
    return;

  // si es fijo, tb salimos
  if (Index == iFijo)
    return;
    
  // segun el estado actual, vemos que hacer
  switch(Estado[Index])
  {
    case 0: // oculto
      // cancelamos temp de mostrar, si lo hubiera
      if (tMostrar[Index] != -1)
      {
        clearTimeout(tMostrar[Index]);
        tMostrar[Index] = -1;
      }
      break

    case 1: // mostrando
      // ponemos temp de ocultar
      tOcultar[Index] = setTimeout("OcultarSubmenu(" + Index + ");", TO);
      break

    case 2: // visible
      // ponemos temp de ocultar
      tOcultar[Index] = setTimeout("OcultarSubmenu(" + Index + ");", TO);
      break
  }
}

function MouseOverS(IndexP, IndexS)
{
  var Elemento;

  // vemos si hay que cancelar evento out anterior
  if (tOut != -1)
  {
    clearTimeout(tOut);
    tOut = -1;

    if (tOpcS != -1)
    {
      if ( (IndexP == tOpcP) && (IndexS == tOpcS) )
      {
        // estamos en la misma Opcion P y  Opcion S, cancelamos eventos (Out + Over)
        tOpcP = -1;
        tOpcS = -1;
        return;
      } else
        MouseOutS2(tOpcP, tOpcS);
    } else
    {
      // estabamos en una Opcion P, permitimos evento out 
      MouseOutP2(tOpcP);
    }
  }

  // cambiamos propiedades
  Elemento = CogerElementoMenu( OpcionSID(IndexP, IndexS) );
  Elemento.className = "Menu_OpcionS_Over";

  Elemento = CogerElementoMenu ( TextoS(IndexP, IndexS) );
  window.status = "Ir a " + QuitarEntidadesHTML(Elemento.innerHTML);

  // si es fijo, no hacemos nada mas
  if (IndexP == iFijo)
    return;

  // vemos que hacer
  switch(Estado[IndexP])
  {
    case 0:  // oculto
      break

    case 1:  // mostrando
      // quitamos temp de ocultar, si lo hubiera
      if (tOcultar[IndexP] != -1)
      {
        clearTimeout(tOcultar[IndexP]);
        tOcultar[IndexP] = -1;
      }
      break

    case 2: // visible
      // quitamos temp de ocultar, si lo hubiera
      if (tOcultar[IndexP] != -1)
      {
        clearTimeout(tOcultar[IndexP]);
        tOcultar[IndexP] = -1;
      }
      break

    case 3: // ocultando
      // pasamos a mostrando directamente
      Estado[IndexP] = 1;
      break;      
  }      
}

function MouseOutS(IndexP, IndexS)
{
  if (tOut != -1)
  {
    clearTimeout(tOut);
    tOut = -1;
  }
  
  // fijamos temporizador mouseout (por si se cancela con un mouseover)
  tOpcP = IndexP;
  tOpcS = IndexS;
  tOut = setTimeout("MouseOutS2(" + IndexP + ", " + IndexS + ");", TOUT);
}

function MouseOutS2(IndexP, IndexS)
{
  var Elemento;
  
  tOut = -1;
  tOpcS = -1;
  tOpcS = -1;
  
  // cambiamos propiedades
  Elemento = CogerElementoMenu( OpcionSID(IndexP, IndexS) );
  Elemento.className = "Menu_OpcionS_Normal";
  window.status = "";

  // si es fijo, no hacemos nada mas
  if (IndexP == iFijo)
   return;

  // segun el estado actual, vemos que hacer
  switch(Estado[IndexP])
  {
    case 0: // oculto
      break

    case 1: // mostrando
      // ponemos temp de ocultar
      tOcultar[IndexP] = setTimeout("OcultarSubmenu(" + IndexP + ");", TO);
      break

    case 2: // visible
      // ponemos temp de ocultar
      tOcultar[IndexP] = setTimeout("OcultarSubmenu(" + IndexP + ");", TO);
      break
  }
}

function QuitarEntidadesHTML(origen)
{
   var destino;
    
   destino = origen.replace(/&aacute;/, "á");
   destino = destino.replace(/&eacute;/, "é");
   destino = destino.replace(/&iacute;/, "í");
   destino = destino.replace(/&oacute;/, "ó");
   destino = destino.replace(/&uacute;/, "ú");
    
   return destino;
}

function MostrarSubmenu(Index)
{
  var Capa;
  
  // borramos id del temp
  tMostrar[Index] = -1;
  
  // parametros iniciales
  Capa = CogerElementoMenu( CapaOpcionID(Index) );
  Capa.style.height = "2px";
  Capa.style.display = '';

  // iniciamos animacion 
  Estado[Index] = 1;
  UsarTempAnimacion();
}

function OcultarSubmenu(Index)
{
  var Capa;

  // borramos id del temp
  tOcultar[Index] = -1;
  
  // iniciamos animacion
  Capa = CogerElementoMenu( CapaOpcionID(Index) );
  Capa.style.height = (parseInt(Capa.style.height) - 1) + "px";  
  Estado[Index] = 3;
  UsarTempAnimacion();
}

function UsarTempAnimacion()
{
  cAnim = cAnim + 1;
  
  if (cAnim == 1)
    tAnim = setInterval("AnimacionSubmenu();", TA);
}

function LiberarTempAnimacion()
{
  if (cAnim > 0)
  {
    cAnim = cAnim - 1;
    
    if (cAnim == 0)
    {
      clearInterval(tAnim);
      tAnim = -1;
    }
  }
}

function AnimacionSubmenu()
{
  var OpcionP;
  var Capa;
  var Tabla;
  var Alto;
  var AltoTotal;
  
  var v;
  var i;
  var p;

  for (i=0; i<Estado.length; i++)
  {
    if (Estado[i] == 0)
      continue;
      
    OpcionP = CogerElementoMenu( OpcionPID(i) );
    Capa = CogerElementoMenu( CapaOpcionID(i) );
    Tabla = CogerElementoMenu( TablaOpcionID(i) );

    Alto = parseInt(Capa.style.height);
    AltoTotal = Tabla.offsetHeight + 2;

    if (Estado[i] == 1)
    {
      // mostrando submenu i

      // calculamos alto
      if (Alto < AltoAcelM)
      {
        // acelerando
        v = 1 << Alto;
        if (v > VelM)
          v = VelM;
        Alto = Alto + v;

      } else if ( (AltoTotal - Alto) < AltoAcelM )
      {
        // frenando
        v = 1 << (AltoTotal - Alto);
        if (v > VelM)
          v= VelM;
        Alto = Alto + v;
      
      } else
        // normal
        Alto = Alto + VelM;

      if (Alto >= AltoTotal)
      {
        Capa.style.height = AltoTotal + "px";
        Tabla.className = "Menu_TablaS_Visible";
        
        // fin de la animacion
        LiberarTempAnimacion();
        Estado[i] = 2;
      } else
      {
        Capa.style.height = Alto + "px";

        // color
        p = parseInt((Alto / AltoTotal) * 10);
        OpcionP.style.backgroundColor = DegOpcBkM[p];
        Tabla.style.backgroundColor = DegTabBk[p];
        Tabla.style.borderColor = DegTabBr[p];

        //OpcionP.style.backgroundColor = "rgb(" + parseInt(ColorFondoP_Over[0] + p * (ColorFondoP_Sub[0] - ColorFondoP_Over[0])) + ", " + parseInt(ColorFondoP_Over[1] + p * (ColorFondoP_Sub[1] - ColorFondoP_Over[1])) + ", " + parseInt(ColorFondoP_Over[2] + p * (ColorFondoP_Sub[2] - ColorFondoP_Over[2])) + ")";
        //Tabla.style.backgroundColor = "rgb(" + parseInt(ColorFondoSub_Oculto[0] + p * (ColorFondoSub_Visible[0] - ColorFondoSub_Oculto[0])) + ", " + parseInt(ColorFondoSub_Oculto[1] + p * (ColorFondoSub_Visible[1] - ColorFondoSub_Oculto[1])) + ", " + parseInt(ColorFondoSub_Oculto[2] + p * (ColorFondoSub_Visible[2] - ColorFondoSub_Oculto[2])) + ")";
        //Tabla.style.borderColor = "rgb(" + parseInt(ColorBordeSub_Oculto[0] + p * (ColorBordeSub_Visible[0] - ColorBordeSub_Oculto[0])) + ", " + parseInt(ColorBordeSub_Oculto[1] + p * (ColorBordeSub_Visible[1] - ColorBordeSub_Oculto[1])) + ", " + parseInt(ColorBordeSub_Oculto[2] + p * (ColorBordeSub_Visible[2] - ColorBordeSub_Oculto[2])) + ")";
      }
    } else if (Estado[i] == 3)
    {
      // ocultando submenu i

      // calculamos alto
      if (Alto < AltoAcelO)
      {
        // frenando
        v = 1 << Alto;
        if (v > VelO)
          v = VelO;
        Alto = Alto - v;

      } else if ( (AltoTotal - Alto) < AltoAcelO )
      {
        // acelerando
        v = 1 << (AltoTotal - Alto);
        if (v > VelO)
          v = VelO;
        Alto = Alto - v;
      
      } else
        // normal
        Alto = Alto - VelO;


      if (Alto < 1)
        Alto = 1;
        
      Capa.style.height = Alto + "px";
    
      if (Alto == 1)
      {
        Capa.style.height = "1px";
        Capa.style.display = 'none';
        Tabla.className = "Menu_TablaS_Oculta";
        OpcionP.className = "Menu_OpcionP_Normal";
        OpcionP.style.backgroundColor = "rgb(" + ColorFondoP_Normal[0] + ", " + ColorFondoP_Normal[1] + ", " + ColorFondoP_Normal[2] + ")";

        OpcionP = CogerElementoMenu( OpcionPAID(i) );
        OpcionP.className = "Menu_OpcionPA_Normal";
        OpcionP = CogerElementoMenu( OpcionPBID(i) );
        OpcionP.className = "Menu_OpcionPB_Normal";

        // fin de la animacion
        LiberarTempAnimacion();
        Estado[i] = 0;
      } else
      {
        // color
        p = parseInt((Alto / AltoTotal) * 10);
        OpcionP.style.backgroundColor = DegOpcBkO[p];
        Tabla.style.borderColor = DegTabBr[p];
        Tabla.style.backgroundColor = DegTabBk[p];

        //p = Alto / AltoTotal;
        //OpcionP.style.backgroundColor = "rgb(" + parseInt(ColorFondoP_Normal[0] + p * (ColorFondoP_Sub[0] - ColorFondoP_Normal[0])) + ", " + parseInt(ColorFondoP_Normal[1] + p * (ColorFondoP_Sub[1] - ColorFondoP_Normal[1])) + ", " + parseInt(ColorFondoP_Normal[2] + p * (ColorFondoP_Sub[2] - ColorFondoP_Normal[2])) + ")";
        //Tabla.style.backgroundColor = "rgb(" + parseInt(ColorFondoSub_Oculto[0] + p * (ColorFondoSub_Visible[0] - ColorFondoSub_Oculto[0])) + ", " + parseInt(ColorFondoSub_Oculto[1] + p * (ColorFondoSub_Visible[1] - ColorFondoSub_Oculto[1])) + ", " + parseInt(ColorFondoSub_Oculto[2] + p * (ColorFondoSub_Visible[2] - ColorFondoSub_Oculto[2])) + ")";
        //Tabla.style.borderColor = "rgb(" + parseInt(ColorBordeSub_Oculto[0] + p * (ColorBordeSub_Visible[0] - ColorBordeSub_Oculto[0])) + ", " + parseInt(ColorBordeSub_Oculto[1] + p * (ColorBordeSub_Visible[1] - ColorBordeSub_Oculto[1])) + ", " + parseInt(ColorBordeSub_Oculto[2] + p * (ColorBordeSub_Visible[2] - ColorBordeSub_Oculto[2])) + ")";
      }
    }
  }
}

/* ids de los distintos componentes */
function OpcionPID(Index)
{
  return "OP_" + Index;
}

function OpcionPAID(Index)
{
  return "OPA_" + Index;
}

function OpcionPBID(Index)
{
  return "OPB_" + Index;
}

function OpcionSID(IndexP, IndexS)
{
  return "OS_" + IndexP + "_" + IndexS;
}

function CapaOpcionID(Index)
{
  return "COP_" + Index;
}

function TablaOpcionID(Index)
{
  return "TOP_" + Index;
}

function TextoP(Index)
{
  return "AP_" + Index;
}

function TextoS(IndexP, IndexS)
{
  return "AS_" + IndexP + "_" + IndexS;
}

function CogerElementoMenu(ID)
{
  var elmto;
  
//  if (document.layers)  // netscape 4
//    elmto = eval('document.' + ID);

//  else if (document.all && !document.getElementById)  // ie4
//    elmto = eval('document.all.' + ID);

//  else if (document.getElementById) // w3c (ie5+ n6+)
//    elmto = document.getElementById(ID);

  // sabemos el ID, necesitamos el ClientID real generado por ASP.NET
  // buscamos en la tabla de correspondencias ID <-> ClientID
  for (i = 0; i < g_ClientIDs[0].length; i++)
  {
      if (g_ClientIDs[0][i] == ID)
          return document.getElementById(g_ClientIDs[1][i]);
  }
  return null;
}

