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 validatewebcast(frm)
{
	 if (frm.date.value.length == 0)
    {
        alert("Please select a webcast date.");
        frm.date.focus();
        return false;
    }
	 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.organization.value.length == 0)
    {
        alert("Please enter your organization name.");
        frm.organization.focus();
        return false;
    }
    if (frm.email.value.length == 0)
    {
        alert("Please enter your e-mail address.");
        frm.email.focus();
        return false;
    }
    if (frm.email.value.indexOf("@") == -1)
    {
        alert("Please enter a valid e-mail address.");
        frm.email.focus();
        return false;
    }
    if (frm.city.value.length == 0)
    {
        alert("Please enter your city.");
        frm.city.focus();
        return false;
    }
    if (frm.state.value.length == 0)
    {
        alert("Please enter your state.");
        frm.state.focus();
        return false;
    }
}

function validatePowerAssistAdd(frm)
{
    if (frm.site_name.value.length == 0)
    {
        alert("Please enter your organization name.");
        frm.site_name.focus();
        return false; 
    }
    if (frm.system.value.length == 0)
    {
        alert("Please enter your PowerHealth Solutions system.");
        frm.system.focus();
        return false;
    }
    if (frm.user_name.value.length == 0)
    {
        alert("Please enter your first name and last name.");
        frm.user_name.focus();
        return false;
    }
    if (frm.user_email.value.length == 0)
    {
        alert("Please enter your e-mail address.");
        frm.user_email.focus();
        return false;
    }
    if (frm.user_email.value.indexOf("@") == -1)
    {
        alert("Please enter a valid e-mail address.");
        frm.user_email.focus();
        return false;
    }
    if (frm.user_phone.value.length == 0)
    {
        alert("Please enter your phone number.");
        frm.user_phone.focus();
        return false;
    }
}

function validatePowerAssistDelete(frm)
{
    if (frm.site_name.value.length == 0)
    {
        alert("Please enter your organization name.");
        frm.site_name.focus();
        return false;
    }
    if (frm.system.value.length == 0)
    {
        alert("Please enter your PowerHealth Solutions system.");
        frm.system.focus();
        return false;
    }
    if (frm.powerassist_username.value.length == 0)
    {
        alert("Please enter your username used for logging into PowerAssist.");
        frm.powerassist_username.focus();
        return false;
    }
    if (frm.powerassist_password.value.length == 0)
    {
        alert("Please enter your password used for logging into PowerAssist.");
        frm.powerassist_password.focus();
        return false;
    }
    if (frm.user_email.value.length == 0)
    {
        alert("Please enter your e-mail address.");
        frm.user_email.focus();
        return false;
    }
    if (frm.user_email.value.indexOf("@") == -1)
    {
        alert("Please enter a valid e-mail address.");
        frm.user_email.focus();
        return false;
    }
    if (frm.user_phone.value.length == 0)
    {
        alert("Please enter your phone number.");
        frm.user_phone.focus();
        return false;
    }
    if (frm.assign_to.value.length == 0)
    {
        alert("Please enter the name of the person who will take responsibility for your remaining tasks.");
        frm.assign_to.focus();
        return false;
    }
}

function validate_member(frm)
{
	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;
    }
    if (frm.email.value.indexOf("@") == -1)
    {
        alert("Please enter a valid e-mail address.");
        frm.email.focus();
        return false;
    }
}

function validate_conference (frm)
{
    if (frm.fullname.value.length == 0)
    {
        alert("Please enter your full name.");
        frm.fullname.focus();
        return false; 
    }
    if (frm.organisation.value.length == 0)
    {
        alert("Please enter your organisation name.");
        frm.organisation.focus();
        return false;
    }
    if (frm.phone.value.length == 0)
    {
        alert("Please enter your contact phone number.");
        frm.phone.focus();
        return false;
    }
    if (frm.email.value.length == 0)
    {
        alert("Please enter your e-mail address.");
        frm.email.focus();
        return false;
    }
    if (frm.email.value.indexOf("@") == -1)
    {
        alert("Please enter a valid e-mail address.");
        frm.email.focus();
        return false;
    }
    if (frm.days_attending.value.length == 0)
    {
        alert("Please enter which conference days you will be attending.");
        frm.days_attending.focus();
        return false;
    }
    if (frm.user_presentation.value.length == 0)
    {
        alert("Are you interested in delivering a user presentation? If you are undecided, you can say 'Maybe' for now and finalise your decision later.");
        frm.user_presentation.focus();
        return false;
    }
    if (frm.attending_dinner.value.length == 0)
    {
        alert("Willl you be attending the Conference Dinner?");
        frm.attending_dinner.focus();
        return false;
    }
    if (frm.attending_dinner.value == "Yes" && frm.dinner_booking.value.length == 0)
    {
        alert("Please specify the total number of people attending the Conference Dinner.");
        frm.dinner_booking.focus();
        return false;
    }
    if (frm.share_accomodation.value.length == 0)
    {
        alert("Do you want us to find someone to share the accomodation?");
        frm.share_accomodation.focus();
        return false;
    }
    if (frm.airport_transfer.value.length == 0)
    {
        alert("Do you require transport to/from the Hunter Valley?");
        frm.airport_transfer.focus();
        return false;
    }
    if (frm.airport_transfer.value != "No" && frm.people_transport.value.length == 0)
    {
        alert("Please specify the number of people requiring transport.");
        frm.people_transport.focus();
        return false;
    }
}
