﻿var gCountdownLimit, gCountdownPreFormat, gCountdownPostFormat, gCountdownId;

function getSecondsRemaining(dLimit) {
    var dNow = new Date();
    var dDiff = new Date(dLimit - dNow);
    return Math.floor(dDiff.valueOf() / 1000);
}

function formatCountdown(iSeconds, sFormat) {
    var iDays = Math.floor(iSeconds / 86400);
    var iHours = Math.floor(iSeconds / 3600) % 24;
    var iMinutes = Math.floor(iSeconds / 60) % 60;
    iSeconds = iSeconds % 60;
    return sFormat.replace("$Days", iDays).replace("$Hours", iHours).replace("$Minutes", iMinutes).replace("$Seconds", iSeconds);
}

function updateCounter() {
    var iSeconds = getSecondsRemaining(gCountdownLimit);
    var sHtml = "";
    if (iSeconds > 0) { sHtml = formatCountdown(iSeconds, gCountdownPreFormat); } else { sHtml = formatCountdown(-iSeconds, gCountdownPostFormat); }
    document.getElementById(gCountdownId).innerHTML = sHtml;
    setCounterTimeout();
}

function setCounterTimeout() {
    setTimeout("updateCounter()", 100);
}

function startTimer(sPreFormat, sPostFormat, dLimit, id) {
    gCountdownLimit = dLimit;
    gCountdownPreFormat = sPreFormat;
    gCountdownPostFormat = sPostFormat;
    gCountdownId = id;
    setCounterTimeout();
}


