/////    menuup.js    ///////
// This works for both NN and IE
//   for a file-menu-like pulldown menu

var currentMenu=null;
var currentLabel=null;
var menuActive=false;

function menuDeactivate()
{   if ( menuActive )
    {  menuUp();
       menuActive=false;
    }
}

function menuActivate(event, label, id, dx, dy)
{   if ( ! menuActive )
    {  menuActive=true;
       menuDown(label, id, dx, dy);
       event.cancelBubble = true;        // for IE
       if (event.stopPropagation) event.stopPropagation();  // for NN
    }
    else
    {  menuDeactivate();  }
}

function menuDown(label, id, dx, dy)
{   if ( menuActive ) 
    {  menuUp();
       currentLabel = label;
       down(label, document.getElementById(id), dx, dy);
    }
}

function down(nd, menu, dx, dy)
{   if ( currentMenu ) menuUp();
    var x=xPosition(nd) + dx;
    var y=yPosition(nd) + dy;
    // var y=yPosition(document.getElementById("menuline"));
    menu.style.top = y + "px";
    menu.style.left = x + "px";
    menu.style.display = "block";
    currentMenu=menu;
}

function xPosition(nd)
{   var x=0;
    while ( nd )
    {  x += nd.offsetLeft;
       nd = nd.offsetParent;
    }
    return x;
}

function yPosition(nd)
{   var y=0;
    while ( nd )
    {  y += nd.offsetTop;
       nd = nd.offsetParent;
    }
    return y;
}

function menuUp()
{   if ( currentMenu ) 
    {  currentMenu.style.display = "none"; 
       currentMenu=null;
    }
    if ( currentLabel )
    { currentLabel=null;
    }
}
