function validate () {
    var errors = "";

    if (isEmpty(document.forms.userform.FirstName.value)) {
        errors += "First Name\n";
    }

    if (isEmpty(document.forms.userform.LastName.value)) {
        errors += "Last Name\n";
    }

    if (isEmpty(document.forms.userform.Address1.value)) {
        errors += "Address\n";
    }

    if (isEmpty(document.forms.userform.City.value)) {
        errors += "City\n";
    }

    if (isEmpty(document.forms.userform.State.value)) {
        errors += "State\n";
    }
    else {
        if (! isStateCode(document.forms.userform.State.value)) {
            errors += "Invalid State\n";
        }
    }

    if (isEmpty(document.forms.userform.Zip.value)) {
        errors += "Zip Code\n";
    }
    else {
        if (! (isZIPCode(document.forms.userform.Zip.value) || isPostalCode(document.forms.userform.Zip.value))) {
            errors += "Invalid ZIP or Postal Code\n";
        }
    }

    if (isEmpty(document.forms.userform.Email.value)) {
        errors += "Email\n";
    }
    else {
        if (! isEmail(document.forms.userform.Email.value)) {
            errors += "Invalid Email\n";
        }
    }

    if (isEmpty(document.forms.userform.Password1.value)) {
        errors += "Password\n";
    }
    if (isEmpty(document.forms.userform.Password2.value)) {
        errors += "Password Confirmation\n";
    }

    if (! passwordsMatch(document.forms.userform.Password1.value, document.forms.userform.Password2.value)) {
        errors += "Passwords Do Not Match\n";
    }

    if (isEmpty(document.forms.userform.PartnerFirstName.value)) {
        errors += "Partner's First Name\n";
    }

    if (isEmpty(document.forms.userform.PartnerLastName.value)) {
        errors += "Partner's Last Name\n";
    }

    if (! isEmpty(document.forms.userform.PartnerEmail.value)) {
        if (! isEmail(document.forms.userform.PartnerEmail.value)) {
            errors += "Partner's Email is Invalid\n";
        }
    }

    if (! isStateCode(document.forms.userform.LocState.value)) {
        errors += "Invalid State\n";
    }

    if (! (isZIPCode(document.forms.userform.LocZip.value) || isPostalCode(document.forms.userform.LocZip.value))) {
        errors += "Invalid ZIP or Postal Code\n";
    }

    if (isEmpty(document.forms.userform.month.value)) {
        errors += "Month\n";
    }

    if (isEmpty(document.forms.userform.day.value)) {
        errors += "Day\n";
    }

    if (isEmpty(document.forms.userform.year.value)) {
        errors += "Year\n";
    }


    if (errors != "") {
        alert("There was a problem with your form.  The following required fields are either missing or invalid:\n" + errors);
        return false;
    }
    return true;

}

