﻿function CreateCountdown(id, tim, offset, compact, closed, days, fmt, lang, refresh) {
    if (lang == undefined || $.countdown.regional[lang] == undefined)
        lang = 'nl';
    $.countdown.setDefaults($.countdown.regional[lang]);
    var expirefunc = null;
    // Constructor op basis van milliseconden veilig in alle talen en browsers
    if (fmt == undefined || fmt == '')
        fmt = 'dHMs';
    if (refresh == true)
        expirefunc = DoRefresh;
    if (closed == undefined)
        closed = 'Gesloten';
    if (days == undefined)
        days = 'dagen';
    var t = parseInt(tim);
    var tot = new Date(t);
    if (compact == true)
        $(id).countdown({ until: tot, format: 'dHMS', compact: true, expiryText: closed, serverSync: serverTime, timezone: offset, compactLabels: ['y', 'm', 'w', ' ' + days], onExpiry: expirefunc });
    else
        $(id).countdown({ until: tot, compact: false, expiryText: closed, serverSync: serverTime, timezone: offset, layout: fmt, onExpiry: expirefunc });
}
function UpdateCountdown(id, tim) {
    var ms = (new Date()).getTime();
    if (ms <= tim) {
        var tot = new Date(tim);
        $(id).countdown('change', { until: tot });
    }
}
function serverTime() {
    var time = null;
    var offset = -120;
    $.ajax({
        type: "POST",
        url: "UtilityService.asmx/GetTime",
        data: "{}",
        async: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data)
        {
            time = data.d[0];
            offset = data.d[1];
        },
        error: function (http, message, exc)
        {
            window.console && console.log('Error: ' + message);
            window.console && console.log('Error: ' + exc);
            time = (new Date()).getTime();
        }
    });
    // clienttijd
    var d = new Date();

    // De datums zin nederlandse datums, dus
    // clienttijd terugrekenen naar UTC en compenseren tov Nederlandse offset, wintertijd 60 en zomertijd 120 minuten
    var tms = time + (60 * 1000 * (offset - d.getTimezoneOffset()));

    var ret = new Date(tms);

    //window.console && console.log(d);
    //window.console && console.log(ret);

    return ret;
}

function DoRefresh()
{
    __doPostBack("CountdownExpired", "");
}
