﻿var captchaCount = 0;

function verifyFields() {
    var ret = true;
    var birthCheck = 0;
    clearField();
    if ($("#txtFirstName").val() === "" || $("#txtFirstName").val() === "First Name") {
        errorField("#txtFirstName");
        ret = false;
    }
    else if (/^[a-zA-Z0-9\-\' ]+$/.test($("#txtFirstName").val()) == false) {
        errorField("#txtFirstName");
        ret = false;
    }

    if ($("#txtLastName").val() === "" || $("#txtLastName").val() === "Last Name") {
        errorField("#txtLastName");
        ret = false;
    }
    else if (/^[a-zA-Z0-9\-\' ]+$/.test($("#txtFirstName").val()) == false) {
        errorField("#txtLastName");
        ret = false;
    }

    if ($("#txtStreetAddress").val() === "" || $("#txtStreetAddress").val() === "Address (no PO boxes or Apt/Ste #)") {
        errorField("#txtStreetAddress");
        ret = false;
    }
    else if (/^[a-zA-Z0-9. ]+$/.test($("#txtStreetAddress").val()) == false) {
        errorField("#txtStreetAddress");
        ret = false;
    }

    if ($("#txtApartment").val() != "Apt/Ste # (If applicable)") {
        if (/^[a-zA-Z0-9. ]+$/.test($("#txtApartment").val()) == false) {
            errorField("#txtStreetAddress");
            ret = false;
        }
    }

    if ($("#txtCity").val() === "" || $("#txtCity").val() === "City") {
        errorField("#txtCity");
        ret = false;
    }
    else if (/^[a-zA-Z0-9.\-\' ]+$/.test($("#txtCity").val()) == false) {
        errorField("#txtCity");
        ret = false;
    }

    if ($('#ddlState')) {
        if ($('#ddlState option:selected').val() != 0) {
            $('#ddlState').css("background", "#ffffff");
        }
        else {
            $('#ddlState').css("background", "#fd9a9a");
            ret = false;
        }
    }

    var zipTest = /^\d{5}([\-]\d{4})?$/;
    if (!zipTest.test($("#txtZipCode").val())) {
        errorField("#txtZipCode");
        ret = false;
    }

    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if (!emailPattern.test($("#txtEmail").val())) {
        errorField("#txtEmail");
        errorField("#txtEmailConfirm");
        ret = false;
    }
    else if ($("#txtEmail").val() != $("#txtEmailConfirm").val()) {
        errorField("#txtEmail");
        errorField("#txtEmailConfirm");
        ret = false;
    }

    if ($("#txtPhoneArea").val() === "") {
        errorField("#txtPhoneArea");
        ret = false;
    }
    else if (/^\d{3}?$/.test($("#txtPhoneArea").val()) == false) {
        errorField("#txtPhoneArea");
        ret = false;
    }

    if ($("#txtPhonePrefix").val() === "") {
        errorField("#txtPhonePrefix");
        ret = false;
    }
    else if (/^\d{3}?$/.test($("#txtPhonePrefix").val()) == false) {
        errorField("#txtPhonePrefix");
        ret = false;
    }

    if ($("#txtPhoneSuffix").val() === "") {
        errorField("#txtPhoneSuffix");
        ret = false;
    }
    else if (/^\d{4}?$/.test($("#txtPhoneSuffix").val()) == false) {
        errorField("#txtPhoneSuffix");
        ret = false;
    }

    if ($('#chkMobileSub').attr('checked')) {
        if ($("#txtMobileArea").val() === "") {
            errorField("#txtMobileArea");
            ret = false;
        }
        else if (/^\d{3}?$/.test($("#txtMobileArea").val()) == false) {
            errorField("#txtMobileArea");
            ret = false;
        }

        if ($("#txtMobilePrefix").val() === "") {
            errorField("#txtMobilePrefix");
            ret = false;
        }
        else if (/^\d{3}?$/.test($("#txtMobilePrefix").val()) == false) {
            errorField("#txtMobilePrefix");
            ret = false;
        }

        if ($("#txtMobileSuffix").val() === "") {
            errorField("#txtMobileSuffix");
            ret = false;
        }
        else if (/^\d{4}?$/.test($("#txtMobileSuffix").val()) == false) {
            errorField("#txtMobileSuffix");
            ret = false;
        }
    }

    if ($("#txtDOBMonth").val() === "" || $("#txtDOBMonth").val() === "MM") {
        errorField("#txtDOBMonth");
        ret = false;
    }
    else if (/^\d+?$/.test($("#txtDOBMonth").val()) == false) {
        errorField("#txtDOBMonth");
        ret = false;
    }
    else {
        birthCheck += 1;
    }

    if ($("#txtDOBDay").val() === "" || $("#txtDOBDay").val() === "DD") {
        errorField("#txtDOBDay");
        ret = false;
    }
    else if (/^\d+?$/.test($("#txtDOBDay").val()) == false) {
        errorField("#txtDOBDay");
        ret = false;
    }
    else {
        birthCheck += 1;
    }

    if ($("#txtDOBYear").val() === "" || $("#txtDOBYear").val() === "YYYY") {
        errorField("#txtDOBYear");
        ret = false;
    }
    else if (/^\d{4}?$/.test($("#txtDOBYear").val()) == false) {
        errorField("#txtDOBYear");
        ret = false;
    }
    else {
        birthCheck += 1;
    }

    //birthdate
    if (birthCheck == 3) {
        month = document.getElementById('txtDOBMonth').value;
        day = document.getElementById('txtDOBDay').value;
        year = document.getElementById('txtDOBYear').value;

        if (checkdate(month, day, year)) {
            $("#txtDOBMonth").removeClass("errorState");
            $("#txtDOBDay").removeClass("errorState");
            $("#txtDOBYear").removeClass("errorState")
        }
        else {
            $("#txtDOBMonth").addClass("errorState");
            $("#txtDOBDay").addClass("errorState");
            $("#txtDOBYear").addClass("errorState");
            ret = false;
        }
    }

    if ($('#chkOfficialRules').attr('checked')) {
        $('#officialRulesLabel').css("color", "#000");
    }
    else {
        $('#officialRulesLabel').css("color", "#f00");
        ret = false;
    }

    //CAPTCHA
    var captchaCorrect = $.ajax({
        url: "checkCaptcha.aspx",
        data: "captcha=" + $('#captchaText').val(),
        async: false
    }).responseText;

    if (captchaCorrect == "false") {
        captchaCount += 1;
        var curl = "JpegImage.aspx?count=" + captchaCount;
        $('#captchaImg').attr("src", curl);
        errorField("#captchaText")
        ret = false;
    }

    //Packcode
    if (RGlobalPackCodeList.indexOf($('#txtPackCode').val().toUpperCase() + ',') >= 0 && $("#ddlState").val() != "California") {
    }
    else if ($("#ddlState").val() == "California" && $('#txtPackCode').val().toUpperCase() == "SAVE64") {
    }
    else {
        errorField("#txtPackCode")
        ret = false;
    }

    return ret;
}

var captchaCount2 = 0;

function verifyFields2() {
    var ret = true;
    var birthCheck = 0;
    clearField();
    if ($("#txtFirstName2").val() === "" || $("#txtFirstName2").val() === "First Name") {
        errorField("#txtFirstName2");
        ret = false;
    }
    else if (/^[a-zA-Z0-9\-\' ]+$/.test($("#txtFirstName2").val()) == false) {
        errorField("#txtFirstName2");
        ret = false;
    }

    if ($("#txtLastName2").val() === "" || $("#txtLastName2").val() === "Last Name") {
        errorField("#txtLastName2");
        ret = false;
    }
    else if (/^[a-zA-Z0-9\-\' ]+$/.test($("#txtFirstName2").val()) == false) {
        errorField("#txtLastName2");
        ret = false;
    }

    if ($("#txtStreetAddress2").val() === "" || $("#txtStreetAddress2").val() === "Address (no PO boxes or Apt/Ste #)") {
        errorField("#txtStreetAddress2");
        ret = false;
    }
    else if (/^[a-zA-Z0-9. ]+$/.test($("#txtStreetAddress2").val()) == false) {
        errorField("#txtStreetAddress2");
        ret = false;
    }

    if ($("#txtApartment2").val() != "Apt/Ste # (If applicable)") {
        if (/^[a-zA-Z0-9. ]+$/.test($("#txtApartment2").val()) == false) {
            errorField("#txtApartment2");
            ret = false;
        }
    }

    if ($("#txtCity2").val() === "" || $("#txtCity2").val() === "City") {
        errorField("#txtCity2");
        ret = false;
    }
    else if (/^[a-zA-Z0-9.\-\' ]+$/.test($("#txtCity2").val()) == false) {
        errorField("#txtCity2");
        ret = false;
    }

    if ($('#ddlState2')) {
        if ($('#ddlState2 option:selected').val() != 0) {
            $('#ddlState2').css("background-color", "#ffffff");
        }
        else {
            $('#ddlState2').css("background-color", "#fd9a9a");
            ret = false;
        }
    }

    var zipTest = /^\d{5}([\-]\d{4})?$/;
    if (!zipTest.test($("#txtZipCode2").val())) {
        errorField("#txtZipCode2");
        ret = false;
    }

    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if (!emailPattern.test($("#txtEmail2").val())) {
        errorField("#txtEmail2");
        errorField("#txtEmailConfirm2");
        ret = false;
    }
    else if ($("#txtEmail2").val() != $("#txtEmailConfirm2").val()) {
        errorField("#txtEmail2");
        errorField("#txtEmailConfirm2");
        ret = false;
    }

    if ($("#txtPhoneArea22").val() === "") {
        errorField("#txtPhoneArea");
        ret = false;
    }
    else if (/^\d{3}?$/.test($("#txtPhoneArea2").val()) == false) {
        errorField("#txtPhoneArea2");
        ret = false;
    }

    if ($("#txtPhonePrefix2").val() === "") {
        errorField("#txtPhonePrefix2");
        ret = false;
    }
    else if (/^\d{3}?$/.test($("#txtPhonePrefix2").val()) == false) {
        errorField("#txtPhonePrefix2");
        ret = false;
    }

    if ($("#txtPhoneSuffix2").val() === "") {
        errorField("#txtPhoneSuffix2");
        ret = false;
    }
    else if (/^\d{4}?$/.test($("#txtPhoneSuffix2").val()) == false) {
        errorField("#txtPhoneSuffix2");
        ret = false;
    }

    if ($('#chkMobileSub2').attr('checked')) {
        if ($("#txtMobileArea2").val() === "") {
            errorField("#txtMobileArea2");
            ret = false;
        }
        else if (/^\d{3}?$/.test($("#txtMobileArea2").val()) == false) {
            errorField("#txtMobileArea2");
            ret = false;
        }

        if ($("#txtMobilePrefix2").val() === "") {
            errorField("#txtMobilePrefix2");
            ret = false;
        }
        else if (/^\d{3}?$/.test($("#txtMobilePrefix2").val()) == false) {
            errorField("#txtMobilePrefix2");
            ret = false;
        }

        if ($("#txtMobileSuffix2").val() === "") {
            errorField("#txtMobileSuffix2");
            ret = false;
        }
        else if (/^\d{4}?$/.test($("#txtMobileSuffix2").val()) == false) {
            errorField("#txtMobileSuffix2");
            ret = false;
        }
    }

    if ($("#txtDOBMonth2").val() === "" || $("#txtDOBMonth2").val() === "MM") {
        errorField("#txtDOBMonth2");
        ret = false;
    }
    else if (/^\d+?$/.test($("#txtDOBMonth2").val()) == false) {
        errorField("#txtDOBMonth2");
        ret = false;
    }
    else {
        birthCheck += 1;
    }

    if ($("#txtDOBDay2").val() === "" || $("#txtDOBDay2").val() === "DD") {
        errorField("#txtDOBDay2");
        ret = false;
    }
    else if (/^\d+?$/.test($("#txtDOBDay2").val()) == false) {
        errorField("#txtDOBDay2");
        ret = false;
    }
    else {
        birthCheck += 1;
    }

    if ($("#txtDOBYear2").val() === "" || $("#txtDOBYear2").val() === "YYYY") {
        errorField("#txtDOBYear2");
        ret = false;
    }
    else if (/^\d{4}?$/.test($("#txtDOBYear2").val()) == false) {
        errorField("#txtDOBYear2");
        ret = false;
    }
    else {
        birthCheck += 1;
    }

    //birthdate
    if (birthCheck == 3) {
        month = document.getElementById('txtDOBMonth2').value;
        day = document.getElementById('txtDOBDay2').value;
        year = document.getElementById('txtDOBYear2').value;

        if (checkdate(month, day, year)) {
            $("#txtDOBMonth2").removeClass("errorState");
            $("#txtDOBDay2").removeClass("errorState");
            $("#txtDOBYear2").removeClass("errorState")
        }
        else {
            $("#txtDOBMonth2").addClass("errorState");
            $("#txtDOBDay2").addClass("errorState");
            $("#txtDOBYear2").addClass("errorState");
            ret = false;
        }
    }

    if ($('#chkOfficialRules2').attr('checked')) {
        $('#officialRulesLabel2').css("color", "#000");
    }
    else {
        $('#officialRulesLabel2').css("color", "#f00");
        ret = false;
    }

    //CAPTCHA
    var captchaCorrect = $.ajax({
        url: "checkCaptcha2.aspx",
        data: "captcha=" + $('#captchaText2').val(),
        async: false
    }).responseText;

    if (captchaCorrect == "false") {
        captchaCount += 1;
        var curl = "JpegImage2.aspx?count=" + captchaCount;
        $('#captchaImg2').attr("src", curl);
        errorField("#captchaText2")
        ret = false;
    }

    //Packcode
    var theCode = $('#txtPackCode2').val().toUpperCase();

    theCode = ReplaceAll(theCode," ", "");

    if (theCode == 'MGD64MIX' || theCode == 'ILIKEMGD64') {
    }
    else if (theCode == 'JMHMHHHX9F')
    {
        var eligibleState = false;
        var currentState = $('#ddlState2 option:selected').val(); 
        var stateArray = new Array("Alabama","Connecticut","Hawaii", "Indiana", "Kentucky", "Maine", "Minnesota", "Missouri", "North Carolina", "New Jersy", "Oregon", "South Dakota", "Texas", "Utah", "West Virgina");
        for (var i=0; i < stateArray.length; i++)
        {
            if(stateArray[i] == currentState)
            {
                 eligibleState = true;
            }
        }

        if(eligibleState == true)
        {
            
        }
        else
        {
            errorField("#txtPackCode2");
            ret = false;
        }
    }
    else if(theCode == 'MGD64ACTION')
    {
        
    }
    else {
        errorField("#txtPackCode2");
        ret = false;
    }
			  
    return ret;
}

function ReplaceAll(Source, stringToFind, stringToReplace) {

    var temp = Source;

    var index = temp.indexOf(stringToFind);

    while (index != -1) {

        temp = temp.replace(stringToFind, stringToReplace);

        index = temp.indexOf(stringToFind);

    }

    return temp;

}



function errorField(field) {
    $(field).addClass("errorState");
    $('#errorBox').show();
    $("#mcErrorPrompt").css("background-color", "#f9e0de");
    $("#mcErrorPrompt").css("border", "1px solid red");
}

function clearField() {
    $("input:text").removeClass("errorState");
    $("select").removeClass("errorState");
}

// Check if a string is a valid date and birthdate is over 21
function checkdate(m, d, y) {
    var now = new Date(); // current date from clients system
    var yc = now.getYear(); // get current year
    var age;

    if (yc < 2000) yc = yc + 1900; // in case the year is < 2000

    var yl = yc - 120; // least year to consider
    var ym = yc; // most year to consider

    if (m < 1 || m > 12) return (false);
    if (d < 1 || d > 31) return (false);
    if (y < yl || y > ym) return (false);
    if (m == 4 || m == 6 || m == 9 || m == 11)
        if (d == 31) return (false);
    if (m == 2) {
        var b = parseInt(y / 4);
        if (isNaN(b)) return (false);
        if (d > 29) return (false);
        if (d == 29 && ((y / 4) != parseInt(y / 4))) return (false);
    }

    tday = now.getDate();
    tmo = now.getMonth();
    tyr = now.getFullYear();

    if ((tmo > m) || (tmo == m & tday >= d)) {
        age = y;
    } else {
        age = parseInt(y) + 1;
    }
    age = tyr - age

    if (age < 21) {
        return false;
    }
    return (true);
}

