﻿var g_loadingMsg_to = false;

function setLoadingMsg(){
    var offSet = getScrollOffset();
    $('pageLoadingMsg').style.top = offSet['y'] + 'px';
    g_loadingMsg_to = false;
}
Event.observe(window, 'scroll',  function(){
    if(g_loadingMsg_to)
        clearTimeout(g_loadingMsg_to)
        
    g_loadingMsg_to = setTimeout(setLoadingMsg, 200);
});

function PageLoadingMsg() {
    if(arguments) 
        this.targetElement = $A(arguments);
    else                
        this.targetElement = [];
        
    this.postbackElement = false;
    this.register();
}

PageLoadingMsg.prototype = {

    beginRequest : function (sender, args) {
        this.postbackElement = args.get_postBackElement();

        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if(!prm) return;
        
        if(this.targetElement.include(this.postbackElement.id))
            this.loadingMsgShow();
    },
    
    pageLoading : function (sender, args) {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if(!prm) return;
        
        if(this.targetElement.include(this.postbackElement.id))            
            this.loadingMsgHide();
    },
    
    register : function () {
        Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this.beginRequest.bind(this));
        // Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(pageLoadingMsg_InitializeRequest);
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(this.pageLoading.bind(this)); 
    },
    
    addTargetElement : function(controlId) {
        this.targetElement.push(controlId);
    },
    
    loadingMsgShow : function (){
        var o = $('pageLoadingMsg');
        o.style.display = "";
    }, 

    loadingMsgHide : function (){
        var o = $('pageLoadingMsg');
        o.style.display = "none";
    }
} 
