﻿var AjaxTools = {
    RefreshPage: function() {
        try { window.location.replace(window.location.href); } catch (e) { }
        try { window.location.replace(window.location); } catch (e) { }
        try { window.location.reload(false); } catch (e) { }
    },
    GetZipCodeData: function(strZip, callback) {
        $ && $.ajax && $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Content/FrontOffice/NICECaseSubmit.aspx/GetZipCodeData",
            dataType: "json",
            data: '{ "strZipCode": "' + strZip + '" }',
            success: function(json) {
                if (json && json.d && json.d["City"]) {
                    callback(json.d);
                }
            }
        });
    }
};
String.prototype.trim = function() { try { return this.replace(/(^\s*)|(\s*$)/g, ""); } catch (e) { return this; } };
var validate = ValidationObject();
var not = null;
// Formatting  Object //
var Format = {
    Phone: function(strNum) {
        if (strNum == "" || strNum == null) {
            return "";
        } else {
            strNum = "" + strNum;
            var intNumLen = strNum.length;
            if (intNumLen == 10) { return "(" + strNum.substr(0, 3) + ") " + strNum.substr(3, 3) + "-" + strNum.substr(6, 4); }
            else if (intNumLen == 7) { return strNum.substr(0, 3) + "-" + strNum.substr(3, 4); }
            else { return strNum; }
        }
    },
    Currency: function(strNum) {
        function addCommas(strValue) {
            try {
                var objRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
                while (objRegExp.test(strValue)) { strValue = strValue.replace(objRegExp, '$1,$2'); }
            } catch (e) { }
            return strValue;
        }
        if (strNum.toFixed) { strNum = strNum.toFixed(2); } else { strNum = (typeof (strNum) == 'number') ? (Math.round(strNum * 100) / 100) : strNum; }
        var objRegExp = /-?[0-9]+\.[0-9]{2}$/;
        return ((objRegExp.test(strNum)) ? ('$ ' + addCommas(strNum)) : strNum);
    },
    RemoveNonNumberic: function(strNum) {
        try { return strNum.replace(/[^0-9.]/g, ''); } catch (e) { return strNum; }
    }
}
// End Formatting  Object //

// Event Listener js //
var m_Target = "";
var m_FocusedMultiline = false;
var m_Options = new Array();
function SetFocusEvents(strObjectName, bolIsMultiline, strDefaultButtonName) {
    var objObject = document.getElementById(strObjectName);
    if (bolIsMultiline == null) { bolIsMultiline = false; }
    if (strDefaultButtonName == null) { strDefaultButtonName = ""; }
    if (objObject != null) {
        m_Options[m_Options.length] = new Object();
        m_Options[m_Options.length - 1].Target = strDefaultButtonName;
        m_Options[m_Options.length - 1].IsMultiline = bolIsMultiline;
        m_Options[m_Options.length - 1].ObjectName = strObjectName;
        if (objObject.addEventListener) {
            //objObject.addEventListener("focus", function() { m_Target = strDefaultButtonName; m_FocusedMultiline = bolIsMultiline; }, false);
            objObject.addEventListener("focus", Object_Focus, false);
            objObject.addEventListener("blur", Object_Blur, false);
        } else if (objObject.attachEvent) {
            //objObject.attachEvent("onfocus", function() { m_Target = strDefaultButtonName; m_FocusedMultiline = bolIsMultiline; });
            objObject.attachEvent("onfocus", Object_Focus);
            objObject.attachEvent("onblur", Object_Blur);
        }
    }
}
function Object_Focus(objEvent) {
    var objEvent = (objEvent) ? objEvent : ((window.event) ? window.event : "")
    var objTarget = null;
    if (objEvent) { objTarget = (objEvent.target) ? objEvent.target : objEvent.srcElement; }
    for (var intCounter = 0; intCounter < m_Options.length; intCounter++) {
        if (m_Options[intCounter].ObjectName == objTarget.id) {
            m_Target = m_Options[intCounter].Target;
            m_FocusedMultiline = m_Options[intCounter].IsMultiline;
            break;
        }
    }
}
function Object_Blur(objEvent) {
    m_Target = "";
    m_FocusedMultiline = false;
}
// End Event Listener js // 
// Ghost Control js //
var m_Defaults = new Array();
function Focused(objEvent) {
    var objEvent = (objEvent) ? objEvent : ((window.event) ? window.event : "")
    var objObject = null;
    if (objEvent) {
        objObject = (objEvent.target) ? objEvent.target : objEvent.srcElement;
    }
    if ((objObject != null) && (objObject.id != null) && (objObject.id != "")) {
        for (var intCounter = 0; intCounter < m_Defaults.length; intCounter++) {
            if ((objObject.id == m_Defaults[intCounter].Id) || ((objObject.id == m_Defaults[intCounter].PasswordProxyId))) {
                if (objObject.value == m_Defaults[intCounter].Default) {
                    if ((objObject.id == m_Defaults[intCounter].PasswordProxyId)) {
                        var objActualControl = document.getElementById(m_Defaults[intCounter].Id);
                        objActualControl.style.display = "block";
                        objObject.style.display = "none";
                        objActualControl.focus();
                    }
                    objObject.value = "";
                    objObject.className = "NormalControl";
                }
                break;
            }
        }
    }
}
function Blurred(objEvent) {
    var objEvent = (objEvent) ? objEvent : ((window.event) ? window.event : "")
    var objObject = null;
    if (objEvent) {
        objObject = (objEvent.target) ? objEvent.target : objEvent.srcElement;
    }
    if ((objObject != null) && (objObject.id != null) && (objObject.id != "")) {
        for (var intCounter = 0; intCounter < m_Defaults.length; intCounter++) {
            if ((objObject.id == m_Defaults[intCounter].Id) || ((objObject.id == m_Defaults[intCounter].PasswordProxyId))) {
                if (objObject.value == "") {
                    if ((m_Defaults[intCounter].PasswordProxyId != null) && (m_Defaults[intCounter].PasswordProxyId != "")) {
                        var objProxyControl = document.getElementById(m_Defaults[intCounter].PasswordProxyId);
                        objProxyControl.style.display = "block";
                        objObject.style.display = "none";
                        objProxyControl.value = m_Defaults[intCounter].Default;
                        objProxyControl.className = "GhostControl";
                    } else {
                        objObject.value = m_Defaults[intCounter].Default;
                        objObject.className = "GhostControl";
                    }
                } else {
                    objObject.className = "NormalControl";
                }
                break;
            }
        }
    }
}
function GetRealValue(objObject) {
    if (typeof (objObject) == 'string') { objObject = document.getElementById(objObject); }
    var strReturn = "";
    if (objObject != null) {
        if (objObject.className != "GhostControl") {
            strReturn = (typeof (objObject.value) == 'string') ? objObject.value : "";
        }
    }
    return strReturn.trim();
}
function AddGhostControl(strControlName, strDefaultValue, strPasswordProxyControlName) {
    var objControl = null;
    var objPasswordProxyControl = null;
    if ((strControlName != null) && (strControlName != "")) {
        objControl = document.getElementById(strControlName);
    }
    if ((strPasswordProxyControlName != null) && (strPasswordProxyControlName != "")) {
        objPasswordProxyControl = document.getElementById(strPasswordProxyControlName);
    }
    if ((objControl != null) && ((objPasswordProxyControl != null) || (strPasswordProxyControlName == null) || (strPasswordProxyControlName == ""))) {
        m_Defaults[m_Defaults.length] = new Object();
        m_Defaults[m_Defaults.length - 1].Id = strControlName;
        m_Defaults[m_Defaults.length - 1].Default = strDefaultValue;
        m_Defaults[m_Defaults.length - 1].PasswordProxyId = strPasswordProxyControlName;
        if (objPasswordProxyControl == null) {
            if (objControl.value == "") {
                objControl.value = strDefaultValue;
                objControl.className = "GhostControl";
            }
            if (objControl.addEventListener) {
                objControl.addEventListener("focus", Focused, false);
                objControl.addEventListener("blur", Blurred, false);
            } else if (objControl.attachEvent) {
                objControl.attachEvent("onfocus", Focused);
                objControl.attachEvent("onblur", Blurred);
            }
        } else {
            objPasswordProxyControl.className = "GhostControl";
            if (objPasswordProxyControl.value == "") {
                objPasswordProxyControl.value = strDefaultValue;
            }
            objControl.className = "NormalControl";
            if (objControl.addEventListener) {
                objPasswordProxyControl.addEventListener("focus", Focused, false);
                objPasswordProxyControl.addEventListener("blur", Blurred, false);
                objControl.addEventListener("focus", Focused, false);
                objControl.addEventListener("blur", Blurred, false);
            } else if (objControl.attachEvent) {
                objPasswordProxyControl.attachEvent("onfocus", Focused);
                objPasswordProxyControl.attachEvent("onblur", Blurred);
                objControl.attachEvent("onfocus", Focused);
                objControl.attachEvent("onblur", Blurred);
            }
            objPasswordProxyControl.style.display = "block";
            objControl.style.display = "none";
        }
    }
}
function SetControlValue(strControlName, strValue) {
    if (strControlName != null) {
        var objControl = document.getElementById(strControlName);
        if (objControl != null) {
            if ((strValue != null) && (strValue != "")) {
                for (var intCounter = 0; intCounter < m_Defaults.length; intCounter++) {
                    if (m_Defaults[intCounter].Id == strControlName) {
                        if ((m_Defaults[intCounter].PasswordProxyId != null) && (m_Defaults[intCounter].PasswordProxyId != "")) {
                            var objPasswordProxyControl = document.getElementById(m_Defaults[intCounter].PasswordProxyId);
                            if (objPasswordProxyControl != null) {
                                objControl.style.display = "block";
                                objControl.value = strValue;
                                objPasswordProxyControl.style.display = "none";
                                objPasswordProxyControl.className = "GhostControl";
                                objPasswordProxyControl.value = m_Defaults[intCounter].Default;
                            }
                        } else {
                            objControl.className = "NormalControl";
                            objControl.value = strValue;
                        }
                        break;
                    }
                }
            } else {
                for (var intCounter = 0; intCounter < m_Defaults.length; intCounter++) {
                    if (m_Defaults[intCounter].Id == strControlName) {
                        if ((m_Defaults[intCounter].PasswordProxyId != null) && (m_Defaults[intCounter].PasswordProxyId != "")) {
                            var objPasswordProxyControl = document.getElementById(m_Defaults[intCounter].PasswordProxyId);
                            if (objPasswordProxyControl != null) {
                                objControl.style.display = "none";
                                objControl.value = "";
                                objPasswordProxyControl.style.display = "block";
                                objPasswordProxyControl.className = "GhostControl";
                                objPasswordProxyControl.value = m_Defaults[intCounter].Default;
                            }
                        } else {
                            objControl.className = "GhostControl";
                            objControl.value = m_Defaults[intCounter].Default;
                        }
                        break;
                    }
                }
            }
        }
    }
}
function ForceBlur(objObject) {
    try { objObject.focus(); } catch (e) { }
    try { objObject.blur(); } catch (e) { }
}
var SetValue = function(strControl, strValue) {
    if (typeof (strControl) != 'string') {
        try { strControl = strControl.id; }
        catch (e) { strControl = ""; ; }
    }
    try {document.getElementById(strControl).value = strValue;} catch (e) { }
    SetControlValue(strControl, strValue);
}
// End Ghost Control js //

//Validation Scripts //
function ValidationObject() {
    var objValidate = {
        Integer: function ValidateInteger(strValue) {
            var intPattern = /^[0-9]$/;
            return intPattern.test(strValue);
        },
        Email: function(strValue) {
            var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
            return emailPattern.test(strValue);
        },
        NotEmpty: function(strValue) {
            return (strValue !== "" && strValue !== null);
        },
        Phone: function(strValue) {
            var phonePattern = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;
            return phonePattern.test(strValue);
        },
        PhoneEx: function(strValue) {
            if (strValue !== "") {
                var phonePattern = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;
                return phonePattern.test(strValue);
            } else { return true; }
        },
        ZipCode: function(strZip) {
            var zipCodePattern = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
            return zipCodePattern.test(strZip);
        },
        Password: function(strValue) {
            var anPattern = /^[a-z][-a-z0-9_ ]{6,20}$/i;
            return anPattern.test(strValue);
        },
        GetElement: function(strId) {
            if (document.getElementById(strId) === null) { return { className: "" }; }
            else { return document.getElementById(strId); }
        }
    };
    return objValidate;
}
function IsEmpty(strObject) {
    var objObject = document.getElementById(strObject);
    var bolReturn = true;
    if (objObject != null) { bolReturn = (GetRealValue(objObject).trim().length == 0); }
    return bolReturn;
}
function CheckRequired(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = (GetRealValue(objObject).trim().length > 0);
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function CheckDate(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = IsDate(GetRealValue(objObject).trim());
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function CheckSSN(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = IsSSN(GetRealValue(objObject).trim());
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function CheckEmailAddress(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = IsEmailAddress(GetRealValue(objObject).trim());
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function CheckEmailAddressNotRequired(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        if (GetRealValue(objObject).trim().length > 0) {
            bolReturn = IsEmailAddress(GetRealValue(objObject).trim());
            objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
        } else {
            objErrorObject.className = "Label";
            bolReturn = true;
        }
    }
    return bolReturn;
}
function CheckMatch(strObject, strObjectToMatch, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objObjectToMatch = document.getElementById(strObjectToMatch);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objObjectToMatch != null) && (objErrorObject != null)) {
        bolReturn = (GetRealValue(objObject).trim() == objObjectToMatch.value.trim());
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}

function CheckPhoneNumber(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = IsPhoneNumber(GetRealValue(objObject).trim());
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function CheckPhoneNumberNotRequired(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        if (GetRealValue(objObject).trim().length > 0) {
            bolReturn = IsPhoneNumber(GetRealValue(objObject).trim());
            objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
        } else {
            objErrorObject.className = "Label";
            bolReturn = true;
        }
    }
    return bolReturn;
}
function CheckWholeNumberNotRequired(strObject, strErrorObject) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        if (GetRealValue(objObject).trim().length > 0) {
            bolReturn = IsWholeNumber(GetRealValue(objObject).trim());
            objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
        } else {
            objErrorObject.className = "Label";
            bolReturn = true;
        }
    }
    return bolReturn;
}
function CheckWholeNumberRange(strObject, strErrorObject, intMinValue, intMaxValue) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = IsWholeNumber(GetRealValue(objObject).trim());
        if (bolReturn == true) {
            var intValue = parseInt(GetRealValue(objObject).trim(), 10);
            if (isNaN(intValue) == true) { intValue = 0; }
            bolReturn = ((intValue >= intMinValue) && (intValue <= intMaxValue));
        }
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }

    return bolReturn;
}
function CheckCurrencyRange(strObject, strErrorObject, dblMinValue, dblMaxValue) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        bolReturn = IsCurrency(GetRealValue(objObject).trim());
        if (bolReturn == true) {
            var dblValue = parseFloat(GetRealValue(objObject).trim().replace(/^\$/gi, ''));
            if (isNaN(dblValue) == true) { dblValue = 0.00; }
            bolReturn = ((dblValue >= dblMinValue) && (dblValue <= dblMaxValue));
        }
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function CheckWholeNumberRangeNotRequired(strObject, strErrorObject, intMinValue, intMaxValue) {
    var objObject = document.getElementById(strObject);
    var objErrorObject = document.getElementById(strErrorObject);
    var bolReturn = false;
    if ((objObject != null) && (objErrorObject != null)) {
        if (GetRealValue(objObject).trim().length > 0) {
            bolReturn = IsWholeNumber(GetRealValue(objObject).trim());
            if (bolReturn == true) {
                var intValue = parseInt(GetRealValue(objObject).trim(), 10);
                if (isNaN(intValue) == true) { intValue = 0; }
                bolReturn = ((intValue >= intMinValue) && (intValue <= intMaxValue));
            }
        } else {
            bolReturn = true;
        }
        objErrorObject.className = (bolReturn == true) ? "Label" : "LabelError";
    }
    return bolReturn;
}
function IsWholeNumber(strValue) {
    var bolReturn = false;
    if (strValue != null) {
        strValue = RemoveCommas(strValue);
        bolReturn = (strValue.toString().trim().match(/^[0-9]+$/) != null);
    }
    return bolReturn;
}
function IsCurrency(strValue) {
    var bolReturn = false;
    if (strValue != null) {
        strValue = RemoveCommas(strValue);
        bolReturn = (strValue.toString().trim().match(/^\$?[0-9]+\.?[0-9]{0,2}$/) != null);
    }
    return bolReturn;
}
function IsZipCode(strValue) {
    var bolReturn = false;
    if (strValue != null) { bolReturn = (strValue.toString().trim().match(/^[0-9]{5}$/) != null); }
    return bolReturn;
}
function IsPhoneNumber(strValue) {
    var bolReturn = false;
    if (strValue != null) { bolReturn = (strValue.toString().trim().match(/^\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}$/) != null); }

    return bolReturn;
}
function IsEmailAddress(strValue) {
    var bolReturn = false;
    if (strValue != null) { bolReturn = (strValue.toString().trim().match(/^[A-Z0-9._%-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,}$/i) != null); }
    return bolReturn;
}
function IsDate(strValue) {
    var bolReturn = false;
    if (strValue != null) {
        if (strValue.toString().trim().match(/^\b[0-9]{1,2}([\/-]{1})[0-9]{1,2}\1{1}([0-9]{2})?[0-9]{2}\b$/) != null) {
            var strParts = strValue.toString().trim().split(/(\/|-)/);
            var intMonth = 0;
            var intDay = 0;
            var intYear = 0;
            if (strParts.length == 3) {
                intMonth = parseInt(strParts[0].trim(), 10);
                intDay = parseInt(strParts[1].trim(), 10);
                intYear = parseInt(strParts[2].trim(), 10);
            } else if (strParts.length == 5) {
                intMonth = parseInt(strParts[0].trim(), 10);
                intDay = parseInt(strParts[2].trim(), 10);
                intYear = parseInt(strParts[4].trim(), 10);
            }
            intMonth -= 1;
            if ((intMonth < 12) && (intDay < 32)) {
                var intDays = new Array();
                intDays[0] = 31;
                intDays[1] = GetFebruaryDays(intYear);
                intDays[2] = 31;
                intDays[3] = 30;
                intDays[4] = 31;
                intDays[5] = 30;
                intDays[6] = 31;
                intDays[7] = 31;
                intDays[8] = 30;
                intDays[9] = 31;
                intDays[10] = 30;
                intDays[11] = 31;
                if (intDay <= intDays[intMonth]) { bolReturn = true; }
            }
        }
    }
    return bolReturn;
}
function GetFebruaryDays(intYear) {
    var intDays = 28;
    if ((((intYear % 4) == 0) && ((intYear % 100) != 0)) || (intYear % 400) == 0) { intDays = 29; }
    return intDays;
}
function IsSSN(strValue) {
    var bolReturn = false;
    if (strValue != null) { bolReturn = (strValue.toString().trim().match(/^(?:(^[0-9]{3}-[0-9]{2}-[0-9]{4}$)|(\b[0-9]{3}[0-9]{2}[0-9]{4}\b))$/) != null); }
    return bolReturn;
}
function RemoveCommas(strValue) {
    var strReturn = strValue;
    if (strReturn != null) { strReturn = strReturn.toString().replace(/,/g, ""); }
    return strReturn;
}
// End Validation Scripts //


