// Browser detection
var agent  = navigator.appName.toLowerCase();
var dom    = (document.getElementById)? true : false;
var nn4    = (document.layers)? true : false;
var ie4    = (!dom && ie)? true : false;

// Menu specific
var menuTimeout;

function topToggleSelects(show) {
  var selectElements = [];
  selectElements = (dom) ? document.getElementsByTagName('select') : document.all.tags('select');
  for(var i = 0; i < selectElements.length; i++) {
    var theSelect = selectElements[i];
    if(!theSelect) continue;
    if(dom||ie4) {
      theSelect.style.visibility = show ? "inherit" : "hidden";
    } else {
      theSelect.visibility = show ? "inherit" : "hide";
    }
  }
  return true;
}

function topShowElem(prefix, menuId, skipTrans) {
  var elemId  = prefix+menuId;
  var showTrans = true;
  if (skipTrans)
    showTrans = false;

  topToggleSelects(false);

  if (dom) {
    if ((agent == 'microsoft internet explorer') && (showTrans)) {
      document.getElementById(elemId).filters[0].Apply();
      document.getElementById(elemId).style.visibility = "visible";
      document.getElementById(elemId).filters.revealTrans.transition=5;
      document.getElementById(elemId).filters[0].Play();
    } else {
      document.getElementById(elemId).style.visibility = "visible";
    }
  } else if (ie4) {
    document.all[elemId].style.visibility = "visible";
  } else if (nn4) {
    document.layers[elemId].visibility = "show";
  };
}

function topHideElem(elemId) {
  if (dom){
    document.getElementById(elemId).style.visibility = "hidden";
  }  else if (ie4) {
    document.all[elemId].style.visibility = "hidden";
  }  else if (nn4) {
    document.layers[elemId].visibility = "hide";
  };

  topToggleSelects(true);
}

function topHideMenu(prefix) {
  var i = 1;

  while (true) {
    var elemId = prefix+i;
    if (dom) {
      if (document.getElementById(elemId) == null)
          break;
    } else if (ie4) {
      if (document.all[elemId] == null)
        break;
    } else if (nn4) {
      if (document.layers[elemId] == null)
        break;
    } else {
      break;
    };
     topHideElem(elemId);
    i++;
  };

  if( menuTimeout )
      clearTimeout( menuTimeout );
}

