﻿DateTime = function() {
    // calculates current EST time based on time the page was served time.
    var servedLocalTime = (new Date()).getTime(); // datetime when the page was served
    var servedServerTime = null;
    var one_day_in_ms = 1000 * 60 * 60 * 24;

    return {
        init: function(serverTimeString) {
            servedServerTime = (new Date(Date.parse(serverTimeString))).getTime();
        },
        getCurrentTimeEST: function() {
            var currentTime = (new Date()).getTime();
            return new Date(servedServerTime + (currentTime - servedLocalTime));
        },
        shortDateFormat: function(date) {
            if (date && date.getDate && date.getMonth && date.getFullYear) {
                return (date.getMonth() + 1).toString() + '/' + date.getDate().toString() + '/' + date.getFullYear().toString();
            } else {
                return null;
            }
        },
        dateDiff: function(day1, day2) {
            return Math.floor(Math.abs(day2.getTime() - day1.getTime()) / one_day_in_ms);
        },
        addDays: function(date, n) {
            return new Date(date.getTime() + (n * one_day_in_ms));
        }
    }
} ();