
var arDivsIniciales = new Array();
var arDivsAbiertos = new Array();

function MostrarOcultarMenu(menuHijosDivId)
{
	var menuHijosDiv = document.getElementById(menuHijosDivId)	
	var mostrar = menuHijosDiv.style.display == "none";
	if (mostrar)
	{
		//Cargo en el array los divs padres del div.
		var arDivsPadres = new Array();			
		var divPadre = menuHijosDiv.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
		var recorrer = true;
		while (recorrer)
		{
			if (divPadre.id	!= "DivMenu")
			{
				arDivsPadres.push(divPadre);
				var divPadre = divPadre.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
			}
			else
			{
				recorrer = false;
			}
		}
		//Cierro los divs que estaban abiertos si no son los padres del div.
		for(var i = 0; i < arDivsAbiertos.length; i++)
		{
			var ocultar = true;
			for(var j = 0; j < arDivsPadres.length; j++)
			{
				if (arDivsPadres[j].id == arDivsAbiertos[i].id)
				{
					ocultar = false;
					break;
				}
			}
			if (ocultar && arDivsAbiertos[i].style.display == "")
			{
				arDivsAbiertos[i].style.display = "none";
			}
		}
		//Limpio el array de divs abiertos.
		arDivsAbiertos = new Array();
		//Si el div no esta en el array de los divs que se muestran inicialmente lo agrego al array de divs abiertos.
		var agregar = true;
		for(var i = 0; i < arDivsIniciales.length; i++)
		{
			if (arDivsIniciales[i].id == menuHijosDiv.id)
			{
				agregar = false;
				break;
			}
		}
		if (agregar)
		{
			arDivsAbiertos.push(menuHijosDiv);
		}
	}
	menuHijosDiv.style.display = mostrar ? "" : "none";	
}

function InicializarMenu(menuOpcionId)
{
	var recorrer = true;
	var menuOpcion = document.getElementById(menuOpcionId);
	if (menuOpcion!=null)
	{
	
		while (recorrer)
		{
			var menuHijosDiv;
			var tr;
			//Destaco la opcion
			DestacarMenuOpcion(menuOpcion);
			//Obtengo el tbody que contiene la opcion
			var tbody = menuOpcion.parentNode.parentNode.parentNode;
			//Si lo tiene, obtengo el div que contiene los hijos de la opcion
			if (tbody.rows.length >= 3)
			{
				tr = tbody.rows[2];
				menuHijosDiv = tr.cells[0].firstChild;
				MostrarDiv(menuHijosDiv);
			}				
			//Obtengo el div en el que esta la opcion.
			menuHijosDiv = tbody.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
			if (menuHijosDiv.id	!= "DivMenu")
			{		
				//Es un div con opciones hijas: continuo recorriendo.
				MostrarDiv(menuHijosDiv);			
				tr = menuHijosDiv.parentNode.parentNode.parentNode.rows[0];
				menuOpcion = tr.cells[2].firstChild;
			}
			else
			{
				//Es el div que contiene el menu: termino de recorrer.
				recorrer = false;
			}		
		}
	}
}

function DestacarMenuOpcion(menuOpcion)
{
if (menuOpcion!=null)
	{
	menuOpcion.style.color = "#30A8CD";
	}
}

function MostrarDiv(menuHijosDiv)
{
	//Mostrar el div.
	menuHijosDiv.style.display = "";
	//Para mantener siempre abiertos los divs que se muestran inicialmente, tengo que agregar el div al array arDivsIniciales, sino lo tengo
	//que agregar al array arDivsAbiertos.
	//arDivsIniciales.push(menuHijosDiv);
	arDivsAbiertos.push(menuHijosDiv);
}
