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 validateJIRA_Add(frm)
{
    if (frm.site_name.value.length == 0)
    {
        alert("Please enter your organisation name.");
        frm.site_name.focus();
        return false; 
    }
    if (frm.project_name.value.length == 0)
    {
        alert("Please enter one or more project codes that you will be logging support issues for.");
        frm.project_name.focus();
        return false; 
    }        
    if (frm.system.value.length == 0)
    {
        alert("Please select the PowerHealth Solutions system that you will be logging JIRA support calls for.");
        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.PHS_contact.value.length == 0)
    {
        alert("Please enter the name of a PowerHealth Solutions employee who can authorise this new user account.");
        frm.PHS_contact.focus();
        return false;
    }
}

function validateJIRA_Delete(frm)
{
    if (frm.site_name.value.length == 0)
    {
        alert("Please enter your organisation name.");
        frm.site_name.focus();
        return false; 
    }
    if (frm.project_name.value.length == 0)
    {
        alert("Please enter your project name.");
        frm.project_name.focus();
        return false; 
    }        
    if (frm.system.value.length == 0)
    {
        alert("Please select the PowerHealth Solutions system that this JIRA account was used to log support calls for.");
        frm.system.focus();
        return false;
    }
    if (frm.JIRA_username.value.length == 0)
    {
        alert("Please enter the user's JIRA username.");
        frm.JIRA_username.focus();
        return false;
    }
    if (frm.JIRA_password.value.length == 0)
    {
        alert("Please enter the user's JIRA password.");
        frm.JIRA_password.focus();
        return false;
    }    
    if (frm.user_email.value.length == 0)
    {
        alert("Please enter the user's 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.assign_to.value.length == 0)
    {
        alert("Please enter the name of the person who will take responsibility for this user's remaining JIRA tasks.");
        frm.assign_to.focus();
        return false;
    }
}

function validatePowerAssistAdd(frm)
{
    if (frm.site_name.value.length == 0)
    {
        alert("Please enter your organisation name.");
        frm.site_name.focus();
        return false; 
    }
    if (frm.system.value.length == 0)
    {
        alert("Please select the PowerHealth Solutions system that you will be logging PowerAssist support calls for.");
        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;
    }
    
    if (frm.desired_password.value.length == 0)
    {
        alert("Please enter the your preferred password to use for your PowerAssist login.");
        frm.desired_password.focus();
        return false;
    }    
}

function validatePowerAssistDelete(frm)
{
    if (frm.site_name.value.length == 0)
    {
        alert("Please enter your organisation name.");
        frm.site_name.focus();
        return false;
    }
    if (frm.system.value.length == 0)
    {
        alert("Please select the PowerHealth Solutions system that this PowerAssist account was used to log support calls for.");
        frm.system.focus();
        return false;
    }
    if (frm.powerassist_username.value.length == 0)
    {
        alert("Please enter the user's PowerAssist username.");
        frm.powerassist_username.focus();
        return false;
    }
    if (frm.powerassist_password.value.length == 0)
    {
        alert("Please enter the user's PowerAssist password.");
        frm.powerassist_password.focus();
        return false;
    }
    if (frm.user_email.value.length == 0)
    {
        alert("Please enter the user's 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 the user's 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 this user's remaining PowerAssist 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.organisation_role.value.length == 0)
    {
        alert("Please enter your role within the organisation.");
        frm.organisation_role.focus();
        return false;
    }      
    
    if (frm.phone.value.length == 0)
    {
        alert("Please enter your work 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.transport_forward.value.length == 0)
    {
        alert("Please specify how you will be travelling to the conference.");
        frm.transport_forward.focus();
        return false;
    }

    
    if (frm.mon_morning.value.length == 0)
    {
        alert("Please specify your attendance for the Monday morning session.");
        frm.mon_morning.focus();
        return false;
    }     
    
    if (frm.mon_lunch.value.length == 0)
    {
        alert("Please specify your attendance for Monday lunch.");
        frm.mon_lunch.focus();
        return false;
    }     
    
    if (frm.mon_afternoon.value.length == 0)
    {
        alert("Please specify your attendance for the Monday afternoon session.");
        frm.mon_afternoon.focus();
        return false;
    }     
    
    if (frm.mon_dinner.value.length == 0)
    {
        alert("Please specify your attendance for the Monday night Conference Dinner.");
        frm.mon_dinner.focus();
        return false;
    }
    
    if (((frm.mon_dinner.value == "Yes - Self + 1 Guest") || (frm.mon_dinner.value == "Yes - Self + 2 Guests") || (frm.mon_dinner.value == "Yes - Self + 3 Guests")) && (frm.guest_details.value.length == 0))
    {
        alert("Please enter name(s) and role(s) for your dinner guest(s).");
        frm.guest_details.focus();
        return false;
    }    
    
    if (frm.tue_morning.value.length == 0)
    {
        alert("Please specify your attendance for the Tuesday morning session.");
        frm.tue_morning.focus();
        return false;
    }    
    
    if (frm.tue_lunch.value.length == 0)
    {
        alert("Please specify your attendance for the Tuesday lunch.");
        frm.tue_lunch.focus();
        return false;
    }     
    
    if (frm.tue_afternoon.value.length == 0)
    {
        alert("Please specify your attendance for the Tuesday afternoon session.");
        frm.tue_afternoon.focus();
        return false;
    }    
    
    if (frm.transport_back.value.length == 0)
    {
        alert("Please specify how you will be travelling back from the conference.");
        frm.transport_back.focus();
        return false;
    }
    
    if (frm.wed_sitevisit.value.length == 0)
    {
        alert("Please specify whether you will be attending the Wednesday Site Visit.");
        frm.wed_sitevisit.focus();
        return false;
    }
      
    if ((frm.wed_sitevisit_stream.value.length == 0) && (frm.wed_sitevisit.value == "Yes"))
    {
        alert("Please specify which stream you will be attending for the Wednesday Site Visit, eg PPM or PBRC");
        frm.wed_sitevisit_stream.focus();
        return false;
    }
    
    if ((frm.transport_sitevisit.value.length == 0) && (frm.wed_sitevisit.value == "Yes"))
    {
        alert("Please specify how you will be travelling to the site visit");
        frm.transport_sitevisit.focus();
        return false;
    }       
    
    if (frm.user_presn.value.length == 0)
    {
        alert("Are you considering delivering a presentation?");
        frm.user_presn.focus();
        return false;
    }    
    
    if ((frm.presn_reward.value.length == 0) && (frm.user_presn.value == "Yes"))
    {
        alert("Please select your preferred reward.");
        frm.presn_reward.focus();
        return false;
    }           
}


function validate_training (frm)
{

    if (frm.scheduled_course.value.length == 0)
    {
        alert("Please select one of the scheduled course.");
        frm.days_attending.focus();
        return false;
    }
    
    if (frm.fullname.value.length == 0)
    {
        alert("Please enter your full name.");
        frm.fullname.focus();
        return false; 
    }
    if (frm.jobtitle.value.length == 0)
    {
        alert("Please enter your job title.");
        frm.jobtitle.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;
    }
}


function validateClientBillingEnquiry(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 validate_OutsideBoundaries (frm)
{

    if (frm.organisation.value.length == 0)
    {
        alert("Please enter your organisation name.");
        frm.organisation.focus();
        return false;
    }
    if (frm.country.value.length == 0)
    {
        alert("Please enter the state and country of the organisation.");
        frm.country.focus();
        return false;
    }
    
    if (frm.fullname.value.length == 0)
    {
        alert("Please enter your full name, as the Project contact person.");
        frm.fullname.focus();
        return false; 
    }
    if (frm.jobtitle.value.length == 0)
    {
        alert("Please enter your job title.");
        frm.jobtitle.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.purpose.value.length == 0)
    {
        alert("Please enter the purpose of the Project.");
        frm.purpose.focus();
        return false;
    }    
    if (frm.problemsummary.value.length == 0)
    {
        alert("Please enter a summary of the problem.");
        frm.problemsummary.focus();
        return false;
    }   
    if (frm.solution.value.length == 0)
    {
        alert("Please enter the suggested solution for the Project.");
        frm.solution.focus();
        return false;
    }
    if (frm.phsproducts.value.length == 0)
    {
        alert("Please enter the one or more PHS products to be used in the Project.");
        frm.phsproducts.focus();
        return false;
    }
    if (frm.projectduration.value.length == 0)
    {
        alert("Please enter the estimated duration of the Project.");
        frm.projectduration.focus();
        return false;
    }     
    if (frm.phs_days.value.length == 0)
    {
        alert("Please enter the number of PHS Resource Days requested for the Project.");
        frm.phs_days.focus();
        return false;
    }            
}
