﻿var Format = {
    Address: function(addr1, addr2, strCity, strState, strZip) {
        var strReturn = (typeof (addr1) == "string" && addr1) ? (addr1 + "<br />") : "";
        strReturn += (typeof (addr2) == "string" && addr2) ? addr2 + "<br />" : "";
        strReturn += (typeof (strCity) == "string" && strCity) ? (strCity + ", ") : "";
        strReturn += (typeof (strState) == "string" && strState) ? (strState + " ") : "";
        strReturn += (typeof (strZip) == "string" && strZip) ? strZip : "";
        return strReturn || "";
    },
    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; }
    },
    Date: function(obj, strFormat) {
        obj = ({ "string": true, "number": true}[typeof (obj)]) ? new Date(obj) : obj;
        strFormat = (typeof (strFormat) == "string") ? strFormat : "MM/dd/yyyy";
        return ((obj && obj.format && (obj > (new Date("01/01/0001")))) ? obj.format(strFormat) : "");
    }
}

// emulate C# string class
var string = {
    Format: function(strString, lstParams) {
        var strReturn = strString;
        var args = arguments;

        if (typeof (lstParams) != "object" && args.length > 1) {
            lstParams = (function() {
                var arrTemp = [];
                for (var i = 1; i < args.length; i++) { arrTemp.push(args[i]); }
                return arrTemp;
            })();
        }

        if ((strReturn) && (lstParams) && (lstParams.length > 0)) {
            for (var key in lstParams) {
                try {
                    var objRegEx = new RegExp("\\{" + key + "\\}", "gi");
                    strReturn = strReturn.replace(objRegEx, lstParams[key]);
                } catch (e) {

                }
            }
        }

        return strReturn;
    },
    IsNullOrEmpty: function(strString) {
        return (((typeof (strString) == "string") && (strString)) ? true : false);
    }
};