﻿
//will hold the newyears date in milliseconds representing utc time
var haloweenDateObj = Date.UTC(new Date().getFullYear(), 9, 31);
//set the time components, represented in milliseconds
var oneDay = 86400000;
var oneHour = 3600000;
var oneMinute = 60000;
var oneSecond = 1000;

//this is a function that will show the countdown to New Years day based on the offset on 2 labels. One for the days left and one for 
//the time left. Once called, this will set a timeout to call itself again every second
function showHaloweenCountdownText(hoursOffset, daysElementId, timeElementId) {
    //get todays date in UTC milliseconds
    var today = new Date();
    today = Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), today.getUTCHours(), today.getUTCMinutes(), today.getUTCSeconds());

    //add the hours offset
    var utcOffset = oneHour * hoursOffset;

    var milisecondsLeft = (haloweenDateObj - today) - utcOffset;

    var daysLeft = Math.floor(milisecondsLeft / oneDay);
    var hoursLeft = Math.floor((milisecondsLeft % (oneDay)) / oneHour);
    var minutesLeft = Math.floor(((milisecondsLeft % (oneDay)) % (oneHour)) / oneMinute);
    var secondsLeft = Math.floor((((milisecondsLeft % (oneDay)) % (oneHour)) % (oneMinute)) / oneSecond);

    if (minutesLeft < 10)
        minutesLeft = "0" + minutesLeft;

    if (secondsLeft < 10)
        secondsLeft = "0" + secondsLeft;

    document.getElementById(daysElementId).innerHTML = daysLeft;
    document.getElementById(timeElementId).innerHTML = hoursLeft + ":" + minutesLeft + ":" + secondsLeft;

    var methodCall = "showHaloweenCountdownText(" + hoursOffset + ", '" + daysElementId + "', '" + timeElementId + "')";
    //call this method again in 1 second
    window.setTimeout(methodCall, 1000);
} //end of showHaloweenCountdownText