function Browser() {

  var ua, s, i;
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;
  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {this.isIE = true; this.version = parseFloat(ua.substr(i + s.length)); return;}
  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {this.isNS = true; this.version = parseFloat(ua.substr(i + s.length)); return;}
  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {this.isNS = true; this.version = 6.1; return;}}

  var browser = new Browser();
  var activeButton = null;

  if (browser.isIE) document.onmousedown = pageMousedown;
  if (browser.isNS) document.addEventListener("mousedown", pageMousedown, true);

function pageMousedown(event) {

  var el;

  if (!activeButton) return;
  if (browser.isIE) el = window.event.srcElement;
  if (browser.isNS) el = (event.target.className ? event.target : event.target.parentNode);
  if (el == activeButton) return;
  if (el.className != "menuButton"  && el.className != "menuItem" && el.className != "menu") resetButton(activeButton);}

function buttonClick(button, menuName) {

  button.blur();

  if (!button.menu)button.menu = document.getElementById(menuName);
  if (activeButton && activeButton != button) resetButton(activeButton);
  if (button.isDepressed) resetButton(button);
    else depressButton(button); return false;}

function buttonMouseover(button, menuName) {

  if (activeButton && activeButton != button) {resetButton(activeButton);
    if (menuName) buttonClick(button, menuName);}}

function depressButton(button) {

  var w, dw, x, y;
  button.className = "menuButtonActive";

  if (browser.isIE && !button.menu.firstChild.style.width) {
    w = button.menu.firstChild.offsetWidth;
    button.menu.firstChild.style.width = w + "px";
    dw = button.menu.firstChild.offsetWidth - w;
    w -= dw;
    button.menu.firstChild.style.width = w + "px";}

  x = getPageOffsetLeft(button);
  y = getPageOffsetTop(button) + button.offsetHeight;
  if (browser.isIE) {x += 2; y += 2;  }
  if (browser.isNS && browser.version < 6.1) y--;

  button.menu.style.left = x + "px";
  button.menu.style.top  = y + "px";
  button.menu.style.visibility = "visible";
  button.isDepressed = true;
  activeButton = button;}

function resetButton(button) {

  button.className = "menuButton";

  if (button.menu) button.menu.style.visibility = "hidden";

  button.isDepressed = false;
  activeButton = null;}

function getPageOffsetLeft(el) {

  return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);}

function getPageOffsetTop(el) {

  return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);}


