﻿//=============================================================================
// WoW Prizes Client Script
// By:      Andy KOnonenko (andy@irontraffic.com)
// Date:    04/07/09
//=============================================================================

//Set No-Conflict for jQuery
var $J = jQuery.noConflict();
//-----------------------------------------------------------------------------
var lProductID = 0;
var lPubID = 10001;
var sReff = "";
var ROOT = "";
var sLoadingContent = "<div class='loader'><img src='" + ROOT + "Images/loadingAnimation.gif' alt='Please Wait' /><div style='padding-top:5px;'>....please wait....</div></div>"
var isEML2 = false;
//-----------------------------------------------------------------------------
//-- Utils --------------------------------------------------------------------
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 : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
//-----------------------------------------------------------------------------
//--- Validators --------------------------------------------------------------
function isEmailOk(clEmailID) {
    //e-mail validatoin
    var eml_val = $J("#" + clEmailID).val().replace(/[ ]/g, ""); ;
    var emailReg = "^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    if (!regex.test(eml_val)) {
        $J("#" + clEmailID).focus();
        new Boxy("<div style='color:red;'><img src='" + ROOT + "images/error_icon.gif' style='vertical-align:middle;padding-right:10px;'/>Invalid e-mail address.</div>", { afterShow: function() { var self = this; setTimeout(function() { self.hide(); }, 3000); }, modal: true, closeable: false });
        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("*"); return false; } else if (zip_val.length != 5) { $J("span#err_zip").text("*"); return false; } else { $J("span#err_zip").text(""); }
    $J.ajax({
        type: "POST",
        url: ROOT + "WSS/wsITProducts.asmx/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("#hidState").val(msg.d.State);                
            }
        },
        error: function(msg) {
            alert("Error occured.");
            return false;
        }
    });
}

function IsCapcha() {
    var capcha_val = $J("#txtCapcha").val().replace(/[ ]/g, "");
    if (capcha_val.length == 0) { $J("span#err_capcha").text("*"); return false; }
    var waiter = new Boxy(sLoadingContent, { modal: true });
    $J.ajax({
        type: "POST",
        url: ROOT + "WSS/wsITProducts.asmx/IsCapcha",
        data: "{'sCapcha':'" + capcha_val + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        timeout: 200000,
        success: function(msg) {
            if (msg.d) {
                //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                //waiter.hideAndUnload();
                //$J("#aspnetForm").submit();
                IsEmailValid(waiter);
                //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            } else {
                waiter.hideAndUnload();
                $J("span#err_capcha").text("* Entered number not match");
                //reload capcha
                //$J("span#capcha").html("<img src='" + ROOT + "cimage.aspx?is=" + Math.floor(Math.random() * 99) + "' alt='' align='absmiddle' style='border: 1px solid #7F9DB9;' />");
                return false;
            }
        },
        error: function(msg) {
            waiter.hideAndUnload();
            alert("Error occured.");
            return false;
        }
    });
}

function IsEmailValid(waiter) {
    var eml_val = $J("#txtEmail").val().replace(/[ ]/g, ""); ;
    if (eml_val.length == 0) {return false; }
    var waiter = new Boxy(sLoadingContent, { modal: true });
    $J.ajax({
        type: "POST",
        url: ROOT + "WSS/wsITProducts.asmx/IsEmailValid",
        data: "{'sEML':'" + eml_val + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        timeout: 20000,
        success: function(msg) {
            if (msg.d) {
                //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                //waiter.hideAndUnload();
                $J("#aspnetForm").submit();
                //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            } else {
                waiter.hideAndUnload();
                new Boxy("<div style='color:red;'><img src='" + ROOT + "images/error_icon.gif' style='vertical-align:middle;padding-right:10px;'/>Invalid e-mail address.</div>", { afterShow: function() { var self = this; setTimeout(function() { self.hide(); }, 3000); }, modal: true, closeable: false });
                return false;
            }
        },
        error: function(msg) {
            waiter.hideAndUnload();
            alert("Error occured.");
            return false;
        }
    });
}
//-------------------------------------------------------------------------------
//--- Offers Validation ---------------------------------------------------------
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("");
}

function doReloadC() {
    $J("span#capcha").html("<img src='" + ROOT + "cimage.aspx?is=" + Math.floor(Math.random() * 99) + "&nv=1' alt='' align='absmiddle' style='border: 1px solid #7F9DB9;' />");
}
//-----------------------------------------------------------------------------
//--- 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
}
//-----------------------------------------------------------------------------
//--- Games -------------------------------------------------------------------
function doGamePlayed(iprz) {
    if (iprz) {
        $J("#btnGoNext").click();
    } else {
        alert("Try again later...");
    }
}
//-----------------------------------------------------------------------------

