﻿
function CalcLocalEventTime(easternEventTime, showTimeZone) {
    if (easternEventTime == "-1") {
        return "";
    }
    else {

        var easternTime = -5 + DaylightSavings();
        var curDate = new Date();
        var offset = ((curDate.getTimezoneOffset() / 60) * -1) - easternTime; //Hours different from local to eastern
        var newDate = new Date(new Date().toDateString() + ' ' + easternEventTime) //What will be the adjusted time of the event
        var timezone = newDate + ""
        var timezonestr = timezone.split(" ");
        var newTime = newDate.getTime(); //The time of the event in eastern time
        newTime += (offset * 3600 * 1000) //Apply the offset
        newDate.setTime(newTime)	//Set the new time


        //Return only the formatted time.
        if (offset == 0)
            return "";
        else {
            //Return only the formatted time.
            if (showTimeZone == "1")
                return "(" + FormatTime(newDate) + " " + timezonestr[4] + " local time)"; //[4] is the parsed position of the time zone string
            else
                return "(" + FormatTime(newDate) + " local time)";
        }
    }
}


function DaylightSavings() {

    var gmt = new Date;
    var lsm = new Date;
    var lso = new Date;

    lsm.setMonth(2); // March
    lsm.setDate(14); //Second Sunday in March
    var day = lsm.getDay(); // day of week of 14th
    lsm.setDate(14 - day); // 2nd Sunday

    lso.setMonth(10);   // November
    lso.setDate(7);     // First Sunday in November
    day = lso.getDay();
    lso.setDate(7 - day);

    if (gmt < lsm || gmt >= lso)
        dst = 0;
    else
        dst = 1;

    return dst;
}


function FormatTime(inDate) {
    var a_p = "";
    var curr_hour = inDate.getHours();

    if (curr_hour < 12)
        a_p = "AM";
    else
        a_p = "PM";


    if (curr_hour == 0)
        curr_hour = 12;

    if (curr_hour > 12)
        curr_hour = curr_hour - 12;

    var curr_min = inDate.getMinutes();
    curr_min = curr_min + "";
    if (curr_min.length == 1)
        curr_min = "0" + curr_min;

    return curr_hour + ":" + curr_min + " " + a_p;
}

