/*
 * P24 LiveShopping Timer
 */
var P24_JS = {
    LiveShopping :
    {
        timerStart : null,
        setTimerStart : function(hours,gmtDiff)
        {
            var now = new Date();
            this.timerStart = new Date(
                now.getYear(),
                now.getMonth(),
                now.getDay(),
                hours - gmtDiff, // Stunden
                0, // Minuten
                0, // Sekunden
                0 // Millisekunden
            );
        },
        getFormattedUnit : function(unit)
        {
            if(unit.toString().length < 2)
            {
                return '0' + unit;
            }
            return unit;
        },
        getTimer : function()
        {
            var timer = new Date();
            var timerString = timer.getTime() - timer.getTimezoneOffset();

            var differenceString = new Date(this.timerStart - timerString);
            var differenceStringFormatted = this.getFormattedUnit(differenceString.getHours()) + ':' + this.getFormattedUnit(differenceString.getMinutes()) + ':' + this.getFormattedUnit(differenceString.getSeconds());
            return differenceStringFormatted;
        },
        updateTimer : function(elementId) {
            var timerUpdateData = this.getTimer();
            document.getElementById(elementId).firstChild.data = timerUpdateData;
        },
        createMarkup : function(elementParentId,elementTag,elementData,markupElementId)
        {
            var markupElement = document.createElement(elementTag);
            markupElement.id = markupElementId;
            var markupElementData = document.createTextNode(elementData);
            document.getElementById(elementParentId).appendChild(markupElement);
            document.getElementById(markupElementId).appendChild(markupElementData);
        },
        writeTimer : function(elementId,elementTag,timerElementTagId,timerResetTime,gmtDiff)
        {
            this.setTimerStart(timerResetTime,gmtDiff);
            var timerString = this.getTimer();
            this.createMarkup(elementId,elementTag,timerString,timerElementTagId);

            window.setInterval('P24_JS.LiveShopping.updateTimer(\'' + timerElementTagId + '\')', 1000);
        }
    }
}

window.onload = function()
{
    // config
    var timerElementId = 'liveShopping';
    var timerElementTag = 'p';
    var timerElementTagId = 'liveShoppingTimer';

    // täglicher Reset-Zeitpunkt (h): 0 - 24
    var timerResetTime = 15;
    // Zeitunterschied zur Greenwich Mean Time (h)
    var timezoneDiffGMT = +1;

    P24_JS.LiveShopping.writeTimer(timerElementId,timerElementTag,timerElementTagId,timerResetTime,timezoneDiffGMT);
}
