function onPageLoad()
{
  // resize content to be at least as big as menu...
  var linksElem = document.getElementById("links");
  var contentElem = document.getElementById("content");
  if (linksElem.offsetHeight > contentElem.offsetHeight)
    contentElem.style.height = linksElem.offsetHeight + "px";
}

function onPageEnd()
{
  // setup event handlers for menu items...  
  var linksElem = document.getElementById("links");
  var menuDivElem = skipToNextElement(linksElem.firstChild);
  var h3Elem = skipToNextElement(menuDivElem.firstChild);
  var ulElem = skipToNextElement(h3Elem.nextSibling);
  setupMenuHandlers(ulElem);
  setupEmailLinks()
  
  // highlight current path...
  highlightCurrentPath(ulElem);
}

function setupMenuHandlers(ulElem)
{
  var liElements = ulElem.childNodes;
  if (liElements != null)
  {
    for (var i = 0; i < liElements.length; i++)
    {
      var liElement = liElements[i];
      if (liElement.tagName == "LI")
      {
        liElement.onmouseover = onMouseOver;
        liElement.onmouseout = onMouseOut;
      
        // find first UL below liElement...
        var pElement = skipToNextElement(liElement.firstChild);
        var childUlElement = skipToNextElement(pElement.nextSibling);
        if (childUlElement != null)
        {
          childUlElement.className = "popoutMenu";
          liElement.className = "hasSubMenu";
        }
      }
    }
  }
}

function setupEmailLinks()
{
  var pattern = /^mailto:(.+)-nonumber@\d+(.+)$/
  var contentElem = document.getElementById("content");
  var links = contentElem.getElementsByTagName("a");
  for (var i = 0; i < links.length; i++)
  {
    var link = links[i];
    var match = link.href.match(pattern);
    if (match)
    {
      var newHref = "mailto:" + match[1] + "@" + match[2];
      link.href = newHref;   
	 }
  }
}

function onMouseOver()
{
  var element = this;
  
  var pElement = skipToNextElement(element.firstChild);
  var ulElement = skipToNextElement(pElement.nextSibling);
  if (ulElement != null)
  {
    ulElement.style.top = "0";
    ulElement.style.visibility = "visible";
  }
  return false;
}

function onMouseOut()
{
  var element = this;
  
  var pElement = skipToNextElement(element.firstChild);
  var ulElement = skipToNextElement(pElement.nextSibling);
  if (ulElement != null)
  {
    ulElement.style.top = "0";
    ulElement.style.visibility = "hidden";
  }
  return false;
}

function highlightCurrentPath(ulElem)
{
  var baseUrl = window.location.protocol + "//" + window.location.host + "/";
  var liElements = ulElem.getElementsByTagName("LI");
  if (liElements != null)
  {
    for (var i = 0; i < liElements.length; i++)
    {
      var liElement = liElements[i];
      var pElement = skipToNextElement(liElement.firstChild);
      if (pElement)
      {
        var aElement = skipToNextElement(pElement.firstChild);
        if (aElement)
        {
          if (aElement.href == window.location.href && window.location.pathname == "/")
          {
            // special-case the home page...
            aElement.className = "currentItem";
            break;
          }

          if (partialUrlMatch(aElement.href, window.location.href))
          {
            if (aElement.href != baseUrl)
            {
              aElement.className = "currentItem";
            }
          }
        }
      }
    }
  }
}

function partialUrlMatch(href, fullUrl)
{
  return href == fullUrl.substr(0, href.length);
}


function skipToNextElement(element)
{
  while (element != null && element.nodeType != 1)
    element = element.nextSibling;
  return element;
}

function skipToPrevElement(element)
{
  while (element != null && element.nodeType != 1)
    element = element.previousSibling;
  return element;
}


function validate(frm) {
	if (frm.email.value.length == 0)
	{
		alert ("Please enter your email address")
		frm.email.focus ()
		return false
	}
}

function validate2(frm)
{
    //
    // Check the Email field to see if any characters were entered
    //
	 if (frm.firstname.value.length == 0)
    {
        alert("Please enter your first name");
        frm.firstname.focus();
        return false;
    }
	 if (frm.lastname.value.length == 0)
    {
        alert("Please enter your last name");
        frm.lastname.focus();
        return false;
    }
	if (frm.company.value.length == 0)
    {
        alert("Please enter your company name");
        frm.company.focus();
        return false;
    }
	if (frm.phone.value.length == 0)
    {
        alert("Please enter your phone number");
        frm.phone.focus();
        return false;
    }
    if (frm.email.value.length == 0)
    {
        alert("Please enter an e-mail address.");
        frm.email.focus();
        return false;
    }
    //
    // Now check the Email field for the "@" symbol
    //
    if (frm.email.value.indexOf("@") == -1)
    {
        alert("Please enter a valid e-mail address.");
        frm.email.focus();
        return false;
    }
}
