var lasttimeout = null;
var lastul = null;

function realhide(element) {
  element.style.visibility = "hidden";
}

function cancelhide() {
  if (lasttimeout)
    window.clearTimeout(lasttimeout);
}

function hideb(element) {
  var a = element.firstChild;
  while (a.nodeName != "A") {
    a = a.nextSibling;
  }
  var ul = a;
  while (ul.nodeName != "UL") {
    ul = ul.nextSibling;
  }
  function myhide() {
    realhide(ul);
    lasttimeout = null;
  }
  lasttimeout = window.setTimeout(myhide, 100);
  lastul = ul;
}

var agent = navigator.userAgent.toLowerCase();
var ver = agent.indexOf("msie");
var is5 = false;
if (ver != -1) {
  is5 = (parseInt(agent.substr(ver+5,1)) < 6);
}
var ieto55 = (agent.indexOf("msie") != -1) && (agent.indexOf("opera") == -1) && is5;

function showb(element) {
  var a = element.firstChild;
  while (a.nodeName != "A") {
    a = a.nextSibling;
  }
  var ul = a;
  while (ul.nodeName != "UL") {
    ul = ul.nextSibling;
  }
  if ((lastul != ul) && (lastul != null))
    realhide(lastul);
  else
    cancelhide();
  if (ul.style.left == 0) {
    var cur = a;
    var leftsize = 0;
    var topsize = 0;
    do {
      leftsize += cur.offsetLeft;
      topsize += cur.offsetTop;
      cur = cur.offsetParent;
    } while (cur);
    ul.style.left = leftsize + "px";
    ul.style.top = (topsize + a.offsetHeight) + "px";
    if (ieto55)
      if (ul.hasChildNodes())
        for (var i = 0; i < ul.childNodes.length; ++i)
          ul.childNodes[i].style.marginLeft = "-1em";
  }
  ul.style.visibility = "visible";
}
