
function posiciona_divs_inicio()
{
	ancho_menu = 190;
	ancho_submenu = 200;
	indentado_submenu = 4;
	for (i=0; i < menus.length; i=i+2)
	{
		//Si el submenu es de segundo o mayor nivel, se busca su posicion en funcion de quien depende (padre): se pone a su lado
		//Es necesario sumar anchos y altos, ya que JavaScript no parece ser capaz de reconocer las coordenadas actuales de un div
		//que se ha movido antes
		padre_actual = menus[(i + 1)];
		x = 0;
		y = 0;
		k = (i + 1);
		j = 0;
		while (padre_actual != "menu_0")
		{
			//La coordenada y es la suma de las coordenadas y relativas de cada uno de los padres
			//La coordenada x es la suma de anchos de padres y la coordenada x absoluta del primer padre
			x = x + ancho_submenu;
			y = y + xOffsetTop(padre_actual);
			
			//Se busca de quien depende a su vez el padre
			for (k=i-2; k >= 0; k=k-2)
			{
				if (menus[k] == padre_actual)
				{
					padre_actual = menus[k + 1];
					j = k;
					k = -1;
				}
			}
			k = j + 1;
		}
		
		//Si es un submenu de segundo o mayor nivel, hay que indentarlo en el de nivel anterior
		if (k != i + 1)
		{
			x = x - indentado_submenu;
		}
		x = x + xOffsetLeft(menus[k - 1]) + ancho_menu;
		y = y + xOffsetTop(menus[i]);
		
		//Se mueven los divs
		k = i / 2;
		xMoveTo(submenus[k], x, y);
	}
}
				
window.onload = function()
{
	carga_completa = true;
	posiciona_divs_inicio();
}

			
function oculta_submenu(div)
{
	if (carga_completa)
	{
		clearTimeout(retardo_hijos);
		//retardo_hijos = setTimeout("ocultar_submenu_e_hijos('" + div + "')", tiempo_retardo);
		ocultar_submenu_e_hijos(div);
		clearTimeout(retardo);
		retardo = setTimeout("ocultar_padres_y_abuelos('" + div + "')", tiempo_retardo);
	}
}

function ocultar_submenu_e_hijos(div)
{
	//Se busca la posicion del div actual en la matriz de submenus
	for (i=0; i < submenus.length; i++)
	{
		if (submenus[i] == div)
		{
			j = i;
			i = submenus.length;
		}
	}
	j = j * 2;

	//Se ponen en la matriz de divs a ocultar el submenu actual y sus hijos, nietos, etc.
	var divs_a_ocultar = new Array();
	divs_a_ocultar[0] = div;
	d = 1;
	var hijos_divs_a_ocultar = new Array();
	hijos_divs_a_ocultar[0] = menus[j];
	h = 1;
	for (k=0; k < hijos_divs_a_ocultar.length; k++)
	{
		hijo_actual = hijos_divs_a_ocultar[k];
		for (i=j+2; i < menus.length; i=i+2)
		{
			if (menus[i + 1] == hijo_actual)
			{
				divs_a_ocultar[d] = submenus[i/2];
				d = d + 1;
				hijos_divs_a_ocultar[h] = menus[i];
				h = h + 1;
			}
		}
	}

	//Se ocultan los divs
	for (i=0; i < divs_a_ocultar.length; i++)
	{
		xHide(divs_a_ocultar[i]);
	}
}

function ocultar_padres_y_abuelos(div)
{
	//Se busca la posicion del div a ocultar en la matriz de submenus
	for (i=0; i < submenus.length; i++)
	{
		if (submenus[i] == div)
		{
			j = i;
			i = submenus.length;
		}
	}
	j = j * 2;
	var divs_a_ocultar = new Array();
	d = 0;
	//Se ponen en la matriz de divs a ocultar los padres, abuelos, etc., del actual
	if (menus[j + 1] != "menu_0")
	{
		padre_actual = menus[j + 1];
		for (i=j; i >= 0; i=i-2)
		{
			if (menus[i] == padre_actual)
			{
				divs_a_ocultar[d] = submenus[i/2];
				if (menus[i + 1] != "menu_0")
				{
					padre_actual = menus[i + 1];
				}
				d = d + 1;
			}
		}
	}
		
	//Se ocultan los divs
	for (i=0; i < divs_a_ocultar.length; i++)
	{
		xHide(divs_a_ocultar[i]);
	}
}


function muestra_submenu(div)
{
	if (carga_completa)
	{
		//Se busca la posicion del div a mostrar en la matriz de submenus
		for (i=0; i < submenus.length; i++)
		{
			if (submenus[i] == div)
			{
				j = i;
				i = submenus.length;
			}
		}
		j = j * 2;
		var divs_a_mostrar = new Array();
		divs_a_mostrar[0] = div;
//alert(divs_a_mostrar[0]);
		d = 1;
		//Se buscan los padres y abuelos del div a mostrar y, si tiene, tambien se insertan en la matriz de divs a mostrar
		//Tambien se crea la matriz de padres y abuelos del div a mostrar
		if (menus[j + 1] != "menu_0")
		{
			padre_actual = menus[j + 1];
			for (i=j-2; i >= 0; i=i-2)
			{
				if (menus[i] == padre_actual)
				{
					divs_a_mostrar[d] = submenus[i/2];
//alert(divs_a_mostrar[d]);
					if (menus[i + 1] != "menu_0")
					{
						padre_actual = menus[i + 1];
					}
					d = d + 1;
				}
			}
		}
		
		//Se buscan los hijos del div a mostrar
		var hijos_div_a_mostrar = new Array();
		d = 0;
		for (i=j+2; i < menus.length; i=i+2)
		{
			if (menus[i + 1] == menus[j])
			{
				hijos_div_a_mostrar[d] = submenus[i/2];
//alert("OCULTAR: " + divs_a_ocultar[d]);				
				d = d + 1;
			}
		}
		
		//Se ocultan todos los divs que no están en la matriz de divs a mostrar ni en la de hijos del div a mostrar
		for (i=0; i < submenus.length; i++)
		{
			ocultar_div = true;
			
			//Se mira si el div esta en la matriz de divs a mostrar
			for (n=0; n < divs_a_mostrar.length; n++)
			{
				if (submenus[i] == divs_a_mostrar[n])
				{
					ocultar_div = false;
					n = divs_a_mostrar.length;
				}
			}
			
			//Si no se ha encontrado, se mira si es un hijo del div a mostrar
			if (ocultar_div)
			{
				for (n=0; n < hijos_div_a_mostrar.length; n++)
				{
					if (submenus[i] == hijos_div_a_mostrar[n])
					{
						ocultar_div = false;
						n = hijos_div_a_mostrar.length;
					}
				}
			}
			if (ocultar_div)
			{
				xHide(submenus[i]);
			}
		}

		clearTimeout(retardo);
		clearTimeout(retardo_hijos);

		//Se muestra el div solicitado, su padre y sus abuelos (por si no estaban mostrandose ya)
		for (j=0; j < divs_a_mostrar.length; j++)
		{
//alert("Div pasado: " + div + "\nMostrar div: " + divs_a_mostrar[j]);
			xShow(divs_a_mostrar[j]);
		}
	}
	else
	{
		alert("La página no está totalmente cargada todavía; por favor, espera unos segundos...");
		//Die Website ist noch nicht vollständig heruntergeladen, bitte warten Sie ein paar Sekunden...
		//Drücken Sie Strg + D um Sunway.es zu Ihren 'Favoriten' hinzuzufügen
	}
}
				
function iluminar_celda(celda)
{
	celda.style.backgroundColor = "#3661ff";
	celda.style.color = "#ffffff";
}
				
function iluminar_link(link)
{
	link = eval(link);
	link.style.color = "#ffffff";
}
				
function apagar_celda(celda)
{
	celda.style.backgroundColor = "#c9d5ff";
	celda.style.color = "#000000";
}
				
function apagar_link(link)
{
	link = eval(link);
	link.style.color = "#000000";
}


