﻿RegisterNamespace('UpdateProgress');

UpdateProgress.Enabled = true;
UpdateProgress.Timeout = null;

UpdateProgress.Hide = function() {
    $.unblockUI();
}

UpdateProgress.OnEndRequest = function(sender, args) {
    clearTimeout(UpdateProgress.Timeout);
    UpdateProgress.Hide();
}

UpdateProgress.OnInitializeRequest = function(sender, args) {
    UpdateProgress.Timeout = setTimeout(UpdateProgress.Show, 1000);
}

UpdateProgress.SetEnabled = function(_enabled) {
    UpdateProgress.Enabled = true;
    UpdateProgress.Hide();
    UpdateProgress.Enabled = _enabled;
}

UpdateProgress.Show = function() {
    if (UpdateProgress.Enabled) {
        $.blockUI({ css: {
                border: 'none',
                padding: '15px',
                backgroundColor: '#000',
                'border-radius': '10px',
                '-moz-border-radius': '10px',
                '-webkit-border-radius': '10px',
                opacity: .75,
                color: '#fff'
            }
        });
    }
}

$().ready(function() {
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(UpdateProgress.OnInitializeRequest);
    prm.add_endRequest(UpdateProgress.OnEndRequest);
});