var mnuSelected = '';
var hasDOM = false;
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;

if (document.getElementById) {
	hasDOM = true;
}

function showMenu(menu){
   if (document.getElementById(menu) == null) {return false;}

   x1 = document.getElementById(menu).offsetLeft;
   x2 = document.getElementById(menu).offsetLeft + document.getElementById(menu).offsetWidth;
   y1 = document.getElementById(menu).offsetTop;
   y2 = document.getElementById(menu).offsetTop + document.getElementById(menu).offsetHeight;


   if(mnuSelected != '') {
      clearTimer();
      hideMenu(mnuSelected);
   }

   if (hasDOM == true) {
      document.getElementById(menu).style.visibility = 'visible';
   } else {
      eval("document." + menu + ".visibility='show';");
   }
   mnuSelected = menu;

   if (navigator.appName == "Microsoft Internet Explorer")  {
      hideElement("SELECT");
      hideElement("OBJECT");
      hideElement("IFRAME");
   }
}


function hideMenu(menu){
   if (document.getElementById(menu) == null) {return false;}

   if(mnuSelected!='') {
      if (hasDOM == true) {
         document.getElementById(menu).style.visibility = 'hidden';
      } else {
         eval("document." + menu + ".visibility='hide';");
      }
   }

   if (navigator.appName == "Microsoft Internet Explorer")  {
      showElement("SELECT");
      showElement("OBJECT");
      showElement("IFRAME");
   }
}


function slowHide(currHide) {
   menutimer = setTimeout("hideMenu('" + currHide + "');", 700);
}


function clearTimer() {
   clearTimeout(menutimer);
}


function hideElement(elmID)
{
   for (i = 0; i < document.all.tags(elmID).length; i++)
   {
      obj = document.all.tags(elmID)[i];
      if (! obj || ! obj.offsetParent) continue;

      // Find the element's offsetTop and offsetLeft relative to the BODY tag. //
      objLeft   = obj.offsetLeft;
      objTop    = obj.offsetTop;
      objParent = obj.offsetParent;

      while (objParent.tagName.toUpperCase() != "BODY")
      {
         objLeft  += objParent.offsetLeft;
         objTop   += objParent.offsetTop;
         objParent = objParent.offsetParent;
      }


      if (((objLeft >= x1 && objLeft <= x2) || ((objLeft + obj.offsetWidth) >= x1 && (objLeft + obj.offsetWidth) <= x2)) &&
          ((objTop  >= y1 && objTop  <= y2) || ((objTop + obj.offsetHeight) >= y1 && (objTop + obj.offsetHeight) <= y2))) {
         obj.style.visibility = "hidden";
      }


      if (((x1 >= objLeft && x1 <= (objLeft + obj.offsetWidth)) || (x2 >= objLeft && x2 <= (objLeft + obj.offsetWidth))) &&
          ((y1 >= objTop  && y1 <= (objTop + obj.offsetHeight)) || (y2 >= objTop && y2  <= (objTop + obj.offsetHeight)))) {
         obj.style.visibility = "hidden";
      }
   }
}


function showElement(elmID)
{
   for (i = 0; i < document.all.tags(elmID).length; i++)
   {
      obj = document.all.tags(elmID)[i];
      if (! obj || ! obj.offsetParent) continue;
      obj.style.visibility = "";
    }
}
