﻿//=============================================================================
// 3Turtles Client Script
// By:      Andy KOnonenko (andy@irontraffic.com)
// Date:    04/07/09
//=============================================================================

//Set No-Conflict for jQuery
var $J = jQuery.noConflict();
//-----------------------------------------------------------------------------
var ROOT = "";
//-----------------------------------------------------------------------------
function getLoading() {
    return "<div class='loader'><img src='" + ROOT + "Images/loadingAnimation.gif' alt='Please Wait' /><div style='padding-top:5px;'>....please wait....</div></div>";
}
function onFieldChange(field_id, ErrSpanID) {
    var field_val = $J("#" + field_id).val().replace(/[ ]/g, "");
    if (field_val.length > 0) { $J("span#" + ErrSpanID).text(""); }
}
function onSelectFieldChange(badval, field_id, ErrSpanID) {
    if ($J("#" + field_id).val() != badval) { $J("span#" + ErrSpanID).text(""); }
}

function AutoTab(_field, next_id) {
    if (_field.value.length == _field.maxLength && next_id != null)
        $J("#" + next_id).focus();
}
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}

function doCheckZip(_obj) {
    var zip_val = $J("#txtZIP").val().replace(/[ ]/g, "");
    if (zip_val.length == 0) { $J("span#err_zip").text("* Required"); return false; } else { $J("span#err_zip").text(""); }
    $J.ajax({
        type: "POST",
        url: "signup.aspx/getGeo",
        data: "{'sZIP':'" + zip_val + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        timeout: 20000,
        success: function(msg) {
            if (msg.d != null) {
                $J("#txtCity").val(msg.d.City);
                if (msg.d.City != "") { $J("span#err_city").text(""); }
                $J("#ddState").val(msg.d.State);
                if (msg.d.State != "") { $J("span#err_state").text(""); }
            }
        },
        error: function(msg) {
            alert("Error occured.");
            return false;
        }
    });
}

function doIsValid() {

    var isOk = true;
    //get form fields
    var email_val = $J("#txtEMail").val().replace(/[ ]/g, "");
    var fname_val = $J("#txtFName").val().replace(/[ ]/g, "");
    var lname_val = $J("#txtLName").val().replace(/[ ]/g, "");
    //gender
    var gender_val = -1; //default, not selected
    if ($J("#rbl_gender_0").attr("checked"))
        gender_val = 1;
    if ($J("#rbl_gender_1").attr("checked"))
        gender_val = 0;
    //-------------------------------------------------------------------------    
    var mob_val = $J("#dd_mob").val().replace(/[ ]/g, "");
    var dob_val = $J("#dd_dob").val().replace(/[ ]/g, "");
    var yob_val = $J("#dd_yob").val().replace(/[ ]/g, "");
    //-------------------------------------------------------------------------
    var zip_val = $J("#txtZIP").val().replace(/[ ]/g, "");
    var adress_val = $J("#txtAddress").val().replace(/[ ]/g, "");
    var city_val = $J("#txtCity").val().replace(/[ ]/g, "");
    var state_val = $J("#ddState").val().replace(/[ ]/g, "");
    //-------------------------------------------------------------------------        
    var phone1_val = $J("#txtPhone1_1").val().replace(/[ ]/g, "");
    var phone2_val = $J("#txtPhone1_2").val().replace(/[ ]/g, "");
    var phone3_val = $J("#txtPhone1_3").val().replace(/[ ]/g, "");
    //-------------------------------------------------------------------------        
    var mobile1_val = $J("#txtMob1_1").val().replace(/[ ]/g, "");
    var mobile2_val = $J("#txtMob1_2").val().replace(/[ ]/g, "");
    var mobile3_val = $J("#txtMob1_3").val().replace(/[ ]/g, "");
    //-------------------------------------------------------------------------
    var constobe_val = $J("#ddConsToBe").val().replace(/[ ]/g, "");
    //-------------------------------------------------------------------------
    var capcha_val = $J("#txtCapcha").val().replace(/[ ]/g, "");

    //check form fields
    if (!validateEmail(email_val)) { isOk = false; $J("span#err_email").text("Invalid EMail."); }
    if (email_val.length == 0) { isOk = false; $J("span#err_email").text("* Required"); }    
    if (fname_val.length == 0) { isOk = false; $J("span#err_fname").text("* Required"); }
    if (lname_val.length == 0) { isOk = false; $J("span#err_lname").text("* Required"); }
    if (zip_val.length == 0) { isOk = false; $J("span#err_zip").text("* Required"); }
    if (gender_val == -1) { isOk = false; $J("span#err_gender").text("* Please Select"); }
    if (mob_val == "00" || dob_val == "00" || yob_val == "0000") { isOk = false; $J("span#err_DOB").text("* Please Select"); }
    else { if (!isDate(mob_val + "/" + dob_val + "/" + yob_val)) { isOk = false; $J("span#err_DOB").text("* Please select valid date."); } }
    if (adress_val.length == 0) { isOk = false; $J("span#err_address").text("* Required"); }
    if (city_val.length == 0) { isOk = false; $J("span#err_city").text("* Required"); }
    if (state_val.length == 0) { isOk = false; $J("span#err_state").text("* Please Select"); }
    if (phone1_val.length != 3 || phone2_val.length != 3 || phone3_val.length != 4) { isOk = false; $J("span#err_phone").text("* Required 10 digits"); $J("#txtPhone1_1").focus(); }

    //if (mobile1_val.length == 0 || mobile2_val.length == 0 || mobile3_val.length == 0) { isOk = false; $J("span#err_mobile").text("* Required"); }
    if (constobe_val.length == 0) { isOk = false; $J("span#err_constobe").text("* Please Select"); }
    if (capcha_val.length == 0) { isOk = false; $J("span#err_capcha").text("* Required"); $J("#txtCapcha").focus(); }

    //offers
    if (!isOffersok()) { isOk = false; }

    if (isOk)
        $J("form#form1").submit();
    return isOk;
}

function validateEmail(emailValue) {
    var emailPattern = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
    return emailPattern.test(emailValue);
}

function isOffersok() {
    var isOk = true;
    var aOffers = $J("#ctlOfferList_hidOffers").val().split("|");
    for (i = 0; i < aOffers.length; i++) {
        if (aOffers[i].length > 0) {
            if (!isOk) { isOfferClicked(aOffers[i]); } else { isOk = isOfferClicked(aOffers[i]); }
        }
    }
    return isOk;
}

function isOfferClicked(offer_id) {
    if ($J("#yoffer_" + offer_id).attr("checked") || $J("#noffer_" + offer_id).attr("checked"))
        return true;
    else
        $J("span#err_offer_" + offer_id).html("Please answer <b>YES</b> or <b>NO</b>");

    return false;
}
function onOfferClick(offer_id) {
    $J("span#err_offer_" + offer_id).html("");
}

//--- Date Validation ---------------------------------------------------------
// Declaring valid date character, minimum year and maximum year
var dtCh = "/";
var minYear = 1900;
var maxYear = 2100;

function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary(year) {
    // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
        if (i == 2) { this[i] = 29 }
    }
    return this
}

function isDate(dtStr) {
    var daysInMonth = DaysArray(12)
    var pos1 = dtStr.indexOf(dtCh)
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
    var strMonth = dtStr.substring(0, pos1)
    var strDay = dtStr.substring(pos1 + 1, pos2)
    var strYear = dtStr.substring(pos2 + 1)
    strYr = strYear
    if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
    if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
    }
    month = parseInt(strMonth)
    day = parseInt(strDay)
    year = parseInt(strYr)
    if (pos1 == -1 || pos2 == -1) {
        //alert("The date format should be : mm/dd/yyyy")
        return false
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        alert("Please select a valid month")
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        alert("Please select a valid day")
        return false
    }
    if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
        alert("Please select a valid 4 digit year between " + minYear + " and " + maxYear)
        return false
    }
    if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
        alert("Please select a valid date")
        return false
    }
    return true
}
//-----------------------------------------------------------------------------

function doGamePlayed(iCreo) {
    if (iCreo) {
        $J("#hidPrizeID").val(iCreo);
        $J("#btnGoNext").click();
    } else {
        alert("Try again later...");
    }
}