// Lib.MembershipValidation.js

function validateLoginForm(form) {

    var errMessage = "";

    var emailField = form.elements["email"];
    if (emailField.value == "") {
        errMessage = errMessage + "\tPlease enter your email.\n";
        emailField.focus();
    }
    else if (!isValidEmail(emailField.value)) {
        errMessage = errMessage + "\tPlease enter a valid E-mail address.\n";
        emailField.focus();
    }

    var passwordField = form.elements["password"];
    if (passwordField.value == "") {
        errMessage = errMessage + "\tPlease enter your password.\n";
        if (errMessage == "") {
            passwordField.focus();
        }
    }

    //if rememberMe is checked, pass that in the rurl, so the page that invokes setLoginCookies() can know how long to set them for
    var rurlField = form.elements["rurl"];
    if (rurlField != null) {
        var rurlValue = rurlField.value;
        if (form.elements["rememberMe"] && form.elements["rememberMe"].checked) {
            if (rurlField.value.indexOf("?") == -1) {
                rurlValue += "?rememberMe=y";
            }
            else {
                rurlValue += "&rememberMe=y";
            }
            rurlField.value = rurlValue;
        }
    }

    if (errMessage != "") {
        alert("The following errors were encountered:\n" + errMessage);
        return false;
    }
    return true;
}


function validateForgotPasswordForm(form) {

    var errMessage = "";

    var emailField = form.elements["email"];
    if (emailField.value == "") {
        errMessage = errMessage + "\tPlease enter your email.\n";
    }
    else if (!isValidEmail(emailField.value)) {
        errMessage = errMessage + "\tPlease enter a valid E-mail address.\n";
    }

    if (errMessage != "") {
        alert("The following errors were encountered:\n" + errMessage);
        emailField.focus();
        return false;
    }
    return true;
}


function validateChangePasswordForm(form) {

    var errormessage = "";

    if (form.elements["password"].value == "") {
        errormessage = errormessage + "\tPlease enter your Current password.\n";
    }
    if (form.elements["password1"].value == "") {
        errormessage = errormessage + "\tPlease enter your New password.\n";
    }
    if (form.elements["password2"].value == "") {
        errormessage = errormessage + "\tPlease confirm your New password.\n";
    }
    if (form.elements["password1"].value != form.elements["password2"].value) {
        errormessage = errormessage + "\tThe new password values must match.\n";
    }

    if (errormessage != "") {
        alert("The following errors were encountered:\n" + errormessage);
        return false;
    }
    return true;
}


function validateRegistrationForm(form) {

    var genericFailureMsg = 'We are sorry.  Registration has failed.  Please try again later';

    if (cookiejar.fetch("ageFlag")) {
        alert(genericFailureMsg)
        return false;
    }

    var errormessage = "";
    form.elements["username"].value = trim(replaceSpacesWithOne(form.elements["username"].value));

    if (form.elements["username"].value == "") {
        errormessage = errormessage + "\tPlease enter a screen name.\n";
    }

    if (form.elements["username"].value.length < 5) {
        errormessage = errormessage + "\tYour screen name must be at least five characters long.\n";
    }

    if (form.elements["email"].value == "") {
        errormessage = errormessage + "\tPlease must enter your email.\n";
    }
    else if (!isValidEmail(form.elements["email"].value)) {
        errormessage = errormessage + "\tInvalid Email Address.\n";
    }

    if (form.elements["email2"].value == "") {
        errormessage = errormessage + "\tPlease enter your email twice.\n";
    }

    if (form.elements["email"].value != form.elements["email2"].value) {
        errormessage = errormessage + "\tThe 2 email values must match.\n";
    }

    if (form.elements["password1"].value == "") {
        errormessage = errormessage + "\tPlease enter your password.\n";
    }

    if (form.elements["password2"].value == "") {
        errormessage = errormessage + "\tYou must enter your password twice.\n";
    }

    if (form.elements["password1"].value != form.elements["password2"].value) {
        errormessage = errormessage + "\tThe password values must match.\n";
    }

    if (form.elements["zipcode"].value == "") {
        errormessage = errormessage + "\tPlease enter your zip code.\n";
    }
    else if (!isZIPCode(form.elements["zipcode"].value)) {
        errormessage = errormessage + "\tPlease enter a valid zip code.\n";
    }

    var birthdate = form.birthdate.options[form.birthdate.selectedIndex].value;
    if (birthdate == "") {
        errormessage = errormessage + "\tPlease enter your birth year.\n";
    }

    // If indicated birthdate indicates age less than 13, pass age=n so the setLoginCookies can set an age13, 1-hr expiration cookie.
    var threshholdYear = 1999;
    var birthyear = birthdate.substring(6, 10);

    if (parseInt(birthyear) > threshholdYear) {
        //        alert(genericFailureMsg);
        //        cookiejar.bake('ageFlag', 'y', 1);
        return false;
    }

    var radioGender = form.elements["gender"];
    var genderSelected = false;
    for (i = 0; i < radioGender.length; i++) {
        if (radioGender[i].checked == true) {
            genderSelected = true;
            break;
        }
    }

    if (!genderSelected) {
        errormessage = errormessage + "\tPlease enter your gender.\n";
    }

    // Make sure user agreement checkbox is checked before they can submit
    if (!form.elements["userAgreementCheckbox"].checked) {
        errormessage = errormessage + "\tYou must agree to the Terms of Use.\n";
    }

    // Set a hidden custom5 field for Join Date
    form.elements["custom5"].value = "01/26/2012";

    if (errormessage != "") {
        alert("The following errors were encountered:\n" + errormessage);
        return false;
    }

    form.elements["rurl"].value = "s?action=doLogout&rurl=/regconfirmation.html%3Femail%3D" + form.elements["email"].value;

    if (form.elements["newsletterVendorStationId"] && form.elements["newsletterVendorStationId"].value != "") {
        if (typeof buildNewsletterQuery == 'function') {
            var newsletters = buildNewsletterQuery();
            if (newsletters.length > 0) {
                form.elements["rurl"].value += "%26station%3D" + form.elements["newsletterVendorStationId"].value + newsletters;
                form.elements["rurl"].value += "%26dob%3D" + form.birthdate.options[form.birthdate.selectedIndex].value + "%26zipcode%3D" + form.elements["zipcode"].value;
            }
            //alert(form.elements["rurl"].value);
        }
    }
    //return false;
    return true;
}

function validateEditRegistrationForm(form) {

    var errormessage = "";

    if (form.elements["zipcode"].value == "") {
        errormessage = errormessage + "\tPlease enter your zip code.\n";
    }
    else if (!isZIPCode(form.elements["zipcode"].value)) {
        errormessage = errormessage + "\tPlease enter a valid zip code.\n";
    }

    var birthdate = form.birthdate.options[form.birthdate.selectedIndex].value;
    if (birthdate == "") {
        errormessage = errormessage + "\tPlease enter your birth year.\n";
    }

    var radioGender = form.elements["gender"];
    var genderSelected = false;
    for (i = 0; i < radioGender.length; i++) {
        if (radioGender[i].checked == true) {
            genderSelected = true;
            break;
        }
    }
    if (!genderSelected) {
        errormessage = errormessage + "\tPlease select your gender.\n";
    }

    if (errormessage != "") {
        alert("The following errors were encountered:\n" + errormessage);
        return false;
    }

    try {
        // If they have changed their email, rebake the email subcookie 
        if (document.regEditForm.email && (document.regEditForm.email.value != "$_content.email")) {
            subcookiejar.bake('curUserInfo', { email: document.regEditForm.email.value });
        }
    } catch (e) { }

    if (document.getElementById("unlinkSSOAccount")) {
        document.getElementById("unlinkSSOAccount").value = "false";
    }

    return true;
}

function popUp(url, width, height) {

    day = new Date();
    id = day.getTime();
    //eval("page" + id + " = window.open(url, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0,width="+width+",height="+height+",left=0,top=0');");
    eval("page" + id + " = window.open(url, '" + id + "', 'type=fullWindow,fullscreen,scrollbars=1');");
}

function closePopUp(parentUrl) {

    try {
        if (parentUrl && window.opener) {
            window.opener.location.href = url;
        }
        window.close();
    } catch (err) { }
}

