var ie4=document.all
var ns6=document.getElementById&&!document.all
var ns4=document.layers
var TablaRef = document.getElementById('tabla');
function showmenu(e,which){

if (!document.all&&!document.getElementById&&!document.layers)
return

clearhidemenu()

menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
//nuevo para calculo de posición del menu

            var isIE=document.all?true:false;
            var isDOM=document.getElementById?true:false;
            var isNS4=document.layers?true:false;
              //Calculamos el ancho según el navegador
              if (isDOM)
              {
                    var objeto = document.getElementById("td"+which+"");
                    box1 =document.getElementById("td"+which+"").offsetWidth;
                    box3 =document.getElementById("td"+which+"").offsetLeft;
              }
              else if (isIE)
              {
              	    var objeto = "document.all.td'+which+';";
                    box1 =eval("document.all.td'+which+'.offsetWidth;");
                    box3 =eval("document.all.td'+which+'.offsetLeft;");
              }
              else if(isNS4)
              {
                    var objeto =document.layers['td"+which+"'];
                    box1 =document.layers['td"+which+"'].offsetWidth;
                    box3 =document.layers['td"+which+"'].offsetLeft;
              }
        //calculamos el punto de altura
	var curtop = 0;
	if (objeto.offsetParent)
	{
		while (objeto.offsetParent)
		{
			curtop += objeto.offsetTop
			objeto = objeto.offsetParent;
		}
	}
	else if (objeto.y)
		curtop += objeto.y;


var ancho = box3+box1+2;
var alto = curtop;
//fin nuevo

if (ie4||ns6)
menuobj.innerHTML=linkset[which]
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+linkset[which]+'</layer>')
menuobj.document.close()
}

menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height

//Desde este punto calcula la posición del menú
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y

//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX

//same concept with the vertical position LAS COMENTO PARA QUE NO SUBA EL MENU HACIA ARRIBA
/* if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else */
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : event
//fin de calculo de posición de menú

//nuevas de posición que sobreescriben los valores de las anteriores
menuobj.thestyle.left=ie4? ancho+2 : ns6? window.pageXOffset+eventX : ancho+2
menuobj.thestyle.top=ie4? alto : ns6? window.pageYOffset+eventY : alto
//fin de nuevas


menuobj.thestyle.visibility="visible"
//TEORICO PARA MOSTRAR

var DivRef = document.getElementById('popmenu');
var IfrRef = document.getElementById('ifrmenu');
IfrRef.style.width = menuobj.offsetWidth;
IfrRef.style.height = menuobj.offsetHeight;
IfrRef.style.top = menuobj.thestyle.top;
IfrRef.style.left = menuobj.thestyle.left;
IfrRef.style.zIndex = menuobj.thestyle.zIndex + 1;
IfrRef.style.display = "block";


return false
}




function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
//menuobj.thestyle.display =(ie4||ns6)? "block" : "none";
//TEORICO PARA BORRAR
var IfrRef = document.getElementById('ifrmenu');
IfrRef.style.display = "none";
}

function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}

function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",600)
}

function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}

function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}

if (ie4||ns6)
document.onclick=hidemenu
