﻿function onEndRequest(sender, args)
{
    if (timeoutPointer!=null)
        clearTimeout(timeoutPointer);
    if(updatePanelID)
    {
        var upd = $get(updatePanelID);
        if(upd)
        {
            upd.style.visibility = '';  
            updatePanelID = null;  
        }     
    }
    var pnlLoading = $get('pnlLoadingForAjax'); 
    pnlLoading.style.display = 'none';
}

var updatePanelID = null;
var timeoutPointer = null;

function ShowLoadingPanel()
{
    if (updatePanelID == null)
        return;
    var upd = $get(updatePanelID);
    if(upd)
        {
            var bounds = Sys.UI.DomElement.getBounds(upd);
            upd.style.visibility = 'hidden';
            
            var pnlLoading = $get('pnlLoadingForAjax');
            pnlLoading.style.display = '';   
        }
}

function onBeginRequest(sender, args)
{    
    updatePanelID = Sys.WebForms.PageRequestManager.getInstance()._postBackSettings.panelID.split("|")[0];       
    updatePanelID = updatePanelID.replace(new RegExp('\\$', 'g'), '_')
    if (updatePanelID.lastIndexOf("_NoDisplayForAjax")>0)
        return;
    var upd = $get(updatePanelID);
    timeoutPointer = setTimeout("ShowLoadingPanel()",1000);
//    if(upd)
//    {
//        var bounds = Sys.UI.DomElement.getBounds(upd);
//        upd.style.visibility = 'hidden';
//        
//        var pnlLoading = $get('pnlLoadingForAjax');
//        pnlLoading.style.display = '';
////        pnlLoading.style.width = bounds.width;
////        pnlLoading.style.height = bounds.height;
////        $get('tblLoadingForAjax').style.height = bounds.height;
////        Sys.UI.DomElement.setLocation(pnlLoading, bounds.x, bounds.y);
//    }
}

function onInitializeRequest(sender, args)
{
    if(Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) 
    {
        args.set_cancel(true);
    }
}

function pageLoad()
{
	var obj = Sys.WebForms.PageRequestManager.getInstance();
	obj.add_beginRequest(onBeginRequest);
	obj.add_endRequest(onEndRequest);
	obj.add_initializeRequest(onInitializeRequest);
}