﻿var SweepstakesSignup = {
    ds: new Date(),
    isNewsOnly : false,
    post: function() {
        if ($("#agreeterms:checked").length == 0) {
            $("#pnlagreeterms").css("background-color", "#CFDCFF");

            $("#pnlmsg").html("<span class=\"error\">You must agree to the Terms & Conditions to be entered in the sweepstakes.</span>");

            return false;
        }

        var obj = {};
        $("#pnlForm input,select").each(function(d) {
            var o = $(this);

            obj[this.name] = (o.val() + "").strip();
        });

        if (!SweepstakesSignup.validate(obj)) {
            $("#pnlmsg").html("<span class=\"error\">Please fill in all the required fields:</span>");

            return false;
        }

        $("#pnlmsg").html("<img src='/image/ajax-loader.gif' alt='loading' /> Sending...");

        $.post("?a=1", obj, function(data) {
            $("#pnlmsg").html("");

            if (data.msg == "ok") {
                SweepstakesSignup.newForm();
            }

            SweepstakesSignup.popEndMsg(obj, data.msg);
        }, "json");

        return false;
    }, // end post

    validate: function(obj) {
        var isGood = true;

        $("div.formElem").css("background-color", "#ffffff");

        if ((obj.firstname + "").strip() == "") {
            $("#pnlfirstname").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.lastname + "").strip() == "") {
            $("#pnllastname").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if (!MiscUtil.validateEmail(obj.email + "")) {
            $("#pnlemail").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.street + "").strip() == "") {
            $("#pnlstreet").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.country + "").strip() == "") {
            $("#pnlcountry").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.state + "").strip() == "") {
            $("#pnlstate").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.city + "").strip() == "") {
            $("#pnlcity").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.zip + "").strip() == "") {
            $("#pnlzip").css("background-color", "#CFDCFF");
            isGood = false;
        }
        if ((obj.phone + "").strip() == "") {
            $("#pnlphone").css("background-color", "#CFDCFF");
            isGood = false;
        }

        return isGood;
    }, // validate

    popEndMsg: function(postObj, errorMsg) {
        var h = [];

        h.push("<div class=\"postMsg\">");
        switch (errorMsg) {
            case "ok":
                h.push("Thank you for entering this week’s NYC.com Sweepstakes!<br /><br />"
                    + "Please be on the lookout for our weekly email with details of future Sweepstakes, "
                    + "special offers, and timely New York City related event information. "
                    + "Of course you may opt out of this email at anytime by clicking on the "
                    + "safe unsubscribe link we include with every mailing.");
                break;
            case "ok-nl":
                // customize for opt-in Newsletter sign up
                // It uses Newsletter JS object's popMessage()
                // instead of generating the pop up message
                Newsletter.popMessage();

                return false;
            case "timeout":
                h.push("Oops! It appears that your user session has timed out. Please <a href=\"javascript://refresh page\" "
                    + "onclick=\"location.reload();\">refresh the signup form</a> and try again.")
                break;
            case "dup":
                h.push("We are sorry but the email address " + postObj.email + " has already been used to signup!");
                break;
            default:
                h.push("Oops! It appears that there is an error. Please <a href=\"javascript://refresh page\" "
                    + "onclick=\"location.reload();\">refresh the signup form</a> and try again.")
                break;
        }
        h.push("</div>");

        ModalPopup.showBox(h.join(''), SweepstakesSignup.isNewsOnly ? "NYC.com Newsletter" : "NYC.com Sweepstakes");

        return false;
    }, // end popError

    newForm: function() {
        document.forms[0].reset();
        $("div.formElem").css("background-color", "#ffffff");
        return false;
    }, // end newForm

    popTerms: function() {
        window.open("/sweepstakes_terms.htm", "termsandconditions",
            "width=750,height=550,location=0,menubar=0,resizable=0,scrollbars=1,toolbar=0,top=10,left=10");

        return false;
    }, // end popTerms

    setStates: function() {
        var country = $("#country").val();
        var h = [];

        if (country == "US") {
            h.push("<option value=\"\">- Select State -</option>");
            for (idx = 0; idx < States.US_Name.length; idx++) {
                h.push("<option value=\"" + States.US_Abbr[idx] + "\">" + States.US_Name[idx] + "</option>");
            }
        } else {
            h.push("<option value=\"\">- Select Province -</option>");
            for (idx = 0; idx < States.CA_Name.length; idx++) {
                h.push("<option value=\"" + States.CA_Abbr[idx] + "\">" + States.CA_Name[idx] + "</option>");
            }
        }

        $("#state").html(h.join('')).val("");

        return false;
    } // end set States
};

var States = {
    US_Name: new Array(
		"Alabama", "Alaska", "Arizona", "Arkansas",
		"California", "Colorado",
		"Connecticut", "Delaware", "District of Columbia", "Florida",
		"Georgia", "Hawaii", "Idaho", "Illinois",
		"Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana",
		"Maine", "Maryland", "Massachusetts", "Michigan",
		"Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska",
		"Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York",
		"North Carolina", "North Dakota", "Ohio", "Oklahoma",
		"Oregon", "Pennsylvania", "Rhode Island",
		"South Carolina", "South Dakota", "Tennessee", "Texas", "Utah",
		"Vermont", "Virginia", "Washington", "West Virginia",
		"Wisconsin", "Wyoming"),
    US_Abbr: new Array(
		"AL", "AK", "AZ", "AR",
		"CA", "CO",
		"CT", "DE", "DC", "FL",
		"GA", "HI", "ID", "IL",
		"IN", "IA", "KS", "KY", "LA",
		"ME", "MD", "MA", "MI",
		"MN", "MS", "MO", "MT", "NE",
		"NV", "NH", "NJ", "NM", "NY",
		"NC", "ND", "OH", "OK",
		"OR", "PA", "RI",
		"SC", "SD", "TN", "TX", "UT",
		"VT", "VA", "WA", "WV",
		"WI", "WY"),
    CA_Name: new Array("Alberta", "British Columbia", "Manitoba", "New Brunswick", "Newfoundland", "Northwest Territories", "Nova Scotia", "Ontario", "Prince Edward Island", "Saskatchewan", "Yukon"),
    CA_Abbr: new Array("AB", "BC", "MB", "NB", "NF", "NT", "NS", "ON", "PE", "SK", "YU")
}; // end States

$(document).ready(SweepstakesSignup.setStates);