﻿var Throbber = {

    throbberDiv: null,
    pageManager: null,

    init: function () {
        this.throbberDiv = document.getElementById("throbber");
        this.throbberDiv.style.position = 'absolute';
        this.throbberDiv.style.display = 'none';
        this.throbberDiv.style.backgroundColor = '#FFFFFF';
        this.throbberDiv.style.color = '#000000';
        this.throbberDiv.style.width = '320px';
        this.throbberDiv.style.border = 'solid 2px #F7941D';
        this.throbberDiv.style.textAlign = 'center';
        this.throbberDiv.style.paddingTop = '45px';
        this.throbberDiv.style.paddingBottom = '45px';
        var opacity = 90;
        this.throbberDiv.style.opacity = opacity / 100;
        this.throbberDiv.style.filter = 'alpha(opacity=' + opacity + ')';
        this.throbberDiv.style.zIndex = '2000000';

        this._setPageManager();
    },

    _setPageManager: function () {
        if (typeof Sys != 'undefined') {
            Throbber.pageManager = Sys.WebForms.PageRequestManager.getInstance();
            Throbber.pageManager.add_beginRequest(Throbber.beginRequest);
            Throbber.pageManager.add_endRequest(Throbber.endRequest);
        }
    },

    beginRequest: function (sender, args) {
        if (!Throbber.pageManager) {
            Throbber._setPageManager();
        }
        try {
            var scrollLeft = 0, scrollTop = 0;
            if (document.documentElement && document.documentElement.scrollTop) {
                scrollLeft = document.documentElement.scrollLeft;
                scrollTop = document.documentElement.scrollTop;
            }

            var screenWidth = 800,
                screenHeight = 500;
            if (document.documentElement && document.documentElement.clientHeight) {
                screenWidth = document.documentElement.clientWidth;
                screenHeight = document.documentElement.clientHeight;
            }

            Throbber.throbberDiv.style.display = 'block';

            var leftOffset = scrollLeft + (screenWidth - Throbber.throbberDiv.offsetWidth) / 2;
            var topOffset = scrollTop + (screenHeight - Throbber.throbberDiv.offsetHeight) / 2;
            Throbber.throbberDiv.style.top = topOffset + 'px';
            Throbber.throbberDiv.style.left = leftOffset + 'px';

        }
        catch (Error) {

        }
    },

    endRequest: function (sender, args) {
        try {
            Throbber.throbberDiv.style.display = 'none';
        }
        catch (Error) {

        }
    }
};
Throbber.init();

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);

function beginRequest(sender, args) {
    try { Throbber.beginRequest(); } catch (error) { }
}
function endRequest(sender, args) {
    try { Throbber.endRequest(); } catch (error) { }
}
