/******************************************************************************
* menu.js                                                                     *
*                                                                             *
* Copyright 2000 by Mike Hall                                                 *
* http://www.brainjar.com                                                     *
*                                                                             *
* Code to operate the site navigation menu. Mimics the behavior of a standard *
* Windows application menu bar. Note that it requires the style sheet found   *
* in the main.css file along with menu elements coded in the target page.     *
******************************************************************************/

// Determine browser type (Netscape 6 or IE 5.5).

var isIE5 = (navigator.appVersion.indexOf("MSIE 5.5") > 0) ? 1 : 0;
var isNS6 = (navigator.userAgent.indexOf("Netscape6") > 0) ? 1 : 0;

// Global variable for tracking the currently active button.

var activeButton = null;
//var timeoutId = 0;

// Capture mouse clicks on the page so any active button can be deactivated.

if (isIE5)
  document.onmousedown = pageMousedown;
if (isNS6)
  document.addEventListener("mousedown", pageMousedown, true);

function pageMousedown(event) {

  var className;

  // If the object clicked on was not a menu button or item, close any active
  // menu.

  if (isIE5)
    className = window.event.srcElement.className;
  if (isNS6)
    className = (event.target.className ?
      event.target.className : event.target.parentNode.className);

  if (className != "menuButton" && className != "menuItem" && activeButton)
    resetButton(activeButton);
}



function buttonMouseover(event, button, menuName) {

  // If any other button menu is active, deactivate it and activate this one.
  // Note: if this button has no menu, leave the active menu alone.

  if (menuName && activeButton && activeButton != button) {
    resetButton(activeButton);
    if (menuName)
      buttonClick(event, button, menuName);
  }
}

function buttonClick(event, button, menuName) {

  // Blur focus from the link to remove that annoying outline.

  button.blur();

  // Associate the named menu to this button if not already done.

  if (!button.menu)
    button.menu = document.getElementById(menuName);

  // Reset the currently active button, if any.

  if (activeButton&& activeButton != button)
    resetButton(activeButton);

  // Toggle the button's state.

//  if (button.isDepressed)
//    resetButton(button);
//  else
    depressButton(button);
	
//    if (isIE5)
	  setTimeout("resetButton(buttonJavaScript)", 3000);


  return false;
}

function depressButton(button) {

  // Save current style values so they can be restored later. Only needs to be
  // done once.

  if (!button.oldBackgroundColor) {
    button.oldBackgroundColor = button.style.backgroundColor;
    button.oldBorderBottomColor = button.style.borderBottomColor;
    button.oldBorderRightColor = button.style.borderRightColor;
    button.oldBorderTopColor = button.style.borderTopColor;
    button.oldBorderLeftColor = button.style.borderLeftColor;
    button.oldColor = button.style.color;
    button.oldLeft = button.style.left;
    button.oldPosition = button.style.position;
    button.oldTop = button.style.top;
  }

  // Change style value to make the button looks like it's depressed.

  button.style.backgroundColor = "#F7FDF4";
  button.style.color = "#DE4901";
  button.style.left = "1px";
  button.style.position = "relative";
  button.style.top = "1px";

  // For IE, force first menu item to the width of the parent menu, this causes
  // mouseovers work for all items even when cursor is not over the link text.

  if (isIE5 && !button.menu.firstChild.style.width)
    button.menu.firstChild.style.width = button.menu.offsetWidth + "px";

  // Position the associated drop down menu under the button and show it. Note
  // that the position must be adjusted according to the brower type.

  x = getPageOffsetLeft(button);
  y = getPageOffsetTop(button) + button.offsetHeight;
  if (isIE5) {
	x--;
	//y+=50;
  }
  if (isNS6) {
    x-=2;
   // y--;
  }
  button.menu.style.left = x + "px";
  button.menu.style.top  = y + "px";
  button.menu.style.visibility = "visible";

  // Set button state and let the world know which button is active.

  button.isDepressed = true;
  activeButton = button;



///////////////////////////// BETH'S FUNCTION /////////////////////////////////////

}

function resetButton(button) {

  // Restore the button's style settings.

//  button.style.backgroundColor = button.oldBackgroundColor;
//  button.style.borderBottomColor = button.oldBorderBottomColor;
//  button.style.borderRightColor = button.oldBorderRightColor;
//  button.style.borderTopColor = button.oldBorderTopColor;
//  button.style.borderLeftColor = button.oldBorderLeftColor;
//  button.style.color = button.oldColor;
//  button.style.left = button.oldLeft;
//  button.style.position = button.oldPosition;
//  button.style.top = button.oldTop;

  // Hide the button's menu.

  if (button.menu)
    button.menu.style.visibility = "hidden";

  // Set button state and clear active menu global.

  button.isDepressed = false;
  activeButton = null;
}

function getPageOffsetLeft(el) {

  // Return the true x coordinate of an element relative to the page.

  if (isIE5)
      return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);
  else if (isNS6)
    return el.offsetLeft;
  else
    return 0;
}

function getPageOffsetTop(el) {

  // Return the true y coordinate of an element relative to the page.

  if (isIE5)
      return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);
  else if (isNS6)
    return el.offsetTop;
  else
    return 0;
}


///////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// END OF NS6 FIX /////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////