function Countdown() {
    var label;
    var intervalCount;
    var targetDate;
    var isMin = false;
    var displayOnly = true;

    var updateTime = function () {
        var nowDate = new Date();
        var dateDiff = targetDate - nowDate;
        var output = '';

        if (dateDiff > 0) {
            var days = Math.floor(dateDiff / (60 * 60 * 1000 * 24));
            var hours = Math.floor((dateDiff % (60 * 60 * 1000 * 24)) / (60 * 60 * 1000));
            var mins = Math.floor(((dateDiff % (60 * 60 * 1000 * 24)) % (60 * 60 * 1000)) / (60 * 1000));

            if (isMin) {
                if (days > 0) {
                    output = 'Sale ends in <span>' + days + '</span> ' + (days == 1 ? ' day' : ' days') + '!';
                } else {
                    output = 'Sale ends <span>today!</span>';
                }
            } else {
                if (days > 0) {
                    output = 'This sale expires in <span>' + days + '</span>' + (days == 1 ? ' day' : ' days') + ', <span>' + hours + '</span>' + (hours == 1 ? ' hour' : ' hours') + ' and <span>' + mins + '</span>' + (mins == 1 ? ' minute!' : ' minutes!');
                } else if (hours > 0) {
                    output = 'This sale expires in <span>' + hours + '</span>' + (hours == 1 ? ' hour' : ' hours') + ' and <span>' + mins + '</span>' + (mins == 1 ? ' minute!' : ' minutes!');
                } else {
                    output = 'This sale expires in <span>' + mins + '</span>' + (mins == 1 ? ' minute!' : ' minutes!');
                }
            }
        } else {
            if (isMin) {
                output = 'Sale <span>Extended!</span>';
            } else {
                output = 'This sale has been extended for <span>24 hours!</span>';
            }
        }

        jQuery('#' + label).html(output);
    }

    var displayDate = function () {
        var nowDate = new Date();
        var dateDiff = targetDate - nowDate;

        var output = '';
        var weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];
        var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

        if (dateDiff > 0) {
            if (isMin) {
                output = 'Sale ends <span>' + (targetDate.getMonth() + 1) + '/' + targetDate.getDate() + '!</span>';
            } else {
                output = 'Sale ends <span>' + weekdays[targetDate.getDay()] + ', ' + months[targetDate.getMonth()] + ' ' + targetDate.getDate() + '!</span>';
            }
        } else {
            var days = Math.floor(dateDiff / (60 * 60 * 1000 * 24) * -1);
            if (days < 1) {
                output = 'Sale ends <span>today!</span>';
            } else if (isMin) {
                output = 'Sale <span>Extended!</span>';
            } else {
                output = 'This sale has been extended for <span>24 hours!</span>';
            }
        }

        jQuery('#' + label).html(output);
    }

    return {
        start: function (e, date, min) {
            label = e;
            isMin = min;
            targetDate = new Date(date);

            if (!displayOnly) {
                intervalCount = setInterval(updateTime, 5000);
                targetDate.setDate(targetDate.getDate() + 1); // add extra day to expire date

                updateTime();
            } else {
                displayDate();
            }
        }
    }
}
