var activeHeader = null;
var activeMenu = null;

// 
// Sets the current header and menu
//
function setMenu(menuHeaderId,menuId) {

  var top = 0;
  var left = 0;
  var currentEle;
    
    if(activeHeader != null && activeMenu != null) {
      if(activeMenu.style.visibility != 'hidden') {
        activeMenu.style.visibility = 'hidden';
        showSelect();
      }
    }
    
    activeHeader = (document.getElementById) ? document.getElementById(menuHeaderId) :
                   ((document.all) ? document.all(menuHeaderId) : null);
    
    activeMenu = (document.getElementById) ? document.getElementById(menuId) :
                   ((document.all) ? document.all(menuId) : null);  
    
    currentEle = activeHeader;

    // Find the top and left of header and its parent elements
    while(currentEle.tagName.toLowerCase() != 'body') {
      top += currentEle.offsetTop;
      left += currentEle.offsetLeft;
      currentEle = currentEle.offsetParent;
    }

    // Add the width of the header, and width of extra image.
    top += (activeHeader.offsetHeight);
    activeMenu.style.left = left - 1;
    activeMenu.style.top = top;

    hideSelect();
    activeMenu.style.visibility = 'visible';

    event.cancelBubble = true;
    
}

//
// hide the current menu and reset vars
//
function hideMenu() {

  if(activeHeader != null && activeMenu != null) {		
    activeMenu.style.visibility = 'hidden';
    activeHeader = null;
    activeMenu = null;
    showSelect();
  }
  
}

//
// show dropdown when menu is hidden
//
function showSelect() {
  
  if (document.all) {
    var obj;

    for(var i = 0; i < document.all.tags("select").length; i++) {
      obj = document.all.tags("select")[i];
      if(!obj || !obj.offsetParent) continue;
        obj.style.visibility = 'visible';
    }
  }
}

//
// hide dropdown so menu can cover it when menu is visible
//
function hideSelect() {

  if (document.all) {
    var obj;
    var currentEle;
    var top = 0;
    var left = 0;
    var menuHeight;
    var timeout;

    for(var i = 0; i < document.all.tags("select").length; i++) {
    
      obj = document.all.tags("select")[i];
      currentEle = obj;

      while(currentEle.tagName.toLowerCase() != 'body') {
        top += currentEle.offsetTop;
        left += currentEle.offsetLeft;
        currentEle = currentEle.offsetParent;
      }
    
      if(activeMenu != null) {
        menuHeight = (activeMenu.offsetTop + activeMenu.offsetHeight);
        if(top < menuHeight) {			
          if((left < (activeMenu.offsetLeft + activeMenu.offsetWidth)) && (left + obj.offsetWidth > activeMenu.offsetLeft)) 
          obj.style.visibility = 'hidden';
        }
      }
    
      top = 0;
      left = 0;
    }
  }
}