window.eviivo = window.eviivo ? window.eviivo : {};
window.eviivo.webcore = window.eviivo.webcore ? window.eviivo.webcore : {};
window.eviivo.webcore.formatting = window.eviivo.webcore.formatting ? window.eviivo.webcore.formatting : {};

window.eviivo.webcore.formatting.datetime = function () {
    var namespace = "eviivo.webcore.formatting.datetime";

    function evDisplayLongTime(date, culture) {
        // hh:MM:ss
        return formatTime(date, culture, "long");
    }
    function evDisplayShortTime(date, culture) {
        // hh:MM
        return formatTime(date, culture, "short");
    }
    function evDisplayLongDate(date, culture) {
        // ddd dd-mmm-yy
        return formatDate(date, culture, "long");
    }
    function evDisplayMediumDate(date, culture) {
        // dd-mmm-yy
        return formatDate(date, culture, "medium");
    }
    function evDisplayShortDate(date, culture) {
        // dd-mmm-yy (should be dd-mm-yy)
        return formatDate(date, culture, "short");
    }
    function evDisplayLongDateTime(date, culture) {
        return formatDate(date, culture, "long") + " " + formatTime(date, culture, "short");
    }
    function evDisplayExtraLongDateTime(date, culture) {
        return formatDate(date, culture, "long") + " " + formatTime(date, culture, "long");
    }
    function evDisplayLongTimeDate(date, culture) {
        return formatTime(date, culture, "short") + " " + formatDate(date, culture, "long");
    }
    function evDisplayMediumDateTime(date, culture) {
        return formatDate(date, culture, "medium") + " " + formatTime(date, culture, "short");
    }
    function evDisplayMediumTimeDate(date, culture) {
        return formatTime(date, culture, "short") + " " + formatDate(date, culture, "medium");
    }
    function evDisplayShortDateTime(date, culture) {
        return formatDate(date, culture, "short") + " " + formatTime(date, culture, "short");
    }
    function evDisplayShortTimeDate(date, culture) {
        return formatTime(date, culture, "short") + " " + formatDate(date, culture, "short");
    }

    function evStandardIso8601Date(date) {
        // yyyymmdd
        return formatDate(date, "iso8601", "short");
    }
    function evStandardIso8601DateTimeUtc(date) {
        // yyyymmddThhmmss
        return formatDate(date, "iso8601", "short") + "T" + formatTime(date, "iso8601", "short");
    }
    function evStandardIso8601DateExtended(date) {
        // yyyy-mm-dd
        return formatDate(date, "iso8601", "long");
    }

    function evStandardIso8601DateTimeUtcExtended(date) {
        // yyyy-mm-ddThh:mm:ss
        return formatDate(date, "iso8601", "long") + "T" + formatTime(date, "iso8601", "long");
    }

    function evStandard24HourTime(date) {
        return formatTime(date, "iso8601", "short");
    }

    // public method to - assess current culture passed into function and calculate calendar first day offset
    function evStandardFirstDayCalendarOffset(culture) {
        return getFirstDayCalendarOffset(culture.toLowerCase());
    }

    // public method to - assess current culture passed into function and calculate calendar first day offset
    function evGetDateDisplayFormat(culture, type) {
        return getDateDisplayFormat(culture.toLowerCase(), type);
    }

    // private method to - assess current culture passed into function and calculate calendar first day offset
    function getFirstDayCalendarOffset(culture) {
        var regionals = window.eviivo.webcore.formatting.regionals[culture];
        if (regionals == null) {
            regionals = window.eviivo.webcore.formatting.regionals["default"];
        }
        return regionals.firstDayCalendarOffset;
    }

    // private method to - assess current culture passed into function and calculate calendar first day offset
    function getDateDisplayFormat(culture, type) {
        var regionals = window.eviivo.webcore.formatting.regionals[culture];
        if (regionals == null) {
            regionals = window.eviivo.webcore.formatting.regionals["default"];
        }
        if (type === "long") {
            return regionals.jQDateFormat.long;
        } else if (type === "short") {
            return regionals.jQDateFormat.short;
        } else {
            return regionals.jQDateFormat.medium;
        }
    }

    //NOTE: replace and indexOf are case sensitive
    function formatDate(date, culture, formatType) {
        if (date == null) {
            return null;
        }

        if (culture == null || culture == "") {
            throw (namespace + ": please specify the 'culture' code parameter");
        }

        culture = culture.toLowerCase();

        if (date instanceof Date) {
            var regionals = window.eviivo.webcore.formatting.regionals[culture];
            if (regionals == null) {
                regionals = window.eviivo.webcore.formatting.regionals["default"];
            }

            var dateResult = regionals.dateFormat[formatType].slice(0);
            var day = date.getDate();
            var weekDay = date.getDay();

            var regExNonPaddedDay1 = new RegExp("([\\w\\d ]+[ \\.\\-/,])(d{1})([ \\.\\-/,]+)([\\w\\d \\.\\-/,]+)");
            var regExNonPaddedDay2 = new RegExp("[^yYdDmM \\.\\-/,](d{1})([ \\.\\-/,]+)([yYdDmM \\.\\-/,]+)");
            if (regExNonPaddedDay1.test(dateResult)) {
                dateResult = dateResult.replace(regExNonPaddedDay1, "$1" + day + "$3$4");
            } else if (regExNonPaddedDay2.test(dateResult)) {
                dateResult = dateResult.replace(regExNonPaddedDay2, day + "$2$3");
            }

            if (regionals.dayNames != null) {
                dateResult = dateResult.replace("dddd", regionals.dayNames.long[weekDay]);
                dateResult = dateResult.replace("ddd", regionals.dayNames.medium[weekDay]);
                dateResult = dateResult.replace("DD", regionals.dayNames.short[weekDay]);
            }
            dateResult = dateResult.replace("dd", padZero(day));

            var month = date.getMonth();
            var regExNonPaddedMonth1 = new RegExp("([\\w\\d ]+[ \\.\\-/,])(M{1})([ \\.\\-/,]+)([\\w\\d \\.\\-/,]+)");
            var regExNonPaddedMonth2 = new RegExp("[^yYdDmM \\.\\-/,](M{1})([ \\.\\-/,]+)([yYdDmM \\.\\-/,]+)");
            if (regExNonPaddedMonth1.test(dateResult)) {
                dateResult = dateResult.replace(regExNonPaddedMonth1, "$1" + month + "$3$4");
            } else if (regExNonPaddedMonth2.test(dateResult)) {
                dateResult = dateResult.replace(regExNonPaddedMonth2, month + "$2$3");
            }

            if (regionals.monthNames != null) {
                dateResult = dateResult.replace("MMMM", regionals.monthNames.long[month]);
                dateResult = dateResult.replace("MMM", regionals.monthNames.medium[month]);
            }
            dateResult = dateResult.replace("MM", padZero(month + 1));

            dateResult = dateResult.replace("yyyy", date.getFullYear());
            dateResult = dateResult.replace("yy", date.getFullYear().toString().substring(2));
            return dateResult;
        } else {
            return date.toLocaleString();
        }
    }

    //NOTE: replace and indexOf are case sensitive
    function formatTime(date, culture, formatType) {
        if (date == null) {
            return null;
        }

        if (culture == null || culture == "") {
            throw (namespace + ": please specify the 'culture' code parameter");
        }

        culture = culture.toLowerCase();

        if (date instanceof Date) {
            var regionals = window.eviivo.webcore.formatting.regionals[culture];
            if (regionals == null) {
                regionals = window.eviivo.webcore.formatting.regionals["default"];
            }

            var timeResult = regionals.clockFormat[formatType].slice(0);

            var cFormat = regionals.clockFormat.mode;
            if (cFormat == null) {
                cFormat = 24;
            }

            if (timeResult.indexOf("tt") < 0 && timeResult.indexOf("t") > -1) {
                timeResult = timeResult.replace("t", cFormat == 24 ? "hh:mm" : "h:mm tt");
            }

            if (timeResult.indexOf("tt") < 0 && timeResult.indexOf("T") > -1) {
                timeResult = timeResult.replace("T", cFormat == 24 ? "hh:mm:ss" : "h:mm:ss tt");
            }

            var hours = date.getHours();
            if (cFormat == 12) {
                var ampm = hours >= 12 ? "PM" : "AM";
                timeResult = timeResult.replace("tt", ampm);
                hours = hours % 12;
                hours = hours ? hours : 12; // the hour '0' should be '12'
            }
            timeResult = timeResult.replace("hh:", padZero(hours) + ":");
            timeResult = timeResult.replace("h:", hours + ":");
            timeResult = timeResult.replace(":mm", ":" + padZero(date.getMinutes()));
            timeResult = timeResult.replace(":ss", ":" + padZero(date.getSeconds()));

            return timeResult;
        } else {
            return date.toLocaleString();
        }
    }

    function padZero(n) { return n < 10 ? '0' + n : n; }

    return {
        evDisplayLongTime: evDisplayLongTime,
        evDisplayShortTime: evDisplayShortTime,
        evDisplayLongDate: evDisplayLongDate,
        evDisplayMediumDate: evDisplayMediumDate,
        evDisplayShortDate: evDisplayShortDate,
        evDisplayLongDateTime: evDisplayLongDateTime,
        evDisplayExtraLongDateTime: evDisplayExtraLongDateTime,
        evDisplayMediumDateTime: evDisplayMediumDateTime,
        evDisplayShortDateTime: evDisplayShortDateTime,
        evDisplayLongTimeDate: evDisplayLongTimeDate,
        evDisplayMediumTimeDate: evDisplayMediumTimeDate,
        evDisplayShortTimeDate: evDisplayShortTimeDate,
        evStandard24HourTime: evStandard24HourTime,
        evStandardIso8601Date: evStandardIso8601Date,
        evStandardIso8601DateTimeUtc: evStandardIso8601DateTimeUtc,
        evStandardIso8601DateExtended: evStandardIso8601DateExtended,
        evStandardIso8601DateTimeUtcExtended: evStandardIso8601DateTimeUtcExtended,
        evStandardFirstDayCalendarOffset: evStandardFirstDayCalendarOffset,
        evGetDateDisplayFormat: evGetDateDisplayFormat
    };
}();

Date.prototype.evGetDateDisplayFormat = function (culture, type) {
    return eviivo.webcore.formatting.datetime.evGetDateDisplayFormat(culture, type);
}

Date.prototype.evStandardFirstDayCalendarOffset = function (culture) {
    return eviivo.webcore.formatting.datetime.evStandardFirstDayCalendarOffset(culture);
}

Date.prototype.evDisplayLongTime = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayLongTime(this, culture);
}

Date.prototype.evDisplayShortTime = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayShortTime(this, culture);
}

Date.prototype.evDisplayLongDate = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayLongDate(this, culture);
}

Date.prototype.evDisplayMediumDate = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayMediumDate(this, culture);
}

Date.prototype.evDisplayShortDate = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayShortDate(this, culture);
}

Date.prototype.evDisplayLongDateTime = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayLongDateTime(this, culture);
}

Date.prototype.evDisplayExtraLongDateTime = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayExtraLongDateTime(this, culture);
}

Date.prototype.evDisplayMediumDateTime = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayMediumDateTime(this, culture);
}

Date.prototype.evDisplayShortDateTime = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayShortDateTime(this, culture);
}

Date.prototype.evDisplayLongTimeDate = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayLongTimeDate(this, culture);
}

Date.prototype.evDisplayMediumTimeDate = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayMediumTimeDate(this, culture);
}

Date.prototype.evDisplayShortTimeDate = function (culture) {
    return eviivo.webcore.formatting.datetime.evDisplayShortTimeDate(this, culture);
}

Date.prototype.evStandardIso8601Date = function () {
    return eviivo.webcore.formatting.datetime.evStandardIso8601Date(this);
}
Date.prototype.evStandardIso8601DateTimeUtc = function () {
    return eviivo.webcore.formatting.datetime.evStandardIso8601DateTimeUtc(this);
}
Date.prototype.evStandardIso8601DateExtended = function () {
    return eviivo.webcore.formatting.datetime.evStandardIso8601DateExtended(this);
}
Date.prototype.evStandardIso8601DateTimeUtcExtended = function () {
    return eviivo.webcore.formatting.datetime.evStandardIso8601DateTimeUtcExtended(this);
}

Date.prototype.evStandard24HourTime = function () {
    return eviivo.webcore.formatting.datetime.evStandard24HourTime(this);
}

window.eviivo = window.eviivo ? window.eviivo : {};
window.eviivo.webcore.formatting = window.eviivo.webcore.formatting ? window.eviivo.webcore.formatting : {};
window.eviivo.webcore.formatting.regionals = window.eviivo.webcore.formatting.regionals ? window.eviivo.webcore.formatting.regionals : {};

window.eviivo.webcore.formatting.regionals["iso8601"] = {
    monthNames: null,
    dayNames: null,
    dateFormat: {
        long: "yyyy-MM-dd",
        medium: null,
        short: "yyyyMMdd"
    },
    jQDateFormat: {
        long: "yy-mm-dd",
        medium: null,
        short: "yymmdd"
    },
    clockFormat: {
        mode: 24,
        long: "hh:mm:ss",
        short: "hhmmss"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["default"] = {
    monthNames: {
        long: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        medium: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        short: null
    },
    dayNames: {
        long: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
        medium: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["en-gb"] = {
    monthNames: {
        long: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        medium: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        short: null
    },
    dayNames: {
        long: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
        medium: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["en-us"] = {
    monthNames: {
        long: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        medium: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        short: null
    },
    dayNames: {
        long: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
        medium: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
    },
    dateFormat: {
        long: "ddd MMM d, yyyy",
        medium: "MMM d, yyyy",
        short: "M/d/yy"
    },
    jQDateFormat: {
        long: "D M d, yy",
        medium: "M d, yy",
        short: "m/d/y"
    },
    clockFormat: {
        mode: 12,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 0
};

window.eviivo.webcore.formatting.regionals["fr-fr"] = {
    monthNames: {
        long: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
        medium: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
        short: null
    },
    dayNames: {
        long: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
        medium: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
        short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["it-it"] = {
    monthNames: {
        long: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'],
        medium: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
        short: null
    },
    dayNames: {
        long: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'],
        medium: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
        short: ['do', 'lu', 'ma', 'me', 'gi', 've', 'sa']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["de-de"] = {
    monthNames: {
        long: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
        medium: ['Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
        short: null
    },
    dayNames: {
        long: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
        medium: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["pt-pt"] = {
    monthNames: {
        long: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],
        medium: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],
        short: null
    },
    dayNames: {
        long: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'],
        medium: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],
        short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["pt-br"] = {
    monthNames: {
        long: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],
        medium: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],
        short: null
    },
    dayNames: {
        long: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'],
        medium: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],
        short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};

window.eviivo.webcore.formatting.regionals["es-es"] = {
    monthNames: {
        long: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],
        medium: ['ene.', 'feb.', 'mar.', 'abr.', 'may.', 'jun.', 'jul.', 'ago.', 'sep.', 'oct.', 'nov.', 'dic.'],
        short: null
    },
    dayNames: {
        long: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],
        medium: ['do.', 'lu.', 'ma.', 'mi.', 'ju.', 'vi.', 'sá.'],
        short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S']
    },
    dateFormat: {
        long: "ddd dd MMM yyyy",
        medium: "dd MMM yyyy",
        short: "dd-MM-yy"
    },
    jQDateFormat: {
        long: "D dd M yy",
        medium: "d M yy",
        short: "dd-M-y"
    },
    clockFormat: {
        mode: 24,
        long: "T",
        short: "t"
    },
    firstDayCalendarOffset: 1
};
function setDatepickerFormat(cultureCode) {
    var dtFormatStyle = eviivo.webcore.formatting.datetime.evGetDateDisplayFormat(cultureCode, "medium");
    jQuery.datepicker.setDefaults({ dateFormat: dtFormatStyle, altFormat: dtFormatStyle });
}
