//////////////////////////////////////////////
/// Obtener coordenadas del raton
//////////////////////////////////////////////
var IE = document.all?true:false 
if (!IE) document.captureEvents(Event.MOUSEMOVE) 


document.onmousemove = posicRatonXY 
var posicX = 0 
var posicY = 0 

function posicRatonXY(e)
{ 
	if (IE)
	{
		posicX = event.clientX + document.body.scrollLeft
		posicY = event.clientY + document.body.scrollTop
	} 
	else
	{
		posicX = e.pageX
		posicY = e.pageY
	} 
	if (posicX < 0)
		posicX = 0
	if (posicY < 0)
		posicY = 0 
	return true
} 

//////////////////////////////////////////////
//// Ocultar y desocultar submenus
//////////////////////////////////////////////

function ocultarSubMenu(numMenu)
{
	if(posicX < Xini || posicX > Xfin || posicY < Yini || posicY > Yfin)
	{
		document.getElementById("subMenu" + numMenu).style.display = 'none'
		//alert("se supone que debe salir " + posicX + " " + Xini + " " + Xfin + " " + posicY+ " " + Yini + " " + Yfin)
	}
	/*else
		alert("se supone que esta dentro " + posicX + " " + Xini + " " + Xfin + " " + posicY+ " " + Yini + " " + Yfin)*/
}

function calculaCoordenadas(numMenu)
{
	Xini = document.getElementById("menu" + numMenu).offsetLeft + 2 + document.getElementById("tablaMenu").offsetLeft + desplazamientoX
	Yini = document.getElementById("menu" + numMenu).offsetTop + 2 + document.getElementById("tablaMenu").offsetTop + desplazamientoY
//	Yini = document.getElementById("tablaMenu").offsetTop + 2
	if(posicionamiento == "Horizontal")
	{
		Xfin = Xini + wBoton
		Yfin = Yini + hBoton*(1 + subMenuINI[numMenu].length)
	}
	else
	{
		Xfin = Xini + (wBoton*2)
		Yfin = Yini + hBoton*(subMenuINI[numMenu].length)
	}
	//alert(Yini + " hBoton = " + hBoton + "longitud " + subMenuINI[numMenu].length)
}

function calculaDesplazamiento()
{   
	/// parentNode va en firefox y en IE ..... parentElement solo va en IE
	
	desplazamientoX = 0;
	desplazamientoY = 0;
	padre = document.getElementById(idMenu)
	do
	{
		//alert(" tag--> " + padre.tagName + " offsetLeft --> " + padre.offsetLeft + " offsetTop --> " + padre.offsetTop + " padre " + padre + " id = " + padre.id)
		if(padre.tagName == "TD")
		{
			desplazamientoX = desplazamientoX + padre.offsetLeft
			//alert("Se suma a la X : " + padre.tagName + " nombre " + padre.id)
		}
		if(padre.tagName == "TABLE" || padre.tagName == "TR")
		{
			desplazamientoY = desplazamientoY + padre.offsetTop
			//alert("Se suma a la Y : " + padre.tagName + " nombre " + padre.id)
		}
		padre= padre.parentNode;
	}
	while(padre.parentNode)
}

function visibleSubMenu(numMenu)
{
	//alert(posicX + " " + posicY)
	document.getElementById("subMenu" + numMenu).style.display = "block"
	for(i=0;i<totalOpciones;i++)
	{
		if(i!= numMenu)
			document.getElementById("subMenu" + i).style.display = "none"
	}
}

function verificaSubMenu(numMenu)
{
	/// Obtenemos la coordenadas iniciales del menu y las
	/// coordenadas finales para comprobar si estamos dentro
	/// o fuera de cualquiera de ellos
	calculaCoordenadas(numMenu)
	//alert("yfin " + Yfin + " yIni " + Yini);
	/// LLamo a una funcion de retardo en la que una vez
	/// transcurrrido el tiempo de retardo comprobaremos 
	/// si nos encontramos aun dentro del menu o si estamos fuera
	/// y en caso de estar fuera transcurrido ese tiempo
	/// ocultamos el submenu
	tiempo = retardo * 1000
	setTimeout("ocultarSubMenu(" + numMenu + ")",tiempo)
}

////////////////////////////////////////////////
/// Adaptar contenido y vinculos
////////////////////////////////////////////////

function asignarLinks(numSubMenu,celdaSubmenu)
{
	var form2 = document.getElementById('formFiltro');
	if (celdaSubmenu != -1)
		window.location.href=linkSubMenu[numSubMenu][celdaSubmenu];//+".htm";
	else
	{
		//window.location.href=linkMenu[numSubMenu];//+".htm";
		form2.action = linkMenu[numSubMenu]; //.formFiltro.action = linkMenu[numSubMenu];
		document.getElementById('idTipoBusqueda').value = parametros[numSubMenu];
		form2.submit();//formFiltro.submit();
	}
}

function asignarContenidoMenu(numSubMenu,celdaSubmenu)
{
	cadena = ""
	if (celdaSubmenu != -1)
		if(conImagenes == "No")
			cadena = subMenuINI[numSubMenu][celdaSubmenu];
		else
			cadena = "<img src='" + rutaImagenes + linkSubMenu[numSubMenu][celdaSubmenu] + extImagenes + "' width='" + wBoton + "' height='" + (hBoton -5) + "'>"
	else
		if(conImagenes == "No")
			cadena = menuINI[numSubMenu];
		else
			cadena = "<img src='" + rutaImagenes + linkMenu[numSubMenu] + extImagenes + "' width='" + wBoton + "' height='" + (hBoton - 5) + "'>"
	return cadena;
}

//////////////////////////////////////////////
/// Construccion de menus y submenus
//////////////////////////////////////////////

function crearSubMenu(numSubMenu)
{
	pos="Vertical"//subMenuINI[numSubMenu].length
		
	subMenu = "<div id='subMenu" + numSubMenu + "'  onMouseOut='verificaSubMenu(" + numSubMenu + ")' style='{display:none; position:absolute;}'>"
	subMenu += "<table border='0'>"
	for(j=0;j<subMenuINI[numSubMenu].length;j++)
	{
		if(pos=="Vertical" || j==0)
			subMenu+="<tr>"
		
		subMenu+="<td id='cssSub1" + numSubMenu + j + "'"
		subMenu+=" onMouseOver='cambiaColor(1"+ numSubMenu +  j +",1,true)'"
		subMenu+=" onMouseOut='cambiaColor(1"+ numSubMenu +  j +",1,false)'"
		subMenu+=" onclick='asignarLinks(" + numSubMenu + "," + j + ")'"
		subMenu+=" class='cssSubmenu' width='" + wBoton + "' height='" + hBoton + "'>" + asignarContenidoMenu(numSubMenu,j) + "</td>"
		
		if(pos=="Vertical" || j==(1-1))
			subMenu+="</tr>"
	}		
	subMenu+="</table></div>"
	return subMenu
}

function crearMenu()
{
	var tablaMenu

	llenarMenuINI()
	subMenus=""
	tablaMenu ="<table id='tablaMenu' border='0' cellpadding='0' cellspacing='0'>"
	for(i=0;i<totalOpciones;i++)
	{
		if(posicionamiento=="Vertical" || i==0)
			tablaMenu+="<tr>"
		
		tablaMenu+="<td class='cssMenu' id='menu" + i + "' width='" + wBoton + "' height='" + hBoton + "'"
		tablaMenu+=" onMouseOver='visibleSubMenu(" + i + ");cambiaColor(" + i + ",0,true)'"
		tablaMenu+=" onMouseOut='verificaSubMenu(" + i + ");cambiaColor(" + i + ",0,false)'"
		tablaMenu+=" onclick='asignarLinks(" + i + ",-1)'"
		tablaMenu+=">" + asignarContenidoMenu(i,-1)
		tablaMenu+="</td>"
		subMenus+=crearSubMenu(i)
		if(posicionamiento=="Vertical" || i==(totalOpciones-1))
			tablaMenu+="</tr>"
	}		
	tablaMenu+="</table>"
	tablaMenu+=subMenus
	
	document.getElementById(idMenu).innerHTML = tablaMenu
	document.body.innerHTML = subMenus + document.body.innerHTML;
}

function construyeMenu()
{
	crearMenu();
	calculaDesplazamiento();
	for(i=0;i<totalOpciones;i++)
	{
		if(posicionamiento == "Horizontal")
		{
			document.getElementById("subMenu" + i).style.left = document.getElementById("menu" + i).offsetLeft + 2 + document.getElementById("tablaMenu").offsetLeft + desplazamientoX
			document.getElementById("subMenu" + i).style.top = document.getElementById("menu" + i).offsetTop + 2 + hBoton + document.getElementById("tablaMenu").offsetTop + desplazamientoY
		}
		else
		{
			document.getElementById("subMenu" + i).style.left = document.getElementById("menu" + i).offsetLeft + 2 + wBoton + document.getElementById("tablaMenu").offsetLeft  + desplazamientoX
			document.getElementById("subMenu" + i).style.top = document.getElementById("menu" + i).offsetTop + 2 + document.getElementById("tablaMenu").offsetTop  + desplazamientoY
		}
	}
}

function posicionaMenu()
{
	for(i=0;i<totalOpciones;i++)
	{
		if(posicionamiento == "Horizontal")
		{
			document.getElementById("subMenu" + i).style.left = document.getElementById("menu" + i).offsetLeft + 2 + document.getElementById("tablaMenu").offsetLeft + desplazamientoX
			document.getElementById("subMenu" + i).style.top = document.getElementById("menu" + i).offsetTop + 2 + hBoton + document.getElementById("tablaMenu").offsetTop + desplazamientoY
		}
		else
		{
			document.getElementById("subMenu" + i).style.left = document.getElementById("menu" + i).offsetLeft + 2 + wBoton + document.getElementById("tablaMenu").offsetLeft + desplazamientoX
			document.getElementById("subMenu" + i).style.top = document.getElementById("menu" + i).offsetTop + 2 + document.getElementById("tablaMenu").offsetTop + desplazamientoY
		}
	}
}

