function validateForm()
{
    var RequestInfo = document.step_all;
    var country = RequestInfo.country[RequestInfo.country.selectedIndex].value;

    if (0 == RequestInfo.firstName.value.length)
    {
        alert ("Please enter a First Name.");
        RequestInfo.firstName.focus();
        return false;
    }

    if (0 == RequestInfo.lastName.value.length)
    {
        alert ("Please enter a Last Name.");
        RequestInfo.lastName.focus();
        return false;
    }

    if ((0 == RequestInfo.homePhone.value.length)
         && (0 == RequestInfo.altPhone.value.length))
    {
        alert("You must enter a home and/or alternate phone number.")
        RequestInfo.homePhoneArea.focus();
        RequestInfo.homePhoneArea.select();
        return false;
    }
    else if ((0 != RequestInfo.homePhone.value.length) && !validPhone(RequestInfo.homePhone.value))
    {
        alert ("(" + RequestInfo.homePhoneArea.value + ") " + RequestInfo.homePhoneCity.value + "-" + RequestInfo.homePhoneSubscriber.value + "  is not a valid home phone number.");
        RequestInfo.homePhoneArea.focus();
        RequestInfo.homePhoneArea.select();
        return false;
    }
   else if ((0 != RequestInfo.altPhone.value.length) && !validPhone(RequestInfo.altPhone.value))
    {
        alert ("(" + RequestInfo.altPhoneArea.value + ") " + RequestInfo.altPhoneCity.value + "-" + RequestInfo.altPhoneSubscriber.value + "  is not a valid alternate phone number.");
        RequestInfo.altPhoneArea.focus();
        RequestInfo.altPhoneArea.select();
        return false;
    }

    if (!validEmail(RequestInfo.email.value))
    {
        if (0 == RequestInfo.email.value.length)
        {
            alert ("Please enter a valid email address.");
        }
        else
        {
            alert ("'" + RequestInfo.email.value + "' is not a valid email address.");
        }
        RequestInfo.email.focus();
        RequestInfo.email.select();
        return false;
    }

    if (0 == RequestInfo.address1.value.length)
    {
        alert ("Please enter an Address.");
        RequestInfo.address1.focus();
        return false;
    }

    if (0 == RequestInfo.city.value.length)
    {
        alert ("Please enter a City.");
        RequestInfo.city.focus();
        return false;
    }

    if (0 == RequestInfo.state[RequestInfo.state.selectedIndex].value.length)
    {
        alert ("Please select a state or province.");
        RequestInfo.state.focus();
        return false;
    }

    if ("US" == country && !validUSPostalCode(RequestInfo.postalCode.value))    // Canada
    {
        if (0 == RequestInfo.postalCode.value.length)
        {
            alert ("Please enter a valid US postal code.");
        }
        else
        {
            alert ("'" + RequestInfo.postalCode.value + "' is not a valid US postal code.");
        }
        RequestInfo.postalCode.focus();
        RequestInfo.postalCode.select();
        return false;
    }
    else if ("CA" == country && !validCAPostalCode(RequestInfo.postalCode.value))
    {
        if (0 == RequestInfo.postalCode.value.length)
        {
            alert ("Please enter a valid Canadian postal code.");
        }
        else
        {
            alert ("'" + RequestInfo.postalCode.value + "' is not a valid Canadian postal code.");
        }
        RequestInfo.postalCode.focus();
        RequestInfo.postalCode.select();
        return false;
    }

    if (!RequestInfo.interested.checked)
    {
        alert("In order to provide you with the requested information we need your consent to contact you. To give your consent please mark the final check box.");
        return false;
    }

    RequestInfo.submit();
}

function validPhone(phoneNumber)
{
    var goodPhoneNumber = /^[0-9]{10}$/;
    return goodPhoneNumber.test(phoneNumber);
}

function buildHomePhone(form)
{
    form.homePhone.value = form.homePhoneArea.value + form.homePhoneCity.value + form.homePhoneSubscriber.value;
}

function buildAltPhone(form)
{
    form.altPhone.value = form.altPhoneArea.value + form.altPhoneCity.value + form.altPhoneSubscriber.value;
}

function validEmail(emailAddress)
{
    var invalidEmail = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
    var validEmail = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid

    if (!invalidEmail.test(emailAddress) && validEmail.test(emailAddress))  // if syntax is valid
    {
        return true;
    }
    return false;
}

function updateCountry(form)
{
    var state_province = form.state[form.state.selectedIndex].value;

    if ("YT" == state_province || "SK" == state_province || "PE" == state_province
         || "ON" == state_province || "NU" == state_province || "NS" == state_province
         || "NT" == state_province || "NL" == state_province || "NB" == state_province
         || "MB" == state_province || "BC" == state_province || "AB" == state_province
         || "QC" == state_province)
    {
        // Set the selected item to Canada
        form.country[form.country.selectedIndex].selected = false
        form.country[1].selected = true;
    }
    else
    {
        // Set the selected item to United States
        form.country[form.country.selectedIndex].selected = false
        form.country[2].selected = true;
    }
}

function updateStateProvince(form)
{
    // Set the selected item to '- Select a State or Province -'
    form.state[form.state.selectedIndex].selected = false
    form.state[0].selected = true;

    if ("US" == form.country[form.country.selectedIndex].value)
    {
        alert ("Please select a state.");
    }
    else if ("CA" == form.country[form.country.selectedIndex].value)
    {
        alert ("Please select a province.");
    }

    form.state.focus();
}

function validUSPostalCode(postalCode)
{
    var goodUSPostalCode = /^[0-9]{5}$/;
    return goodUSPostalCode.test(postalCode);
}

function validCAPostalCode(postalCode)
{
    var goodCAPostalCode = /^([a-zA-Z]|){1}[0-9]{1}[a-zA-Z]{1}[ ][0-9]{1}[a-zA-Z]{1}[0-9]{1}/;
    var badCAPostalCode = /^[^dfioquwzDFIOQUWZ]{1}[0-9]{1}[^dfioquwzDFIOQUWZ]{1}[ ][0-9]{1}[^dfioquDFIOQU]{1}[0-9]{1}/;
    return goodCAPostalCode.test(postalCode);
}

function isValidWorkExperience(form)
{
    // Less than 5 years of work experience is not a valid choice for KWU
    if ("0-4 years" == form.workexperience[form.workexperience.selectedIndex].value)
    {
        alert("You must have at least 5 years working experience to qualify for Kennedy Western University.")
        return false;
    }
    return true;
}



