//IMPORTANTE: AL FINAL DE ESTE SCRIPT SE REALIZA LA ESCRITURA DEL MEN&Úacute;

//INICIALIZACIONES
var nivel_1_desplegado = -1;
var bottomVal;
var nivel_3_activo = "";
var ancho_menu = ancho_nivel_1;
var vengo_celda_principal_nivel_2 = false;
var distancia_final = 0;
var top_inicio = top_inicio_menu + alto_imagen_scroll_down_general;
var intervalo_scroll_activo;
var id_nivel_3_1 = 0;
var id_nivel_3_2 = 0;
var pliegue_o_despliegue_en_curso = false;  //Indica si se estaacute; en medio de un despliegue, para deshabilitar posibles clics del usuario entre movimientos

//DEFINIMOS LOS OBJETOS IMAGEN PARA LAS FLECHAS DE PLEGADO Y DESPLEGADO
var flecha_plegada = new Image();
flecha_plegada.src = imagen_desplegable_nivel_1_plegada;
var flecha_desplegada = new Image(); 
flecha_desplegada.src = imagen_desplegable_nivel_1_desplegada;

//CREACI&Oacute;N DE ESTILOS A PARTIR DE LAS DEFINICIONES
if (negrita_nivel_1)
{
	var negrita_1 = "bold";
}
else
{
	var negrita_1 = "normal";
}

if (negrita_nivel_3_sin_link)
{
	var negrita_3_sin_link = "bold";
}
else
{
	var negrita_3_sin_link = "normal";
}

var estilos_dinamicos = "<STYLE type='text/css'>";
estilos_dinamicos = estilos_dinamicos + ".celda_nivel_1{ font-family:" + tipo_letra_nivel_1 + ";font-size:" + alto_letra_nivel_1 + "px;font-weight:" + negrita_1 + ";color:" + color_letra_nivel_1 + ";background-color:" + color_fondo_nivel_1 + ";text-decoration:none;cursor:hand; } ";
estilos_dinamicos = estilos_dinamicos + ".celda_nivel_2{ font-family:" + tipo_letra_nivel_2 + ";font-size:" + alto_letra_nivel_2 + "px;color:" + color_letra_nivel_2 + ";background-color:" + color_fondo_nivel_2 + ";text-decoration:none;cursor:hand; } ";
estilos_dinamicos = estilos_dinamicos + ".celda_nivel_3{ font-family:" + tipo_letra_nivel_3 + ";font-size:" + alto_letra_nivel_3 + "px;color:" + color_letra_nivel_3 + ";background-color:" + color_fondo_nivel_3 + ";text-decoration:none;cursor:hand; } ";
estilos_dinamicos = estilos_dinamicos + ".celda_nivel_3_sin_link{ font-family:" + tipo_letra_nivel_3_sin_link + ";font-size:" + alto_letra_nivel_3_sin_link + "px;font-weight:" + negrita_3_sin_link + ";color:" + color_letra_nivel_3_sin_link + ";background-color:" + color_fondo_nivel_3_sin_link + ";text-decoration:none;cursor:default; } ";
estilos_dinamicos = estilos_dinamicos + "</STYLE>";
document.write(estilos_dinamicos);


/**********************************************************************************/
// FUNCI&Oacute;N: ESCRIBIR_MENU - Funci&oacute;n encargada de escribir el men&uacute; tras la traducci&oacute;n
// RETURN: void
/**********************************************************************************/
function escribir_menu()
{
	//Lo pintamos si hay algo que pintar
	if (a_nivel_1_nombres.length>0)
	{
		//Se inicializa la paacute;gina para poder colocar bien el men&uacute; en funci&oacute;n de si hay o no margen
		document.write("<div name='inicializacion' style='width:0px;height:0px;visibility:hidden;position:absolute;'><font style='font-size:0pt;'>Inicializacion</font></div>");
		calcular_distancia_izquierda();
		calcular_alto_visible();
		limite_inferior = top_inicio + alto_visible_menu;
		
		/***** NIVEL 1 *****/
		
		var str_menu = "";
		var z_index = 0;
		var z_index_nivel_3 = elementos_menu_nivel_1 + elementos_menu_nivel_2 + 1;
		var max_i_niv2 = 0;
		for (i_niv1=0;i_niv1<a_nivel_1_nombres.length;i_niv1++)
		{
			posicion_top = top_inicio + (i_niv1 * alto_total_nivel_1);
			z_index = z_index + 1;
			str_menu = str_menu + "<div name='div_1_" + i_niv1 + "' id='div_1_" + i_niv1 + "' style='z-index:" + z_index + ";top:" + posicion_top + ";left:" + distancia_final + "px;width:" + ancho_nivel_1 + "px;height:" + alto_total_nivel_1 + "px;clip:rect(0px " + ancho_nivel_1 + "px " + alto_total_nivel_1 + "px 0px);position:absolute;visibility:visible;'>";
			str_menu = str_menu + "<table width='" + ancho_nivel_1 + "' cellpadding='0' cellspacing='0' border='0'>";
			str_menu = str_menu + "<tr height='" + alto_parcial_1_nivel_1 + "'>";
			
			//Celda de nivel 1 con la imagen plegable-desplegable
			str_menu = str_menu + "<td name='td_1_" + i_niv1 + "_imagen' id='td_1_" + i_niv1 + "_imagen' width='" + ancho_imagen_desplegable_nivel_1 + "' height='" + alto_parcial_1_nivel_1 + "' class='celda_nivel_1' ";
			str_menu = str_menu + "onMouseOver=encender_apagar_celda(this,color_fondo_nivel_1_hover);encender_apagar_celda('td_1_" + i_niv1 + "',color_fondo_nivel_1_hover); onMouseOut=encender_apagar_celda(this,color_fondo_nivel_1);encender_apagar_celda('td_1_" + i_niv1 + "',color_fondo_nivel_1); ";
			if (a_nivel_1_links_cont[i_niv1] != "")
			{
				str_menu = str_menu + "onClick=window.location.href='" + a_nivel_1_links_cont[i_niv1] + "';>";
			}
			else
			{
				str_menu = str_menu + "onClick=javascript:activar_clip(" + i_niv1 + ");mostrar_ocultar_scrolls(-1,-1);>";
			}
			if (a_nivel_1_hijos[i_niv1])
			{
				str_menu = str_menu + "<img name='flecha_" + i_niv1 + "' id='flecha_" + i_niv1 + "' src='" + imagen_desplegable_nivel_1_plegada + "' align='absmiddle' width='" + ancho_imagen_desplegable_nivel_1 + "' height='" + alto_imagen_desplegable_nivel_1 + "' border='0' hspace='0' vspace='0' /><br />";
			}
			else
			{
				str_menu = str_menu + "<img src='" + imagen_no_desplegable_nivel_1 + "' align='absmiddle' width='" + ancho_imagen_no_desplegable_nivel_1 + "' height='" + alto_imagen_no_desplegable_nivel_1 + "' border='0' hspace='0' vspace='0' /><br />";
			}
			str_menu = str_menu + "</td>";
			
			//Celda de nivel 1 con el elemento de men&uacute;
			str_menu = str_menu + "<td name='td_1_" + i_niv1 + "' id='td_1_" + i_niv1 + "' width='" + (ancho_nivel_1 - ancho_imagen_desplegable_nivel_1) + "' height='" + alto_parcial_1_nivel_1 + "' class='celda_nivel_1' ";
			str_menu = str_menu + "onMouseOver=encender_apagar_celda(this,color_fondo_nivel_1_hover);encender_apagar_celda('td_1_" + i_niv1 + "_imagen',color_fondo_nivel_1_hover); onMouseOut=encender_apagar_celda(this,color_fondo_nivel_1);encender_apagar_celda('td_1_" + i_niv1 + "_imagen',color_fondo_nivel_1); ";
			if (a_nivel_1_links_cont[i_niv1] != "")
			{
				str_menu = str_menu + "onClick=window.location.href='" + a_nivel_1_links_cont[i_niv1] + "';>";
			}
			else
			{
				str_menu = str_menu + "onClick=javascript:activar_clip(" + i_niv1 + ");mostrar_ocultar_scrolls(-1,-1);>";
			}
			str_menu = str_menu + unescape(a_nivel_1_nombres[i_niv1]) + "<br />";
			str_menu = str_menu + "</td>";
			str_menu = str_menu + "</tr>";
			if (alto_parcial_2_nivel_1 > 0)
			{
				str_menu = str_menu + "<tr height='" + alto_parcial_2_nivel_1 + "'>";
				str_menu = str_menu + "<td colspan='2' width='" + ancho_nivel_1 + "' height='" + alto_parcial_2_nivel_1 + "'>";
				str_menu = str_menu + "<img src='" + imagen_separacion_nivel_1 + "' width='" + ancho_imagen_separacion_nivel_1 + "' height='" + alto_imagen_separacion_nivel_1 + "' vspace='0' hspace='0' /><br />";
				str_menu = str_menu + "</td>";
				str_menu = str_menu + "</tr>";
			}
			str_menu = str_menu + "</table>";
			
			
			
			/***** NIVEL 2 *****/

			//Se genera la tabla con el nivel 2 del elemento actual de nivel 1
			str_menu = str_menu + "<table width='" + (ancho_nivel_2 + indentado_nivel_2) + "' cellpadding='0' cellspacing='0' border='0'>";
			var ancho_celda_principal = ancho_nivel_2 - ancho_imagen_desplegable_nivel_2;

			//Miramos si tiene hijos
			
			if (a_nivel_1_hijos[i_niv1]!=0)
			{
				//Montamos el nivel 2 correspondiente al elemento i_niv1 del nivel 1
				a_nivel_2_nombres = eval("a_nivel_2_" + i_niv1 + "_nombres");
				for(i_niv2=0;i_niv2<a_nivel_2_nombres.length;i_niv2++)
				{
					a_nivel_2_hijos = eval("a_nivel_2_" + i_niv1 + "_hijos");
					a_nivel_2_links_cont = eval("a_nivel_2_" + i_niv1 + "_links_cont");
					str_menu = str_menu + "<tr height='" + alto_parcial_1_nivel_2 + "'>";
					
					//Se escriben las columnas de la fila de nivel 2
					if (indentado_nivel_2 == 0)
					{
						str_menu = str_menu + "<td width='" + ancho_celda_principal + "' name='td_2_" + i_niv1 + "_" + i_niv2 + "' id='td_2_" + i_niv1 + "_" + i_niv2 + "' height='" + alto_parcial_1_nivel_2 + "' class='celda_nivel_2' ";
					}
					else
					{
						str_menu = str_menu + "<td width='" + indentado_nivel_2 + "' height='" + alto_parcial_1_nivel_2 + "'>";
						str_menu = str_menu + "</td>";
						str_menu = str_menu + "<td width='" + ancho_celda_principal + "' name='td_2_" + i_niv1 + "_" + i_niv2 + "' id='td_2_" + i_niv1 + "_" + i_niv2 + "' height='" + alto_parcial_1_nivel_2 + "' class='celda_nivel_2' ";
					}
					
					//Si hay nivel 3, se prepara la celda principal de nivel 2 para que lo despliegue
					
					if (a_nivel_2_hijos[i_niv2])
					{
						str_menu = str_menu + "onMouseOver=encender_apagar_celda(this,color_fondo_nivel_2_hover);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "_imagen',color_fondo_nivel_2_hover); onMouseOut=countdown_ocultar_nivel_3(" + i_niv1 + "," + i_niv2 + ",0);encender_apagar_celda(this,color_fondo_nivel_2);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "_imagen',color_fondo_nivel_2); ";
						str_menu = str_menu + "onClick='vengo_celda_principal_nivel_2=true;mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");mostrar_ocultar_scrolls(" + i_niv1 + "," + i_niv2 + ");'";
						//Si ademaacute;s tiene link, entonces tenemos que incluirlo en el onClick
						if (a_nivel_2_links_cont[i_niv2]!="")
						{
							str_menu = str_menu + "window.location.href='" + a_nivel_2_links_cont[i_niv2] + "';activar_seleccion(" + i_niv1 + "," + i_niv2 + ");";
						}
						str_menu = str_menu + "'";
					}
					else
					{
						str_menu = str_menu + "onMouseOver=encender_apagar_celda(this,color_fondo_nivel_2_hover);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "_imagen',color_fondo_nivel_2_hover); onMouseOut=encender_apagar_celda(this,color_fondo_nivel_2);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "_imagen',color_fondo_nivel_2); ";
						//Si no hay nivel 3, entonces creamos el link
						str_menu = str_menu + "onClick=window.location.href='" + a_nivel_2_links_cont[i_niv2] + "';";
					}
					str_menu = str_menu + ">";
					str_menu = str_menu + "<img src='" + imagen_inicio_celda_nivel_2 + "' align='absmiddle' width='" + ancho_imagen_inicio_celda_nivel_2 + "' height='" + alto_imagen_inicio_celda_nivel_2 + "' border='0' hspace='0' vspace='0' />";
					str_menu = str_menu + unescape(a_nivel_2_nombres[i_niv2]) + "<br />";
					str_menu = str_menu + "</td>";
					str_menu = str_menu + "<td width='" + ancho_imagen_desplegable_nivel_2 + "' name='td_2_" + i_niv1 + "_" + i_niv2 + "_imagen' id='td_2_" + i_niv1 + "_" + i_niv2 + "_imagen' style='background-color:" + color_fondo_nivel_2 + ";cursor:hand' ";
					
					
					//Si hay nivel 3, se prepara la celda con imagen desplegable de nivel 2 para que lo despliegue
					
					if (a_nivel_2_hijos[i_niv2])
					{
						str_menu = str_menu + "onMouseOver=parar_countdown_nivel_3('div_3_" + i_niv1 + "_" + i_niv2 + "');encender_apagar_celda(this,color_fondo_nivel_2_hover);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "',color_fondo_nivel_2_hover) onMouseOut=encender_apagar_celda(this,color_fondo_nivel_2);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "',color_fondo_nivel_2); ";
						str_menu = str_menu + "onClick='mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");mostrar_ocultar_scrolls(" + i_niv1 + "," + i_niv2 + ")';";
						//Si ademaacute;s tiene link, entonces tenemos que incluirlo en el onClick
						if (a_nivel_2_links_cont[i_niv2]!="")
						{
							str_menu = str_menu + " window.location.href='" + a_nivel_2_links_cont[i_niv2] + "';activar_seleccion(" + i_niv1 + "," + i_niv2 + ")";
						}
						str_menu = str_menu + "'><img src='" + imagen_desplegable_nivel_2_plegada + "' align='absmiddle' width='" + ancho_imagen_desplegable_nivel_2 + "' height='" + alto_imagen_desplegable_nivel_2 + "' border='0' hspace='0' vspace='0' style='cursor:hand;' ";
						str_menu = str_menu + "onClick=mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");mostrar_ocultar_scrolls(" + i_niv1 + "," + i_niv2 + ");";
						str_menu = str_menu + " /></ br>";
					}
					else
					{
						str_menu = str_menu + "onMouseOver=encender_apagar_celda(this,color_fondo_nivel_2_hover);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "',color_fondo_nivel_2_hover); onMouseOut=encender_apagar_celda(this,color_fondo_nivel_2);encender_apagar_celda('td_2_" + i_niv1 + "_" + i_niv2 + "',color_fondo_nivel_2); ";
						//Si no hay nivel 3, entonces creamos el link
						str_menu = str_menu + "onClick=window.location.href='" + a_nivel_2_links_cont[i_niv2] + "';>";
					}
					str_menu = str_menu + "</td>";
					str_menu = str_menu + "</tr>";
					
					//Separaci&oacute;n entre filas de nivel 2
					
					if (alto_parcial_2_nivel_2 > 0)
					{
						str_menu = str_menu + "<tr height='" + alto_parcial_2_nivel_2 + "'>";
						if (indentado_nivel_2 == 0)
						{
							str_menu = str_menu + "<td colspan='2' height='" + alto_parcial_2_nivel_2 + "'>";
						}
						else
						{
							str_menu = str_menu + "<td width='" + indentado_nivel_2 + "' height='" + alto_parcial_2_nivel_2 + "'>";
							str_menu = str_menu + "</td>";
							str_menu = str_menu + "<td colspan='2' height='" + alto_parcial_2_nivel_2 + "'>";
						}
						str_menu = str_menu + "<img src='" + imagen_separacion_nivel_2 + "' width='" + ancho_imagen_separacion_nivel_2 + "' height='" + alto_imagen_separacion_nivel_2 + "' vspace='0' hspace='0' /><br />";
						str_menu = str_menu + "</td>";
						str_menu = str_menu + "</tr>";
					}
					
					
					/***** NIVEL 3 *****/
		
					//Se generan el div de nivel 3 correspondiente al nivel 2 actual, si existe
						
					if (a_nivel_2_hijos[i_niv2])
					{
						//Vamos creando las capas de tercer nivel
						a_nivel_3_nombres = eval("a_nivel_3_" + i_niv1 + "_" + i_niv2 + "_nombres");
						a_nivel_3_links_cont = eval("a_nivel_3_" + i_niv1 + "_" + i_niv2 + "_links_cont");
							
						//La posici&oacute;n de esta capa depende del nivel 1 y del nivel 2
						posicion_top = top_inicio + ((i_niv1 + 1) * alto_total_nivel_1) + (i_niv2 * alto_total_nivel_2);
						ancho = indentado_nivel_3 + ancho_nivel_2 + indentado_nivel_2 + distancia_final;

						z_index_nivel_3 = z_index_nivel_3 + 1;
						str_menu_nivel_3 = "<div name='div_3_" + i_niv1 + "_" + i_niv2 + "' id='div_3_" + i_niv1 + "_" + i_niv2 + "' style='width:" + ancho_nivel_3 + "px;height:" + alto_total_nivel_3 + "px;top:" + posicion_top + "px;left:" + ancho + "px;z-index:" + z_index_nivel_3 + ";visibility:hidden;position:absolute;'>";
						str_menu_nivel_3 = str_menu_nivel_3 + "<table width='" + ancho_nivel_3 + "' cellpadding='0' cellspacing='0' border='0'>";
						for (i_niv3=0;i_niv3<a_nivel_3_nombres.length;i_niv3++)
						{
							str_menu_nivel_3 = str_menu_nivel_3 + "<tr>";
							
							//Casos distintos en funci&oacute;n de si tiene link o no el nivel 3
							if (a_nivel_3_links_cont[i_niv3] != "")
							{
								str_menu_nivel_3 = str_menu_nivel_3 + "<td height='"+ alto_parcial_1_nivel_3 + "' class='celda_nivel_3' ";
								str_menu_nivel_3 = str_menu_nivel_3 + "onMouseOver='mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");encender_apagar_celda(this, color_fondo_nivel_3_hover);' onMouseOut='countdown_ocultar_nivel_3(" + i_niv1 + "," + i_niv2 + ",0);encender_apagar_celda(this, color_fondo_nivel_3);' ";
								str_menu_nivel_3 = str_menu_nivel_3 + "onClick=window.location.href='" + a_nivel_3_links_cont[i_niv3] + "';";
								str_menu_nivel_3 = str_menu_nivel_3 + ">";
								str_menu_nivel_3 = str_menu_nivel_3 + "<img src='" + imagen_no_desplegable_nivel_3 + "' align='absmiddle' width='" + ancho_imagen_no_desplegable_nivel_3 + "' height='" + alto_imagen_no_desplegable_nivel_3 + "' border='0' hspace='0' vspace='0' />";
								str_menu_nivel_3 = str_menu_nivel_3 + unescape(a_nivel_3_nombres[i_niv3]) + "<br />";
								str_menu_nivel_3 = str_menu_nivel_3 + "</td>";
							}
							else
							{
								str_menu_nivel_3 = str_menu_nivel_3 + "<td height='"+ alto_parcial_1_nivel_3 + "' class='celda_nivel_3_sin_link' ";
								str_menu_nivel_3 = str_menu_nivel_3 + "onMouseOver='mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");' onMouseOut='countdown_ocultar_nivel_3(" + i_niv1 + "," + i_niv2 + ",0);' ";
								str_menu_nivel_3 = str_menu_nivel_3 + ">";
								str_menu_nivel_3 = str_menu_nivel_3 + "<img src='" + imagen_no_desplegable_nivel_3 + "' align='absmiddle' width='" + ancho_imagen_no_desplegable_nivel_3 + "' height='" + alto_imagen_no_desplegable_nivel_3 + "' border='0' hspace='0' vspace='0' />";
								str_menu_nivel_3 = str_menu_nivel_3 + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + unescape(a_nivel_3_nombres[i_niv3]) + "<br />";
								str_menu_nivel_3 = str_menu_nivel_3 + "</td>";
							}
							
							str_menu_nivel_3 = str_menu_nivel_3 + "</tr>";
							if (alto_parcial_2_nivel_3 > 0 )
							{
								str_menu_nivel_3 = str_menu_nivel_3 + "<tr>";
								str_menu_nivel_3 = str_menu_nivel_3 + "<td height='"+ alto_parcial_2_nivel_3 + "' ";
								str_menu_nivel_3 = str_menu_nivel_3 + "onMouseOver='mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");' onMouseOut='countdown_ocultar_nivel_3(" + i_niv1 + "," + i_niv2 + ",0);' ";
								str_menu_nivel_3 = str_menu_nivel_3 + ">";
								str_menu_nivel_3 = str_menu_nivel_3 + "<img src='" + imagen_separacion_nivel_3 + "' width='" + ancho_imagen_separacion_nivel_3 + "' height='" + alto_imagen_separacion_nivel_3 + "' vspace='0' hspace='0' /><br />";
								str_menu_nivel_3 = str_menu_nivel_3 + "</td>";
								str_menu_nivel_3 = str_menu_nivel_3 + "</tr>";
							}
						}
						str_menu_nivel_3 = str_menu_nivel_3 + "</table>";
						str_menu_nivel_3 = str_menu_nivel_3 + "</div>";
						document.write (str_menu_nivel_3);
						delete a_nivel_3_nombres;

						//Scroll superior del nivel 3 actual
						top_scroll_superior = posicion_top - alto_imagen_scroll_up_general;
						str_scrolls_nivel_3 = "<div name='div_sup_scroll_3_" + i_niv1 + "_" + i_niv2 + "' id='div_sup_scroll_3_" + i_niv1 + "_" + i_niv2 + "' style='width:" + ancho_nivel_3 + "px;height:" + alto_imagen_scroll_up_general + "px;top:" + top_scroll_superior + "px;left:" + ancho + "px;z-index:" + (z_index_nivel_3 + 1) + ";visibility:hidden;position:absolute;' onMouseOver='mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");scroll_down_nivel_3(" + i_niv1 + "," + i_niv2 + ");' onMouseOut='parar_menu_nivel_3();countdown_ocultar_nivel_3(" + i_niv1 + "," + i_niv2 + ",1);'>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<table width='" + ancho_nivel_3 + "' cellpadding='0' cellspacing='0' border='0'>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<tr>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<td height='" + alto_imagen_scroll_up_general + "' style='text-align:center;background-color=" + color_fondo_scrolls_nivel_3 + ";cursor:hand'>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<img src='" + imagen_scroll_up_general + "' border='0' />";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</tr>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</td>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</table>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</div>";

						//Scroll inferior del nivel 3 actual
						//top_scroll_inferior = posicion_top + (i_niv3 * alto_total_nivel_3);
						top_scroll_inferior = limite_inferior;
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<div name='div_inf_scroll_3_" + i_niv1 + "_" + i_niv2 +"' id='div_inf_scroll_3_" + i_niv1 + "_" + i_niv2 +"' style='width:" + ancho_nivel_3 + "px;height:" + alto_imagen_scroll_down_general + "px;top:" + top_scroll_inferior + "px;left:" + ancho + "px;z-index:" + (z_index_nivel_3 + 1) + ";visibility:hidden;position:absolute;' onMouseOver='mostrar_nivel_3(" + i_niv1 + "," + i_niv2 + ");scroll_up_nivel_3(" + i_niv1 + "," + i_niv2 + ");' onMouseOut='parar_menu_nivel_3();countdown_ocultar_nivel_3(" + i_niv1 + "," + i_niv2 + ",1);'>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<table width='" + ancho_nivel_3 + "' cellpadding='0' cellspacing='0' border='0'>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<tr>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<td height='" + alto_imagen_scroll_down_general + "' style='text-align:center;background-color=" + color_fondo_scrolls_nivel_3 + ";cursor:hand'>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "<img src='" + imagen_scroll_down_general + "' border='0' />";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</tr>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</td>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</table>";
						str_scrolls_nivel_3 = str_scrolls_nivel_3 + "</div>";

						document.write (str_scrolls_nivel_3);
					}
					delete a_nivel_2_hijos;
					delete a_nivel_2_links_cont;
				}
				if (i_niv2 > max_i_niv2)
				{
					max_i_niv2 = i_niv2;
				}
			}
			str_menu = str_menu + "</table>";
			str_menu = str_menu + "</div>";
		}

		//Div que tapa los elementos de men&uacute; que sobrepasan la altura del espacio disponible
		alto_mascara = (i_niv1 * alto_total_nivel_1) + (max_i_niv2 * alto_total_nivel_2) - alto_visible_menu;
		z_index = elementos_menu_nivel_1 + elementos_menu_nivel_2 + 1;
		str_menu = str_menu + "<div name='mascara' id='mascara' style='top:" + (alto_visible_menu + top_inicio) + ";left:" + distancia_final + "px;width:" + ancho_nivel_1 + "px;height:" + alto_mascara + "px;z-index:" + z_index + ";clip:rect(0px " + ancho_nivel_1 + "px " + alto_mascara + "px 0px);position:absolute;visibility:visible;'>";
		str_menu = str_menu + "<table width='"+ ancho_nivel_1 + "' cellpadding='0' cellspacing='0' border='0'>";
		str_menu = str_menu + "<tr height='" + alto_mascara + "'>";
		str_menu = str_menu + "<td height='" + alto_mascara + "' style='background-image:url(" + imagen_fondo_mascara + ");'>";
		str_menu = str_menu + "<img src='/imagenes/menu/px_vacio.gif' align='absmiddle' width='1' height='" + alto_visible_menu + "' border='0' hspace='0' vspace='0' />";
		str_menu = str_menu + "</td>";
		str_menu = str_menu + "</tr>";
		str_menu = str_menu + "</table>";
		str_menu = str_menu + "</div>";
		

					/***** SCROLLS DEL MEN&Úacute; - NIVELES 1 Y 2 *****/

		str_scrolls = "";

		//Scroll superior
		top_scroll_up = top_inicio - alto_imagen_scroll_up_general;
		z_index = z_index + 1;
		str_scrolls = str_scrolls + "<div name='divscrollup' id='divscrollup' style='width:" + ancho_nivel_1 + "px;height:" + alto_imagen_scroll_up_general + "px;top:" + top_scroll_up + "px;left:" + distancia_final + "px;z-index:" + z_index + ";visibility:hidden;position:absolute;' onMouseOver='countdown_scroll_ocultar_nivel_3();scroll_down();' onMouseOut='parar_menu();'>";
		str_scrolls = str_scrolls + "<table width='" + ancho_nivel_1 + "' cellpadding='0' cellspacing='0' border='0'>";
		str_scrolls = str_scrolls + "<tr height='" + alto_imagen_scroll_up_general + "'>";
		str_scrolls = str_scrolls + "<td height='" + alto_imagen_scroll_up_general + "' style='text-align:center;background-color:" + color_fondo_scrolls_generales + ";cursor:hand;'>";
		str_scrolls = str_scrolls + "<a href='#'><img src='" + imagen_scroll_up_general + "' border='0' /></a>";
		str_scrolls = str_scrolls + "</tr>";
		str_scrolls = str_scrolls + "</td>";
		str_scrolls = str_scrolls + "</table>";
		str_scrolls = str_scrolls + "</div>";
	
		//Scroll inferior
		top_scroll_down = top_inicio + alto_visible_menu;
		z_index = z_index + 1;
		str_scrolls = str_scrolls + "<div name='divscrolldown' id='divscrolldown' style='width:" + ancho_nivel_1 + "px;height:" + alto_imagen_scroll_down_general + "px;top:" + top_scroll_down + "px;left:" + distancia_final + "px;z-index:" + z_index + ";visibility:hidden;position:absolute;' onMouseOver='countdown_scroll_ocultar_nivel_3();scroll_up();' onMouseOut='parar_menu();'>";
		str_scrolls = str_scrolls + "<table width='" + ancho_nivel_1 + "' cellpadding='0' cellspacing='0' border='0'>";
		str_scrolls = str_scrolls + "<tr height='" + alto_imagen_scroll_down_general + "'>";
		str_scrolls = str_scrolls + "<td height='" + alto_imagen_scroll_down_general + " ' style='text-align:center;background-color:" + color_fondo_scrolls_generales + ";cursor:hand;'>";
		str_scrolls = str_scrolls + "<a href='#'><img src='" + imagen_scroll_down_general + "' border='0' /></a>";
		str_scrolls = str_scrolls + "</tr>";
		str_scrolls = str_scrolls + "</td>";
		str_scrolls = str_scrolls + "</table>";
		str_scrolls = str_scrolls + "</div>";
	
		document.write (str_menu);
		document.write (str_scrolls);

		//Inicializamos el men&uacute; pintado
		inicializar_menu(codigo_nivel_1_inicio,codigo_nivel_2_inicio);

		//Se determina si los scrolls se deben ver o no
		mostrar_ocultar_scrolls(-1,-1);
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: INICIALIZAR_MENU - Despliega el men&uacute; una vez cargado el documento
// PARAMETROS: codigo_nivel_1
//             codigo_nivel_2
// RETURN: void
/**********************************************************************************/
function inicializar_menu(codigo_nivel_1,codigo_nivel_2)
{
	//Primero comprobamos que no estemos en una secci&oacute;n que no necesite de desplegar menu
	if (codigo_nivel_1 != "")
	{
		//Buscamos la posici&oacute;n del array a la que corresponde el c&oacute;digo de nivel 1
		encontrado = false;
		for (i=0;i<a_nivel_1_codigos.length;i++)
		{
			if (a_nivel_1_codigos[i] == codigo_nivel_1)
			{
				posicion_nivel_1 = i;
				i = a_nivel_1_codigos.length;
				encontrado = true;
			}
		}
		if (encontrado)
		{
			//Desplegamos el men&uacute; &uacute;nicamente si tiene hijos, sino, nada
			if (a_nivel_1_hijos[posicion_nivel_1])
			{
				//Desplegamos el men&uacute; de primer nivel que hemos encontrado
				activar_clip(posicion_nivel_1);
			
				//Ahora pasamos a buscar la opci&oacute;n de nivel 2 para seleccionarla en negro
				//S&oacute;lo lo hacemos si nos ha entrado el c&oacute;digo
				if (codigo_nivel_2!="")
				{
					a_nivel_2_codigos = eval("a_nivel_2_" + posicion_nivel_1 + "_codigos");
					encontrado = false;
					for (i=0;i<a_nivel_2_codigos.length;i++)
					{
						if (a_nivel_2_codigos[i] == codigo_nivel_2)
						{
							posicion_nivel_2 = i;
							i = a_nivel_2_codigos.length;
							encontrado = true;
						}
					}
					delete a_nivel_2_codigos;
			
					if (encontrado)
					{
						activar_seleccion(posicion_nivel_1,posicion_nivel_2);
					}
					else
					{
						alert("El código de sección de menú para esta página es incorrecto. Contacte con el responsable de la Intranet.");
						alert("De todas formas puede seguir utilizando el menú, aunque este no se sincronizara correctamente en esta página.");
					}
				}
			}
		}
		else
		{
			alert("El código de sección de menú para esta pagina es incorrecto. Contacte con el responsable de la Intranet.");
			alert("De todas formas puede seguir utilizando el menú, aunque este no se sincronizara correctamente en esta página.");
		}
	}
	else
	{
		//No hay que hacer absolutamente nada, ya que no tenemos que la pàgina en la que estamos
		//no corresponde a una de las opciones del men&uacute; lateral izquierdo.
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: ACTIVAR_CLIP - Llamada que se realiza desde cualquier celda de nivel 1
//                         Determina si se debe plegar, desplegar o no hacer nada
//                         en caso de que se est&eacute; en medio de un pliegue o despliegue.
// PARAMETROS: opcion_niv1
// RETURN: nos dirige a la funci&oacute;n plegar o desplegar
/**********************************************************************************/
function activar_clip(opcion_niv1)
{
	if (!pliegue_o_despliegue_en_curso)
	{
		//Miramos si hay un men&uacute; desplegado de nivel 1 que sea diferente del que hay ahora
		if (nivel_1_desplegado==-1 && nivel_1_desplegado!=opcion_niv1)
		{
			bottomVal = alto_total_nivel_1;
			//Se cambia la flecha por la desplegada y se despliega el menu
			desplegar_flecha(opcion_niv1);
			desplegar_menu(opcion_niv1);
		}
		else
		{
			a_nivel_2_nombres = eval("a_nivel_2_" + nivel_1_desplegado + "_nombres");
			bottomVal = alto_total_nivel_1 + a_nivel_2_nombres.length * alto_total_nivel_2;
			delete a_nivel_2_nombres;
			mover_menu_a_posicion_inicial();
			plegar_menu(nivel_1_desplegado,opcion_niv1);
		}
	}
}

/**********************************************************************************/
// FUNCI&Oacute;N: DESPLEGAR_MENU
/**********************************************************************************/
function desplegar_menu(opcion_niv1)
{
	pliegue_o_despliegue_en_curso = true;
	capa = eval("div_1_" + opcion_niv1);
	a_nivel_2_nombres = eval("a_nivel_2_" + opcion_niv1 + "_nombres");
	limite = a_nivel_2_nombres.length * alto_total_nivel_2 + alto_total_nivel_1;
	delete a_nivel_2_nombres;
	
	var desplazamiento_clips_inferiores = 0;
	if (bottomVal < limite){
	
		if ((bottomVal + desplazamiento_clips) > limite)
		{
			desplazamiento_clips_inferiores = limite - bottomVal;
			bottomVal = limite;
		}
		else
		{
			desplazamiento_clips_inferiores+=desplazamiento_clips;
			bottomVal+=desplazamiento_clips;
		}
	
		if (ancho_nivel_1 >= (ancho_nivel_2 + indentado_nivel_2))
		{
			ancho_clip = ancho_nivel_1;
		}
		else
		{
			ancho_clip = ancho_nivel_2 + indentado_nivel_2;
		}
		//Hacemos el clip ma;s grande
		capa.style.clip="rect(0px " + ancho_clip + "px " + bottomVal + "px 0px)"
				
		//Movemos las capas que hay por abajo
		i_inicio = opcion_niv1 + 1;
		for(i=i_inicio;i<a_nivel_1_nombres.length;i++)
		{
			capa_inferior = eval("div_1_" + i);
			capa_inferior.style.pixelTop+=desplazamiento_clips_inferiores;
			delete capa_inferior;
		}
		
		setTimeout("desplegar_menu(" + opcion_niv1 + ")",intervalo);
		
	}
	else
	{
		nivel_1_desplegado = opcion_niv1;
		pliegue_o_despliegue_en_curso = false;
	}
	mostrar_ocultar_scrolls(-1,-1)
}

/**********************************************************************************/
// FUNCI&Oacute;N: PLEGAR_MENU
/**********************************************************************************/
function plegar_menu(nivel_a_plegar,opcion_niv1)
{
	pliegue_o_despliegue_en_curso = true;
	capa = eval("div_1_" + nivel_a_plegar);
	
	var desplazamiento_clips_inferiores = 0;
	if (bottomVal > alto_total_nivel_1){
		
		if ((bottomVal - desplazamiento_clips) < alto_total_nivel_1)
		{
			desplazamiento_clips_inferiores = bottomVal - alto_total_nivel_1;
			bottomVal = alto_total_nivel_1;
		}
		else
		{
			desplazamiento_clips_inferiores+=desplazamiento_clips;
			bottomVal-=desplazamiento_clips;
		}

		if (bottomVal < alto_total_nivel_1)
		{
			bottomVal = alto_total_nivel_1;
		}
		
		if (ancho_nivel_1 >= ancho_nivel_2)
		{
			ancho_clip = ancho_nivel_1;
		}
		else
		{
			ancho_clip = ancho_nivel_2;
		}
		//Hacemos el clip ma;s peque&ntilde;o
		capa.style.clip="rect(0px " + ancho_clip + "px " + bottomVal + "px 0px)"
				
		//Movemos las capas que hay por abajo
		i_inicio = nivel_a_plegar + 1;
		for(i=i_inicio;i<a_nivel_1_nombres.length;i++)
		{
			capa_inferior = eval("div_1_" + i);
			capa_inferior.style.pixelTop-=desplazamiento_clips_inferiores;
			delete capa_inferior;
		}
		
		setTimeout("plegar_menu(" + nivel_a_plegar + "," + opcion_niv1 + ")",intervalo);
		
	}
	else
	{
		//Plegamos la flecha
		plegar_flecha(nivel_a_plegar);
		
		//Si despu&eacute;s de plegar hay que desplegar se llama a la funci&oacute;n correspondiente
		if ((opcion_niv1 != nivel_1_desplegado)&&(nivel_1_desplegado!=-1))
		{
			pliegue_o_despliegue_en_curso = true;
			//Se cambia la flecha por la desplegada y se despliega el menu
			desplegar_flecha(opcion_niv1);
			desplegar_menu(opcion_niv1);
			nivel_1_desplegado = opcion_niv1;
		}
		else
		{
			pliegue_o_despliegue_en_curso = false;
			nivel_1_desplegado = -1;
		}
	}
	mostrar_ocultar_scrolls(-1,-1)
}


/**********************************************************************************/
// FUNCI&Oacute;N: MOVER_MENU_A_POSICION_INICIAL - Si hay desplegados de nivel 2, mueve
// el menu verticalmente a la posicion inicial antes de plegar dichos desplegados
/**********************************************************************************/
function mover_menu_a_posicion_inicial()
{
	//Se reposicionan los divs del men&uacute;
	if (a_nivel_1_nombres.length > 0)
	{
		capa_inicial = eval("div_1_0");
		var desplazamiento_vertical = top_inicio - capa_inicial.style.pixelTop;
		delete capa_inicial;
		if (desplazamiento_vertical > 0)
		{
			for (i_niv1=0;i_niv1<a_nivel_1_nombres.length;i_niv1++)
			{
				capa = eval("div_1_" + i_niv1);
				capa.style.pixelTop = capa.style.pixelTop + desplazamiento_vertical;
				delete capa;
				div_superior = eval("divscrollup");
				div_superior.style.visibility = "hidden";

				//Miramos si tiene hijos
				
				if (a_nivel_1_hijos[i_niv1]!=0)
				{
					//Reposicionamos el nivel 2 correspondiente al elemento i_niv1 del nivel 1
					a_nivel_2_nombres = eval("a_nivel_2_" + i_niv1 + "_nombres");
					for(i_niv2=0;i_niv2<a_nivel_2_nombres.length;i_niv2++)
					{
						a_nivel_2_hijos = eval("a_nivel_2_" + i_niv1 + "_hijos");
							
						//Si le cuelga men&uacute; de tercer nivel lo reposicionamos
						if (a_nivel_2_hijos[i_niv2])
						{
							capa = eval("div_3_" + i_niv1 + "_" + i_niv2);
							capa.style.pixelTop = capa.style.pixelTop + desplazamiento_vertical;
							delete capa;
							div_sup_scroll_3_actual = eval("div_sup_scroll_3_" + i_niv1 + "_" + i_niv2);
							div_sup_scroll_3_actual.style.pixelTop = div_sup_scroll_3_actual.style.pixelTop + desplazamiento_vertical;
							div_inf_scroll_3_actual = eval("div_inf_scroll_3_" + i_niv1 + "_" + i_niv2);
							div_inf_scroll_3_actual.style.pixelTop = div_inf_scroll_3_actual.style.pixelTop + desplazamiento_vertical;
						}
						delete a_nivel_2_hijos;
					}
				}
			}
		}
	}
}



/**********************************************************************************/
// FUNCI&Oacute;N: ACTIVAR_SELECCION - Activa la secci&oacute;n de segundo nivel seleccionada
// PARAMETROS: nivel_1
//             nivel_2
/**********************************************************************************/
function activar_seleccion(nivel_1,nivel_2)
{
	if (nivel_1 != -1 && nivel_2 != -1)
	{
		celda = document.getElementById("td_2_" + nivel_1 + "_" + nivel_2);
		celda.style.color="#000000";
		delete celda;
	}
}

/**********************************************************************************/
// FUNCI&Oacute;N: MOSTRAR_NIVEL_3 - Hace visible el men&uacute; de nivel 3 para la opci&oacute;n de nivel 2
//						    seleccionada.
// PARAMETROS: opcion_nivel_1
//             opcion_nivel_2
/**********************************************************************************/
function mostrar_nivel_3(opcion_niv1, opcion_niv2)
{
	id_nivel_3_1 = opcion_niv1;
	id_nivel_3_2 = opcion_niv2;
	//Primero ocultamos el nivel que estaba activo
	if (nivel_3_activo!="")
	{
		capa_a_ocultar = eval(nivel_3_activo);
		capa_a_ocultar.style.visibility = "hidden";
		delete capa_a_ocultar;
	}
	div_sup_scroll_3_activo = eval("div_sup_scroll_3_" + opcion_niv1 + "_" + opcion_niv2);
	div_inf_scroll_3_activo = eval("div_inf_scroll_3_" + opcion_niv1 + "_" + opcion_niv2);
	capa = eval("div_3_" + opcion_niv1 + "_" + opcion_niv2);
	posicion_div_scroll_3 = top_inicio + ((opcion_niv1 + 1) * alto_total_nivel_1 + opcion_niv2 * alto_total_nivel_2) - alto_imagen_scroll_up_general;
	primer_div = eval("div_1_0");
	correccion = top_inicio - primer_div.style.pixelTop;
	posicion_div_scroll_3 = posicion_div_scroll_3 - correccion;
	div_sup_scroll_3_activo.style.pixelTop = posicion_div_scroll_3;
	alto_clip = (div_sup_scroll_3_activo.style.pixelTop - (capa.style.pixelTop - alto_imagen_scroll_up_general));
	capa.style.clip="rect(" + alto_clip + "px " + ancho_nivel_3 + "px " + (div_inf_scroll_3_activo.style.pixelTop - capa.style.pixelTop) + "px 0px)";
	capa.style.visibility = "visible";
	delete capa;
	
	//Matamos el intervalo que pueda estar activado para ocultar el nivel 3
	if (nivel_3_activo != "")
	{
		clearTimeout(int_ocultar);
	}
	
	//Actualizamos la variable que me indica qu&eacute; men&uacute; de nivel 3 esta; activo
	nivel_3_activo = "div_3_" + opcion_niv1 + "_" + opcion_niv2;
}

/**********************************************************************************/
// FUNCI&Oacute;N: OCULTAR_NIVEL_3 - Hace invisible el men&uacute; de nivel 3 para la opci&oacute;n de nivel 2
//						    seleccionada.
// PARAMETROS: opcion_nivel_1
//             opcion_nivel_2
/**********************************************************************************/
function ocultar_nivel_3(opcion_niv1, opcion_niv2)
{
	capa = eval("div_3_" + opcion_niv1 + "_" + opcion_niv2);
	capa.style.visibility = "hidden";
	delete capa;

	scroll_sup_activo = eval("div_sup_scroll_3_" + opcion_niv1 + "_" + opcion_niv2);
	scroll_sup_activo.style.visibility = "hidden";
	delete scroll_sup_activo;

	scroll_inf_activo = eval("div_inf_scroll_3_" + opcion_niv1 + "_" + opcion_niv2);
	scroll_inf_activo.style.visibility = "hidden";
	delete scroll_inf_activo;

	nivel_3_activo = "";
}

/**********************************************************************************/
// FUNCI&Oacute;N: COUNTDOWN_OCULTAR_NIVEL_3 -	Activa la cuenta atra;s para ocultar el nivel 3
// PARAMETROS: opcion_nivel_1
//             opcion_nivel_2
//             tipo_countdown: tarda ma;s en ocultarse si el mouse sale de encima de
//							   los scrolls de nivel 3 (0=normal, 1=ma;s lento)			
/**********************************************************************************/
function countdown_ocultar_nivel_3(opcion_niv1, opcion_niv2, tipo_countdown)
{
	tiempo = 20;
	if (tipo_countdown)
	{
		tiempo = 100;
	}
	int_ocultar = setTimeout("ocultar_nivel_3(" + opcion_niv1 + "," + opcion_niv2 + ")",tiempo);
}


/**********************************************************************************/
// FUNCI&Oacute;N: COUNTDOWN_SCROLL_OCULTAR_NIVEL_3 - Activa la cuenta atra;s para ocultar
// el nivel 3 desplegado al ponerse sobre un scroll general.
// RETURN: true
/**********************************************************************************/
function countdown_scroll_ocultar_nivel_3()
{
	tiempo = 20;
	if (nivel_3_activo != "")
	{
		int_ocultar = setTimeout("ocultar_nivel_3(" + id_nivel_3_1 + "," + id_nivel_3_2 + ")",tiempo);
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: PARAR_COUNTDOWN_NIVEL_3 -	Para la cuenta atra;s para ocultar el nivel 3
// RETURN: true
/**********************************************************************************/
function parar_countdown_nivel_3(nivel_3_a_mantener)
{
	if (vengo_celda_principal_nivel_2)
	{
		if (nivel_3_a_mantener == nivel_3_activo)
		{
			clearTimeout(int_ocultar);
			vengo_celda_principal_nivel_2 = false;
		}
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: DESPLEGAR_FLECHA -	Sincroniza la flecha de primer nivel seg&uacute;n el estado
//							    plegado o desplegado
// PARAMETROS: num_imagen
/**********************************************************************************/
function desplegar_flecha(num_imagen)
{
	//Si las ima;genes de flechas son PNG no se sustituye la fuente sino el estilo
	var imgName = flecha_plegada.src.toUpperCase();
	if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
	{
		span_img = eval("flecha_" + num_imagen);
		span_img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + flecha_desplegada.src + "', sizingMethod='scale'";
		delete span_img;
	}
	else
	{
		imagen = eval("document.images.flecha_" + num_imagen);
		imagen.src = flecha_desplegada.src;
		delete imagen;
	}
}

/**********************************************************************************/
// FUNCI&Oacute;N: PLEGAR_FLECHA -	Sincroniza la flecha de primer nivel seg&uacute;n el estado
//							    plegado o desplegado
// PARAMETROS: num_imagen
/**********************************************************************************/
function plegar_flecha(num_imagen)
{
	//Si las ima;genes de flechas son PNG no se sustituye la fuente sino el estilo
	var imgName = flecha_desplegada.src.toUpperCase();
	if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
	{
		span_img = eval("flecha_" + num_imagen);
		span_img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + flecha_plegada.src + "', sizingMethod='scale'";
		delete span_img;
	}
	else
	{
		imagen = eval("document.images.flecha_" + num_imagen);
		imagen.src = flecha_plegada.src;
		delete imagen;
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: CALCULAR_DISTANCIA_IZQUIERDA - Calcula la distancia desde el borde
// izquierdo de la pa;gina
// RETURN: void
/**********************************************************************************/
function calcular_distancia_izquierda()
{
	if (contenidos_centrados)
	{
		var ancho_scroll;
		if (pagina_con_scroll)
		{
			ancho_scroll = 20;
		}
		else
		{
			ancho_scroll = 0;
		}
		var distancia_izquierda_vacia = (((document.body.offsetWidth - ancho_scroll - 1)/2) - (ancho_contenido/2));
		if (distancia_izquierda_vacia < 0)
		{
			distancia_izquierda_vacia = 0;
		}
	}
	else
	{
		distancia_izquierda_vacia = 0;
	}
	distancia_final = distancia_menu_izquierda + distancia_izquierda_vacia;
}


/**********************************************************************************/
// FUNCI&Oacute;N: CALCULAR_ALTO VISIBLE - Calcula el alto visible del men&uacute; si no se ha forzado
// RETURN: void
/**********************************************************************************/
function calcular_alto_visible()
{
	if (forzar_alto_visible_menu == 0)
	{
		alto_visible_menu = document.body.offsetHeight - top_inicio - 2*alto_imagen_scroll_down_general + 3;
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: REPOSICIONAR_MENU - Funci&oacute;n encargada de reposicionar el men&uacute; tras un
// cambio de tama&ntilde;o de pantalla
// RETURN: void
/**********************************************************************************/
function reposicionar_menu()
{
	//Se reposicionan los divs del men&uacute;
	if (a_nivel_1_nombres.length>0)
	{
		calcular_distancia_izquierda();
		for (i_niv1=0;i_niv1<a_nivel_1_nombres.length;i_niv1++)
		{
			
			capa = eval("div_1_" + i_niv1);
			capa.style.pixelLeft = distancia_final;
			delete capa;
			div_superior = eval("divscrollup");
			div_superior.style.pixelLeft = distancia_final;
			div_inferior = eval("divscrolldown");
			div_inferior.style.pixelLeft = distancia_final;
			div_mascara = eval("mascara");
			div_mascara.style.pixelLeft = distancia_final;

			//Miramos si tiene hijos
			
			if (a_nivel_1_hijos[i_niv1]!=0)
			{
				//Montamos el nivel 2 correspondiente al elemento i_niv1 del nivel 1
				a_nivel_2_nombres = eval("a_nivel_2_" + i_niv1 + "_nombres");
				for(i_niv2=0;i_niv2<a_nivel_2_nombres.length;i_niv2++)
				{
					a_nivel_2_hijos = eval("a_nivel_2_" + i_niv1 + "_hijos");
						
					//Si le cuelga men&uacute; de tercer nivel lo reposicionamos
					if (a_nivel_2_hijos[i_niv2])
					{
						capa = eval("div_3_" + i_niv1 + "_" + i_niv2);
						capa.style.pixelLeft = distancia_final + ancho_nivel_2;
						delete capa;
						div_sup_scroll_3_actual = eval("div_sup_scroll_3_" + i_niv1 + "_" + i_niv2);
						div_sup_scroll_3_actual.style.pixelLeft = distancia_final + ancho_nivel_2;
						div_inf_scroll_3_actual = eval("div_inf_scroll_3_" + i_niv1 + "_" + i_niv2);
						div_inf_scroll_3_actual.style.pixelLeft = distancia_final + ancho_nivel_2;
					}
					delete a_nivel_2_hijos;
				}
			}
		}
	}
	mostrar_ocultar_scrolls(-1,-1)
}


/**********************************************************************************/
// FUNCI&Oacute;N: ENCENDER_APAGAR_CELDA - Funci&oacute;n que resalta una celda al pasar el mouse
// por encima de ella y que la devuelve a su color original al salir el mouse de encima
// RETURN: void
/**********************************************************************************/

function encender_apagar_celda(celda_actual, color_nuevo)
{
	celda = eval(celda_actual);
	celda.style.background = color_nuevo;
}


/**********************************************************************************/
// FUNCI&Oacute;N: MOSTRAR_OCULTAR_SCROLLS - Funci&oacute;n que determina si deben mostrarse o no los
// divs con los 'botones' de scroll que mueven todo el men&uacute; arriba y abajo. Si los
// niveles 3 quedan fuera de pa;gina, tambi&eacute;n se muestran scrolls individuales para ellos.
// PARÁMETROS: nivel_1, nivel_2 (para mirar si hay que mostrar u ocultar scrolls de un div de nivel 3)
// RETURN: void
/**********************************************************************************/

function mostrar_ocultar_scrolls(nivel_1, nivel_2)
{
	if (nivel_1 == -1 && nivel_2 == -1)
	{
		//Scroll superior: se mira si la posici&oacute;n del primer elemento de primer nivel
		//del men&uacute; esta; por encima de la posici&oacute;n del scroll superior (en su posici&oacute;n actual)
		if (div_1_0.style.pixelTop < top_inicio)
		{
			divscrollup.style.visibility = "visible";
		}
		else
		{
			divscrollup.style.visibility = "hidden";
		}

		//Scroll inferior: se mira si la posici&oacute;n del &uacute;ltimo elemento de primer nivel
		//del men&uacute; est&aacute; por debajo de la posici&oacute;n del scroll inferior (en su posici&oacute;n actual)
	
		//Posici&oacute;n del &uacute;ltimo elemento de nivel 1
		posicion_final = a_nivel_1_nombres.length - 1;
		capa = eval("div_1_" + posicion_final);
		y_inferior = capa.style.pixelTop + alto_total_nivel_1;
		delete capa;
	
		//Se suma el alto de los elementos de nivel 2 desplegados
		if (nivel_1_desplegado == posicion_final)
		{
			a_nivel_2_nombres = eval("a_nivel_2_" + posicion_final + "_nombres");
			alto = a_nivel_2_nombres.length * alto_total_nivel_2;
			y_inferior = y_inferior + alto;
			delete a_nivel_2_nombres;
		}
		if (y_inferior > limite_inferior)
		{
			divscrolldown.style.visibility = "visible";
		}
		else
		{
			divscrolldown.style.visibility = "hidden";
		}
	}
	else
	{
		a_nivel_3_nombres = eval("a_nivel_3_" + nivel_1 + "_" + nivel_2 + "_nombres");
		div_nivel_3_actual = eval("div_3_" + nivel_1 + "_" + nivel_2);
		
		//Se mira si hay que mostrar el scroll superior del nivel 3 actual
		y_superior_nivel_3 = div_nivel_3_actual.style.pixelTop;
		div_scroll_sup_actual = eval("div_sup_scroll_3_" + nivel_1 + "_" + nivel_2);
		limite_superior = top_inicio + ((nivel_1 + 1) * alto_total_nivel_1 + nivel_2 * alto_total_nivel_2);
		//Al limite superior hay que quitarle la desaparici&oacute;n superior del men&uacute; general
		primer_div = eval("div_1_0");
		correccion = top_inicio - primer_div.style.pixelTop;
		limite_superior = limite_superior - correccion;
		if (y_superior_nivel_3 < limite_superior)
		{
			div_scroll_sup_actual.style.pixelTop = limite_superior - alto_imagen_scroll_up_general;
			div_scroll_sup_actual.style.visibility = "visible";
		}
		else
		{
			div_scroll_sup_actual.style.pixelTop = limite_superior - alto_imagen_scroll_up_general;
			div_scroll_sup_actual.style.visibility = "hidden";
		}

		//Se mira si hay que mostrar el scroll inferior del nivel 3 actual
		y_inferior_nivel_3 = div_nivel_3_actual.style.pixelTop + (a_nivel_3_nombres.length * alto_total_nivel_3);
		div_scroll_inf_actual = eval("div_inf_scroll_3_" + nivel_1 + "_" + nivel_2);
		if (y_inferior_nivel_3 > limite_inferior)
		{
			div_scroll_inf_actual.style.pixelTop = limite_inferior;
			div_scroll_inf_actual.style.visibility = "visible";
		}
		else
		{
			div_scroll_inf_actual.style.pixelTop = limite_inferior;
			div_scroll_inf_actual.style.visibility = "hidden";
		}
	}
}


/**********************************************************************************/
// FUNCI&Oacute;N: SCROLL_UP - Funci&oacute;n que mueve el men&uacute; hacia arriba al pasar el mouse por
// encima del div con el scroll. No mueve los divs de nivel 3.
// RETURN: void
/**********************************************************************************/

function scroll_up()
{
	//Se calcula el tama&ntilde;o total del men&uacute; en su situaci&oacute;n actual (suma de celdas de nivel 1 y de nivel 2)
	alto = a_nivel_1_nombres.length * alto_total_nivel_1;
	if (nivel_1_desplegado != -1)
	{
		a_nivel_2_activo = eval("a_nivel_2_" + nivel_1_desplegado + "_nombres");
		alto = alto + a_nivel_2_activo.length * alto_total_nivel_2;
	}
	if (alto_visible_menu - alto > 0)
	{
		limite_subida = top_inicio;
	}
	else
	{
		limite_subida = top_inicio - (alto - alto_visible_menu);
	}
	
	//Se suben todas las capas del nivel 1 y las de los subniveles asociados
	if (div_1_0.style.pixelTop > limite_subida)
	{
		subida_scroll = 5;
		if (subida_scroll > (div_1_0.style.pixelTop - limite_subida))
		{
			subida_scroll = (div_1_0.style.pixelTop - limite_subida);
		}
		for (i=0;i<a_nivel_1_nombres.length;i++)
		{
			//Se suben el elemento de nivel 1 actual
			capa = eval("div_1_" + i);
			capa.style.pixelTop = capa.style.pixelTop - subida_scroll;
			delete capa;
			
			if (a_nivel_1_hijos[i])
			{
				//Se suben los elementos de nivel 3 asociados indirectamente al nivel 1 actual
				a_nivel_2_hijos = eval("a_nivel_2_" + i + "_hijos");
				for (h=0;h<a_nivel_2_hijos.length;h++)
				{
					if (a_nivel_2_hijos[h])
					{
						capa = eval("div_3_" + i + "_" + h);
						capa.style.pixelTop = capa.style.pixelTop - subida_scroll;
						delete capa;
					}	
				}
				delete a_nivel_2_hijos;
			}
		}
		int_scroll = setTimeout("scroll_up()",50);
		intervalo_scroll_activo = true;
	}
	else
	{
		intervalo_scroll_activo = false;
	}
	mostrar_ocultar_scrolls(-1,-1);
}


/**********************************************************************************/
// FUNCI&Oacute;N: SCROLL_DOWN - Funci&oacute;n que mueve el men&uacute; hacia abajo al pasar el mouse por
// encima del div con el scroll.
// RETURN: void
/**********************************************************************************/

function scroll_down()
{
	//Se bajan todas las capas del nivel 1 y las de subniveles asociados
	if (div_1_0.style.pixelTop < top_inicio)
	{
		bajada_scroll = 5;
		if (bajada_scroll > (top_inicio - div_1_0.style.pixelTop))
		{
			bajada_scroll = (top_inicio - div_1_0.style.pixelTop);
		}
		for (i=0;i<a_nivel_1_nombres.length;i++)
		{
			capa = eval("div_1_" + i);
			capa.style.pixelTop = capa.style.pixelTop + bajada_scroll;
			delete capa;
			
			if (a_nivel_1_hijos[i])
			{
				a_nivel_2_hijos = eval("a_nivel_2_" + i + "_hijos");
				for (h=0;h<a_nivel_2_hijos.length;h++)
				{
					if (a_nivel_2_hijos[h])
					{
						capa = eval("div_3_" + i + "_" + h);
						capa.style.pixelTop = capa.style.pixelTop + bajada_scroll;
						delete capa;
					}	
				}
				delete a_nivel_2_hijos;
			}
		}
		intervalo_scroll_activo = true;
		int_scroll = setTimeout("scroll_down()",50);
	}
	else
	{
		intervalo_scroll_activo = false;
	}
	mostrar_ocultar_scrolls(-1,-1);
}


/**********************************************************************************/
// FUNCI&Oacute;N: PARAR_MENU - Funci&oacute;n que para el movimiento de scroll del men&uacute; principal
// RETURN: void
/**********************************************************************************/

function parar_menu()
{
	if (intervalo_scroll_activo)
	{
		clearTimeout(int_scroll);
	}
	intervalo_scroll_activo = false;
}


/**********************************************************************************/
// FUNCI&Oacute;N: SCROLL_UP_NIVEL_3 - Funci&oacute;n que mueve los divs de nivel 3 hacia arriba
// al pasar por el 'boton' correspondiente de scroll de cada uno de ellos.
// RETURN: void
/**********************************************************************************/

function scroll_up_nivel_3(nivel_1, nivel_2)
{
	//Se calcula el tama&ntilde;o total del men&uacute; de nivel_3 activo
	a_nivel_3_activo = eval("a_nivel_3_" + nivel_1 + "_" + nivel_2 + "_nombres");
	div_3_activo = eval("div_3_" + nivel_1 + "_" + nivel_2);
	y_inf_nivel_3 = div_3_activo.style.pixelTop + a_nivel_3_activo.length * alto_total_nivel_3;
	if (alto_visible_menu + top_inicio - y_inf_nivel_3 > 0)
	{
		limite_subida = div_3_activo.style.pixelTop;
	}
	else
	{
		limite_subida = div_3_activo.style.pixelTop + (alto_visible_menu + top_inicio - y_inf_nivel_3);
	}
	
	//Se sube el div de nivel 3 actual
	if (div_3_activo.style.pixelTop > limite_subida)
	{
		subida_scroll_nivel_3 = 5;
		if (subida_scroll_nivel_3 > (div_3_activo.style.pixelTop - limite_subida))
		{
			subida_scroll_nivel_3 = (div_3_activo.style.pixelTop - limite_subida);
		}
		div_sup_scroll_3_activo = eval("div_sup_scroll_3_" + nivel_1 + "_" + nivel_2);
		div_inf_scroll_3_activo = eval("div_inf_scroll_3_" + nivel_1 + "_" + nivel_2);
		div_3_activo.style.pixelTop = div_3_activo.style.pixelTop - subida_scroll_nivel_3;
		alto_clip = (div_sup_scroll_3_activo.style.pixelTop - (div_3_activo.style.pixelTop - alto_imagen_scroll_up_general));
		div_3_activo.style.clip="rect(" + alto_clip + "px " + ancho_nivel_3 + "px " + (div_inf_scroll_3_activo.style.pixelTop - div_3_activo.style.pixelTop) + "px 0px)";
		int_scroll_nivel_3 = setTimeout("scroll_up_nivel_3(" + nivel_1 + "," + nivel_2 + ")",50);
		intervalo_scroll_nivel_3_activo = true;
	}
	else
	{
		intervalo_scroll_nivel_3_activo = false;
	}
	mostrar_ocultar_scrolls(nivel_1,nivel_2);
}


/**********************************************************************************/
// FUNCI&Oacute;N: SCROLL_DOWN_NIVEL_3 - Funci&oacute;n que mueve los divs de nivel 3 hacia abajo
// al pasar por el 'boton' correspondiente de scroll de cada uno de ellos.
// RETURN: void
/**********************************************************************************/

function scroll_down_nivel_3(nivel_1, nivel_2)
{
	div_3_activo = eval("div_3_" + nivel_1 + "_" + nivel_2);
	limite_superior = top_inicio + ((nivel_1 + 1) * alto_total_nivel_1 + nivel_2 * alto_total_nivel_2);
	//Al limite superior hay que quitarle la desaparici&oacute;n superior del men&uacute; general
	primer_div = eval("div_1_0");
	correccion = top_inicio - primer_div.style.pixelTop;
	limite_superior = limite_superior - correccion;
	//Se baja el div de nivel 3 actual
	if (div_3_activo.style.pixelTop < limite_superior)
	{
		bajada_scroll_nivel_3 = 5;
		if (bajada_scroll_nivel_3 > (limite_superior - div_3_activo.style.pixelTop))
		{
			bajada_scroll_nivel_3 = (limite_superior - div_3_activo.style.pixelTop);
		}
		div_sup_scroll_3_activo = eval("div_sup_scroll_3_" + nivel_1 + "_" + nivel_2);
		div_inf_scroll_3_activo = eval("div_inf_scroll_3_" + nivel_1 + "_" + nivel_2);
		div_3_activo.style.pixelTop = div_3_activo.style.pixelTop + bajada_scroll_nivel_3;
		alto_clip = (div_sup_scroll_3_activo.style.pixelTop - (div_3_activo.style.pixelTop - alto_imagen_scroll_up_general));
		div_3_activo.style.clip="rect(" + alto_clip + "px " + ancho_nivel_3 + "px " + (div_inf_scroll_3_activo.style.pixelTop - div_3_activo.style.pixelTop) + "px 0px)";
		int_scroll_nivel_3 = setTimeout("scroll_down_nivel_3(" + nivel_1 + "," + nivel_2 + ")",50);
		intervalo_scroll_nivel_3_activo = true;
	}
	else
	{
		intervalo_scroll_nivel_3_activo = false;
	}
	mostrar_ocultar_scrolls(nivel_1,nivel_2);
}


/**********************************************************************************/
// FUNCI&Oacute;N: PARAR_MENU_NIVEL_3 - Funci&oacute;n que para el movimiento de scroll del men&uacute; de nivel 3)
// RETURN: void
/**********************************************************************************/

function parar_menu_nivel_3()
{
	if (intervalo_scroll_nivel_3_activo)
	{
		clearTimeout(int_scroll_nivel_3);
	}
	intervalo_scroll_nivel_3_activo = false;
}


//SE ESCRIBE EL MEN&Úacute; Y SE CORRIGE LA TRANSPARENCIA DE IMÁGENES PNG
escribir_menu();
corrigePNG();

