var aspnm_hideSelectElems = true;

// Hides HTML select elements that are overlapping the given menu group 
function aspnm_hideSelectElements(group)
{
  if (document.getElementsByTagName) 
  {
    var arrElements = document.getElementsByTagName('select'); 
    if (aspnm_hideSelectElems) 
    {
      for (var i = 0; i < arrElements.length; i++) 
        if (aspnm_objectsOverlapping(document.all[group], arrElements[i]))
          arrElements[i].style.visibility = 'hidden';          
    }
  }
}


// Whether the given objects are overlapping 
function aspnm_objectsOverlapping(obj1, obj2)
{
  var result = true; 
  var obj1Left = aspnm_pageX(obj1) - window.document.body.scrollLeft; 
  var obj1Top = aspnm_pageY(obj1) - window.document.body.scrollTop; 
  var obj1Right = obj1Left + obj1.offsetWidth; 
  var obj1Bottom = obj1Top + obj1.offsetHeight;
  var obj2Left = aspnm_pageX(obj2) - window.document.body.scrollLeft; 
  var obj2Top = aspnm_pageY(obj2) - window.document.body.scrollTop; 
  var obj2Right = obj2Left + obj2.offsetWidth; 
  var obj2Bottom = obj2Top + obj2.offsetHeight;
  
  if (obj1Right <= obj2Left || obj1Bottom <= obj2Top || 
      obj1Left >= obj2Right || obj1Top >= obj2Bottom) 
    result = false; 
  return result; 
}


// Determines whether the mouse pointer is currently over the given object 
function aspnm_isMouseOnObject(objName)
{
  if (objName)
  {
    var objLeft = aspnm_pageX(document.all[objName]) - window.document.body.scrollLeft + 1; 
    var objTop = aspnm_pageY(document.all[objName]) - window.document.body.scrollTop + 1; 
    var objRight = objLeft + document.all[objName].offsetWidth - 1; 
    var objBottom = objTop + document.all[objName].offsetHeight - 1;
  
    if ((event.x > objLeft) && (event.x < objRight) && 
        (event.y > objTop) && (event.y < objBottom))
      return true; 
    else  
      return false; 
  }
  else
    return false; 
}


// Calculates the absolute page x coordinate of any element
function aspnm_pageX(element)
{
  var x = 0;
  do 
  {
    if (element.style.position == 'absolute') 
    {
      return x + element.offsetLeft; 
    }
    else
    {
      x += element.offsetLeft;
      if (element.offsetParent) 
        if (element.offsetParent.tagName == 'TABLE') 
          if (parseInt(element.offsetParent.border) > 0)
          {
            x += 1; 
          }
    }
  }
  while ((element = element.offsetParent));
  return x; 
}


// Calculates the absolute page y coordinate of any element
function aspnm_pageY(element)
{
  var y = 0;
  do 
  {
    if (element.style.position == 'absolute') 
    {
      return y + element.offsetTop; 
    }
    else
    {
      y += element.offsetTop;
      if (element.offsetParent) 
        if (element.offsetParent.tagName == 'TABLE') 
          if (parseInt(element.offsetParent.border) > 0)
          {
            y += 1; 
          }
    }
  }
  while ((element = element.offsetParent));
  return y; 
}


// Restores all HTML select elements on the page 
function aspnm_restoreSelectElements()
{
  if (document.getElementsByTagName) 
  {
    var arrElements = document.getElementsByTagName('select'); 
    if (aspnm_hideSelectElems) 
      for (var i = 0; i < arrElements.length; i++) 
        arrElements[i].style.visibility = 'visible'; 
  }
}