// Javascript logic for the CallbackIndicator web control.
// Javascript logic for the CallbackIndicator web control.

function ShowIndicator()
{
    if(CallbackIndicatorClientId)
    {
        var ind = document.getElementById(CallbackIndicatorClientId);
        if(ind)
        {
            ind.style.visibility = "visible";
            ind.style.display = "";
        }
    }
}

function HideIndicator()
{
    if(__pendingCallbacks)
    {
        var cnt = 0;
        for(var i = 0; i < __pendingCallbacks.length; i++)
            if(__pendingCallbacks[i])
                if(__pendingCallbacks[i].xmlRequest)
                    if(__pendingCallbacks[i].xmlRequest.readyState != 4)
                        cnt++;
        if(cnt > 0) return; // There are still pending callbacks
        if(CallbackIndicatorClientId)
        {
            var ind = document.getElementById(CallbackIndicatorClientId);
            if(ind)
            {
                ind.style.visibility = "hidden";
                ind.style.display = "none";
            }
        }
    }
}

var WebForm_DoCallback_Original;
var WebForm_ExecuteCallback_Original;

if(typeof(WebForm_DoCallback == "function"))
{
    WebForm_DoCallback_Original = WebForm_DoCallback;
    WebForm_DoCallback = WebForm_DoCallback_CallbackIndicator;
}
if(typeof(WebForm_ExecuteCallback == "function"))
{
    WebForm_ExecuteCallback_Original = WebForm_ExecuteCallback;
    WebForm_ExecuteCallback = WebForm_ExecuteCallback_CallbackIndicator;
}

function WebForm_DoCallback_CallbackIndicator(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync)
{
    ShowIndicator();
    WebForm_DoCallback_Original(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync);    
}

function WebForm_ExecuteCallback_CallbackIndicator(callbackObject) {
    HideIndicator();
    WebForm_ExecuteCallback_Original(callbackObject);
}