function hideLayer(whichLayer) {

  if (document.getElementById) {
// this is the way the standards work
    document.getElementById(whichLayer).style.visibility = "hidden";
  }
  else if (document.all) {
// this is the way old msie versions work
    document.all[whichlayer].style.visibility = "hidden";
  }
  else if (document.layers) {
// this is the way nn4 works
    document.layers[whichLayer].visibility = "hidden";
  }
}

function showLayer(whichLayer, event) {
  var x = 0;
  var y = 0;
  if (event != null) {
    x = mouseX(event);
    y = mouseY(event) - 5;
  }

  if (document.getElementById) {
// this is the way the standards work
    document.getElementById(whichLayer).style.visibility = "visible";
    if (x != 0) {
      document.getElementById(whichLayer).style.left = x;
      document.getElementById(whichLayer).style.top  = y;
    }
  }
  else if (document.all) {
// this is the way old msie versions work
    document.all[whichlayer].style.visibility = "visible";
    if (x != 0) {
      document.all[whichlayer].style.left = x;
      document.all[whichlayer].style.top  = y;
    }
  }
  else if (document.layers) {
// this is the way nn4 works
    document.layers[whichLayer].visibility = "visible";
    if (x != 0) {
      document.layers[whichLayer].left = x;
      document.layers[whichLayer].top  = y;
    }
  }
}

function mouseX(evt) {
  if (evt.pageX) return evt.pageX;
  else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
  else return null;
}

function mouseY(evt) {
  if (evt.pageY) return evt.pageY;
  else if (evt.clientY) return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
  else return null;
}
