﻿/*** jQuery library add-ons ***/
$.fn.isNearTheEnd = function() { return this[0].scrollTop + this.height() >= this[0].scrollHeight; }

var ByPassProcess, DomainIsRestricted, objHidRememberInfo, objAccountId, objSerialNumber, objFirstName, objLastName, objEmail, objCompany, objCity, objPhone, objPhoneExt, objState, objPostalCode, objProductSubmit, objRegistrationSubmit,objDownloadOption;
var SerialNumber, AccountId, cFirstName, cLastName, cEmail, cCompany, cGeography, cCountry, cCity, cState, cPostalCode, cPhone, cPhoneExt, cIndustry, cNbrClients, cFindOut;

/*** Namespace Declarations ***/
BakBone = function() { }
BakBone.Web = function() { }
BakBone.Web.UI = function() { }

BakBone.Web.UI.INPUT_REQ_CLASS = "TextBoxReq";
BakBone.Web.UI.SELECT_REQ_CLASS = "SelectReq";
BakBone.Web.UI.ERROR_BLOCK_OBJ = null;

BakBone.Web.UI.setErrorMessageBlockId = function(id) {
    BakBone.Web.UI.ERROR_BLOCK_OBJ = $("#" + id);
}
BakBone.Web.UI.showErrorMessage = function(id, text) {
    BakBone.Web.UI.removeErrorMessage(id);
    BakBone.Web.UI.ERROR_BLOCK_OBJ.append("<div id=reqMsg" + id + ">" + text + "</div>").show("fast");
}
BakBone.Web.UI.removeErrorMessage = function(id) {
    $("#reqMsg" + id).remove();
    if ($.trim(BakBone.Web.UI.ERROR_BLOCK_OBJ.html()) == "") {
        BakBone.Web.UI.clearErrorMessage();
    }
}
BakBone.Web.UI.clearErrorMessage = function() {
    BakBone.Web.UI.ERROR_BLOCK_OBJ.html("").hide();
}
BakBone.Web.UI.resetField = function(field) {
    if (field.is("." + BakBone.Web.UI.INPUT_REQ_CLASS)) {
        field.removeClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        return;
    }
    if (field.is("." + BakBone.Web.UI.SELECT_REQ_CLASS)) {
        field.removeClass(BakBone.Web.UI.SELECT_REQ_CLASS);
        return;
    }
}
BakBone.Web.UI.doFindAccount = function() {
    $("#FindAccountErrorMessageBlock").html("").hide();
    BakBone.Web.UI.resetField($("#txtSerialNbr"));
    if ($.trim($("#txtSerialNbr").val()) == "") {
        $("#txtSerialNbr").addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        $("#FindAccountErrorMessageBlock").html("Please check required fields and resubmit.").show("fast");
        return;
    } else {
        if ($.trim($("#txtNVBUMachineId").val()) == "" && $.trim($("#txtTrueCDPHostId").val()) == "" && $.trim($("#txtSnapServerId").val()) == "" && $.trim($("#txtRDPClusterId").val()) == "") {
            $("#FindAccountErrorMessageBlock").html("You must fill in at least one other search field.").show("fast");
            return;
        }
    }
    $("#divFindAccount").hide();
    $("#ProcessMessage").show();
    $.ajax({
        type: "POST",
        url: "../UIServices/WorkflowService.asmx/SearchForAccount",
        data:
        {
            serialNumber: $.trim($("#txtSerialNbr").val()),
            nvbuMachineId: $.trim($("#txtNVBUMachineId").val()),
            trueCDPHostId: $.trim($("#txtTrueCDPHostId").val()),
            snapServerId: $.trim($("#txtSnapServerId").val()),
            rdpClusterId: $.trim($("#txtRDPClusterId").val())
        },
        success: function(msg) {
            var r = $(msg); 
            $("#ProcessMessage").hide();
            $("#divFindAccount").show();
            if (r.find("accountFound").text().toLowerCase() == "false") {
                $("#FindAccountErrorMessageBlock").html("We were unable to find your account.  Please see below for alternative ways to find your account information.").show("fast");
                return;
            }
            if (r.find("accountFound").text().toLowerCase() == "true") {
                $("#FindAccountErrorMessageBlock").html("").hide();
                $("#ConfirmAccount_AccountName").html(r.find("accountName").text());
                SerialNumber = r.find("serialNumber").text();
                AccountId = r.find("accountId").text()
                $("#FindAccountForm").hide();
                $("#ConfirmAccount").show();
            }
            
        },
        error: function(errormsg) {
            var r = $(errormsg);
        }
    });
}
BakBone.Web.UI.submitProductForm = function() {
    if ($("#divProducts :checked").size() == 0 || $("#divOSList :checked").size() == 0) {
        alert("Please select at least one Product and Platform.");
    } else {
        objProductSubmit.click();
    }
}
BakBone.Web.UI.submitExistingCustomerProductForm = function() {
    BakBone.Web.UI.clearErrorMessage();
    if (BakBone.Web.UI.checkRequiredFields() == true) {
        if (BakBone.Web.UI.validateEmailAddressFormat() == true) {
            if (BakBone.Web.UI.confirmEmailAddress() == true) {
                if ($("input[name=" + objDownloadOption.attr("name") + "]:radio:checked").size() == 0) {
                    BakBone.Web.UI.showErrorMessage("SelectOption", "Please select an Upgrade or Evaluation Option.");
                } else {
                    if ($("#divProducts :checked").size() == 0 || $("#divOSList :checked").size() == 0) {
                        BakBone.Web.UI.showErrorMessage("SelectProducts", "Please select at least one Product and Platform.");
                    } else {
                        BakBone.Web.UI.validateCaptcha(true);
                        return;
                    }
                }
            }
        }
    }
    $.scrollTo($("#divPreviousGA"), 400);
}
BakBone.Web.UI.submitRegistrationForm = function() {
    BakBone.Web.UI.clearErrorMessage();
    BakBone.Web.UI.setDomainRules();
}
BakBone.Web.UI.setDomainRules = function() {
    if ($.trim(objEmail.val()) != "") {
        $.ajax({
            type: "POST",
            url: "UIServices/ValidationService.asmx/ValidateEmailDomain",
            data: { emailAddress: $.trim(objEmail.val()) },
            success: function(msg) {
                var r = $(msg);
                // to disable this feature set: ByPassProcess = false;
                ByPassProcess = (r.find("byPassEmail").text().toLowerCase() == "true") ? true : false;
                DomainIsRestricted = (r.find("restrictDomain").text().toLowerCase() == "true") ? true : false;
                BakBone.Web.UI.processForm();
            },
            error: BakBone.Web.UI.validationFailed
        });
    } else {
        ByPassProcess = false;
        DomainIsRestricted = false;
        BakBone.Web.UI.processForm();
    }
}
BakBone.Web.UI.generateNewImage = function(path) {
    $("#imgRender").attr("src", path + "/CaptchaRenderer.aspx?" + Math.random());
}
BakBone.Web.UI.processForm = function() {
    if (ByPassProcess) {
        BakBone.Web.UI.validateCaptcha(false);
        return;
    }
    if (BakBone.Web.UI.checkRequiredFields() == true) {
        BakBone.Web.UI.validateRegistrationForm();
    }
}
BakBone.Web.UI.validateRegistrationForm = function() {
    if (BakBone.Web.UI.validateEmailAddressFormat() == true) {
        if (BakBone.Web.UI.confirmEmailAddress() == true) {
            if (BakBone.Web.UI.validateDomain() == true) {
                if (BakBone.Web.UI.validatePostalCode() == true) {
                    //objRegistrationSubmit.click();
                    BakBone.Web.UI.validateCaptcha(false);
                }
            }
        }
    }
    return false;
}
BakBone.Web.UI.validateCaptcha = function(isSub) {
    var ServicePath = (isSub == true) ? "../UIServices/ValidationService.asmx/ValidateCaptcha" : "UIServices/ValidationService.asmx/ValidateCaptcha";
    if ($.trim($("#txtCaptchaInput").val()) == "") {
        $("#txtCaptchaInput").addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        BakBone.Web.UI.showErrorMessage("RequiredFields", "Please check required fields and resubmit.");
        return;
    }
    $.ajax({
        type: "POST",
        url: ServicePath,
        data: { value: $.trim($("#txtCaptchaInput").val()) },
        success: function(msg) {
            var r = $(msg);
            if (r.find("returnState").text().toLowerCase() == "false") {
                BakBone.Web.UI.showErrorMessage("InvalidCaptcha", "The value you have entered is incorrect. Enter another value or click the Refresh Image link.");
                $("#txtCaptchaInput").addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
                if (isSub) { $.scrollTo($("#divPreviousGA"), 400); }
            } else {
                BakBone.Web.UI.resetField($("#txtCaptchaInput"));
                BakBone.Web.UI.clearErrorMessage();
                objRegistrationSubmit.click();
            }
        },
        error: BakBone.Web.UI.validationFailed
    });
}
BakBone.Web.UI.validationFailed = function(result) {
    //alert(result.status + result.statusText);
}
BakBone.Web.UI.setupEmployeeDownloadLoginForm = function(userNameFldId,passwordFldId,processLoginFldId) {
    var objUserName = $("#" + userNameFldId);
    var objPassword = $("#" + passwordFldId);
    var objProcess = $("#" + processLoginFldId);
    $("#btnSubmitLogin").live("click", function(evt) {
        evt.preventDefault();
        if (BakBone.Web.UI.checkRequiredFields() == true) {
            BakBone.Web.UI.clearErrorMessage();
            objProcess.click();
        }
    });
}
BakBone.Web.UI.setupAddContactInfoForm = function() {
    objPhone.unmask().numeric();
    objPhoneExt.unmask().numeric();
    $("#btnSubmitContactForm").live("click", function(evt) {
        evt.preventDefault();
        BakBone.Web.UI.setErrorMessageBlockId("ErrorMessageBlock_AddContact");
        if (BakBone.Web.UI.checkRequiredFields() == true) {
            BakBone.Web.UI.clearErrorMessage();
            objRegistrationSubmit.click();
        }
    });
}
BakBone.Web.UI.setupProductSelectFormButtons = function() {
    $("#btnSelectAll").live("click",function(evt) { $("#divOSList INPUT[type='checkbox']").attr('checked', true); evt.preventDefault(); });
    $("#btnDeselectAll").live("click",function(evt) { $("#divOSList INPUT[type='checkbox']").attr('checked', false); evt.preventDefault(); });
}
BakBone.Web.UI.setupExistingCustomerProductSelectForm = function() {
    $("#txtCaptchaInput").numeric();
    $("#btnGenImage").live("click",function(evt) { BakBone.Web.UI.generateNewImage("../UIServices"); evt.preventDefault(); });
    $("#btnSubmitRegistrationForm").live("click", function(evt) { evt.preventDefault(); BakBone.Web.UI.submitExistingCustomerProductForm(); });
    $("#FindAccountDialog").dialog({ zIndex:10001, autoOpen: false, height: 500, width: 700, modal: true });
    $("#btnFindAccount").live("click", function(evt) { evt.preventDefault(); BakBone.Web.UI.setupFindAccountForm(); });
    $(document).keypress(function (evt) { if (evt.keyCode == 13) { evt.preventDefault(); BakBone.Web.UI.submitExistingCustomerProductForm(); } });
    BakBone.Web.UI.setupProductSelectFormButtons();
}
BakBone.Web.UI.setupFindAccountForm = function() {
    $("#FindAccountErrorMessageBlock").html("").hide();
    BakBone.Web.UI.resetField($("#txtSerialNbr"));
    $("#txtSerialNbr").val("");
    $("#txtNVBUMachineId").val("");
    $("#txtTrueCDPHostId").val("");
    $("#txtSnapServerId").val("");
    $("#txtRDPClusterId").val("");
    //$("#chkRememberInfo").attr("checked", false);
    $("#ConfirmAccount").hide();
    $("#NotMe").hide();
    $("#FindAccountForm").show();
    var FindAccountDialog = $("#FindAccountDialog");
    $("#lnkF1").live("click", function(evt) { evt.preventDefault(); FindAccountDialog.stop().scrollTo($('#F1'), 500); });
    $("#lnkF2").live("click", function(evt) { evt.preventDefault(); FindAccountDialog.stop().scrollTo($('#F2'), 500); });
    $("#lnkF3").live("click", function(evt) { evt.preventDefault(); FindAccountDialog.stop().scrollTo($('#F3'), 500); });
    $("#lnkF4").live("click", function(evt) { evt.preventDefault(); FindAccountDialog.stop().scrollTo($('#F4'), 500); });
    $("#btnSubmitFindAccount").live("click", function(evt) { evt.preventDefault(); BakBone.Web.UI.doFindAccount(); });
    $("#btnConfirmYes").live("click", function(evt) {
        evt.preventDefault();
        objAccountId.val(AccountId);
        objSerialNumber.val(SerialNumber);
        //objHidRememberInfo.val($("#chkRememberInfo").attr("checked"));
        $("#FindAccountDialog").dialog("close");
    });
    $("#btnConfirmNo").live("click", function(evt) {
        evt.preventDefault();
        $("#ConfirmAccount").hide();
        $("#NotMe").show();
        $("#btnFindAgain").live("click", function(evt) {
            evt.preventDefault();
            $("#txtSerialNbr").val("");
            $("#txtNVBUMachineId").val("");
            $("#txtTrueCDPHostId").val("");
            $("#txtSnapServerId").val("");
            $("#txtRDPClusterId").val("");
            $("#ConfirmAccount").hide();
            $("#NotMe").hide();
            $("#FindAccountForm").show();
        });
    });
    $("#FindAccountDialog").dialog("open");
}
BakBone.Web.UI.setupProductSelectFormEdits = function() {
    BakBone.Web.UI.setupProductSelectFormButtons();
    $("#btnSubmitProductForm").live("click", function(evt) { evt.preventDefault(); BakBone.Web.UI.submitProductForm(); });
    $(document).keypress(function (evt) { if (evt.keyCode == 13) { evt.preventDefault(); BakBone.Web.UI.submitProductForm(); } });
}
BakBone.Web.UI.setupRegistrationFormEdits = function() {
    $("#btnGenImage").live("click",function(evt) { BakBone.Web.UI.generateNewImage("UIServices"); evt.preventDefault(); });
    $("#btnSubmitRegistrationForm").live("click", function(evt) { BakBone.Web.UI.submitRegistrationForm(); evt.preventDefault(); });
    $("#ddlCountry").change(function() { BakBone.Web.UI.setupCountryValidators(); });
    objPhoneExt.numeric();
    $("#txtCaptchaInput").numeric();
    if ($.trim(cCountry) != "") {
        $("#ddlCountry").val(cCountry);
        BakBone.Web.UI.setupCountryValidators();
    }
    objFirstName.val(cFirstName);
    objLastName.val(cLastName);
    objEmail.val(cEmail);
    objCompany.val(cCompany);
    objCity.val(cCity);
    objPhone.val(cPhone);
    objPhoneExt.val(cPhoneExt);
    objPostalCode.val(cPostalCode);
    $("#txtConfirmEmail").val(cEmail);
    $("#ddlState").val(cState);
    $("#ddlGeography").val(cGeography);
    $("#ddlIndustry").val(cIndustry);
    $("#ddlNumberOfMachines").val(cNbrClients);
    $("#ddlFindOut").val(cFindOut);
    $("#divRegFormLoad").css("display","");
}
BakBone.Web.UI.checkRequiredFields = function() {
    var ReturnValue = true;
    $("[required=true]:visible").each(function() {
        switch (this.tagName.toLowerCase()) {
            case "input":
                if ($.trim(this.value) == "") {
                    $(this).addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
                    ReturnValue = false;
                } else {
                    BakBone.Web.UI.resetField($(this));
                }
                break;
            case "select":
                if ($.trim(this.options[this.selectedIndex].value) == "") {
                    $(this).addClass(BakBone.Web.UI.SELECT_REQ_CLASS);
                    ReturnValue = false;
                } else {
                    BakBone.Web.UI.resetField($(this));
                }
        }
    });
    if (ReturnValue == false) {
        BakBone.Web.UI.showErrorMessage("RequiredFields", "Please check required fields and resubmit.");
    } else {
        BakBone.Web.UI.removeErrorMessage("RequiredFields");
    }
    return ReturnValue;
}
BakBone.Web.UI.confirmEmailAddress = function() {
    if ($.trim(objEmail.val()) != $.trim($("#txtConfirmEmail").val())) {
        BakBone.Web.UI.showErrorMessage("EmailMatch","Email Address and Confirm Email Address Must Match.");
        $("#txtConfirmEmail").addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        return false;
    } else {
        BakBone.Web.UI.resetField($("#txtConfirmEmail"));
        BakBone.Web.UI.removeErrorMessage("EmailMatch");
        return true;
    }
}
BakBone.Web.UI.validateEmailAddressFormat = function() {
    BakBone.Web.UI.resetField(objEmail);
    if (BakBone.Web.UI.checkEmailAddressFormat(objEmail.val()) == false) {
        BakBone.Web.UI.showErrorMessage("EmailInvalid", "Email Address Not Valid. Please Provide A Different Email Address.");
        objEmail.addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        ByPassDomainRuleCheck = true;
        return false;
    } else {
        BakBone.Web.UI.removeErrorMessage("EmailInvalid");
        BakBone.Web.UI.resetField(objEmail);
        ByPassDomainRuleCheck = false;
        return true;
    }
}
BakBone.Web.UI.validateDomain = function() {
    if (DomainIsRestricted) {
        BakBone.Web.UI.showErrorMessage("RestrictEmail", "This Email Address Is Not Allowed. Please Provide A Different Email Address.");
        objEmail.addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        return false;
    } else {
        BakBone.Web.UI.resetField(objEmail);
        BakBone.Web.UI.removeErrorMessage("RestrictEmail");
        return true;
    }
}
BakBone.Web.UI.checkEmailAddressFormat = function(value) {
    if ($.trim(value).length == 0) { return true; }
    var rx = new RegExp("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    var matches = rx.exec(value);
    return (matches != null && value == matches[0]);
}
BakBone.Web.UI.validatePostalCode = function() {
    // only validate UK here
    if ($("#ddlCountry").val() != "United Kingdom") { return true; }
    // tests to see if string is in correct UK style postcode: AL1 1AB, BM1 5YZ etc.
    var re = new RegExp("^([A-PR-UWYZ0-9][A-HK-Y0-9][ABCDEFGHJKSTUW0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLNP-UW-Z]{2}|GIR 0AA)$");
    if (re.test(objPostalCode.val().toUpperCase()) == false) {
        objPostalCode.addClass(BakBone.Web.UI.INPUT_REQ_CLASS);
        BakBone.Web.UI.showErrorMessage("UKPostalMatch", "Postal Code not valid for United Kingdom.");
        return false;
    }
    return true;
}
BakBone.Web.UI.setupCountryValidators = function() {
    objPhone.val("");
    objPostalCode.val("");
    $("#ddlGeography").attr("disabled", false);
    $("#ddlGeography").val("");
    var CountryPhoneCode = {
        "USA": "1",
        "Canada": "1",
        "United Kingdom": "+44",
        "Australia": "+61",
        "China": "+86",
        "France": "+33",
        "Germany": "+49",
        "India": "+91",
        "Korea": "+82",
        "Netherlands": "+31",
        "Switzerland": "+41"
    }
    switch ($("#ddlCountry").val()) {
        case "USA":
            objState.css('display', 'none'); // hide
            $("#rowState").css('display', ""); // show
            $("#ddlState").css('display', ""); // show
            objState.attr("required", "false");
            $("#ddlState").attr("required", "true");
            objPhone.unbind("keypress");
            objPhone.unmask();
            objPhone.mask("(999) 999-9999");
            objPostalCode.unmask();
            objPostalCode.mask("99999?-9999");
            $("#ddlGeography").val("NA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "Canada":
            objState.css('display', 'none'); // hide
            objState.attr("required", "false");
            $("#rowState").css('display', ""); // show
            $("#ddlState").css('display', ""); // show
            $("#ddlState").attr("required", "true");
            objPostalCode.attr("required", "false");
            objPhone.unbind("keypress");
            objPhone.unmask();
            objPhone.mask("(999) 999-9999");
            objPostalCode.unmask();
            objPostalCode.mask("a9a 9a9");
            $("#ddlGeography").val("NA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "United Kingdom":
            $("#rowState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.attr("required", "false");
            objPostalCode.attr("maxlength", "8");
            objPostalCode.attr("required", "true");
            objPostalCode.unmask();
            //objPostalCode.mask("a9 9aa").mask("a99 9aa");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("EMEA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "Australia":
            $("#ddlState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.css('display', ''); // show
            objState.attr("required", "true");
            objPostalCode.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("9999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("ASIA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "China":
            $("#ddlState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.css('display', ''); // show
            objState.attr("required", "true");
            objPhone.attr("required", "true");
            objPostalCode.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("999999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("ASIA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "France":
            $("#ddlState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.css('display', ''); // show
            objState.attr("required", "true");
            objPhone.attr("required", "true");
            objPostalCode.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("99999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("EMEA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "Germany":
            $("#rowState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.attr("required", "false");
            objPhone.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("99999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("EMEA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "India":
            $("#rowState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.attr("required", "false");
            objPhone.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("999999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("ASIA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "Korea":
            $("#rowState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.attr("required", "false");
            objPhone.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("999-999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("ASIA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "Netherlands":
            $("#rowState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.attr("required", "false");
            objPhone.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("9999 aa");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("EMEA");
            $("#ddlGeography").attr("disabled", true);
            break;
        case "Switzerland":
            $("#rowState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.attr("required", "false");
            objPhone.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("9999");
            objPhone.unmask();
            objPhone.numeric();
            $("#ddlGeography").val("EMEA");
            $("#ddlGeography").attr("disabled", true);
            break;
        default:
            $("#ddlState").css('display', 'none'); // hide
            $("#ddlState").attr("required", "false");
            objState.css('display', ''); // show
            objState.attr("required", "false");
            objPhone.attr("required", "true");
            objPostalCode.unmask();
            objPostalCode.mask("9999");
            objPhone.unmask();
            objPhone.numeric();
            break;
    }
    if (CountryPhoneCode[$("#ddlCountry").val()] == undefined) {
        $("#PhoneCode").html("+ ");
    } else {
        $("#PhoneCode").html(CountryPhoneCode[$("#ddlCountry").val()] + " ");
    }
    $("#HiddenPhoneCode").val($("#PhoneCode").html());
}
$(document).ready(function() {
    BakBone.Web.UI.setErrorMessageBlockId("ErrorMessageBlock");
});