﻿jQuery(document).ready(function () {

    if (typeof (avaya_info) != "undefined") {

        avaya_refresh();

    }
    else {

        jQuery('.noavayadiv').show();
    }

});

var avaya_bound = false;

function avaya_refresh() {

    if (!avaya_bound) {
        jQuery('a.avayalink').bind('click', avaya_chat_lastchance);
        avaya_bound = true;
    }
    var response = avaya_showchat();
    if (response) {

        jQuery('.avayadiv').show();
        jQuery('.noavayadiv').hide();
    }
    else {

        jQuery('.avayadiv').hide();
        jQuery('.noavayadiv').show();
    }
    jQuery('input.avaya_available').val(response);

    setTimeout("avaya_refresh()", 1000);
}

function avaya_showchat() {
    var datenow = new Date();

    if (typeof (avaya_info) != "undefined") {
        var servertime = new Date(datenow.getTime() - datenow.getTimezoneOffset() * 60000 + avaya_info.ServerTimeUTCOffset);
        jQuery(".updatetime").html('Our local time: ' + servertime);
        //alert('ok');
        var ssd = servertime.getTime() - servertime.getHours() * 3600000 - servertime.getMinutes() * 60000 - servertime.getSeconds() * 1000 - servertime.getMilliseconds();
        var serverstartday = new Date(ssd);
        //make sure today isn't a holiday
        for (var i = 0; i < avaya_info.Holidays.length; i++) {
            var holiday = new Date(avaya_info.Holidays[i]);
            if (servertime.getTime() >= holiday.getTime() && servertime.getTime() < holiday.getTime() + 86400000) {
                return false;
            }
        }
        //find a slot that is 'available'
        for (var i = 0; i < avaya_info.Availabilities.length; i++) {
            var avail = avaya_info.Availabilities[i];
            if (servertime.getDay() >= avail.StartDay && servertime.getDay() <= avail.EndDay) {
                var start = avail.StartTimeOffsetMinutes * 60000;
                var end = avail.EndTimeOffsetMinutes * 60000;
                if (servertime.getTime() >= ssd + start && servertime.getTime() <= ssd + end) {
                    return true;
                }
            }
        }
    }
    return false;
}

function avaya_chat_lastchance() {
    if (avaya_showchat()) {
        window.location = avaya_info.NavigateUrl + '&referer=' + escape(window.location);
    }
    ;
}
