﻿// recebe uma instancia do objeto que gerencia 
// as atualizações dentro do UpdatePanel
var prm = Sys.WebForms.PageRequestManager.getInstance();
    
prm.add_initializeRequest(InicializaRequestLoading);
prm.add_endRequest(FinalizaRequestLoading);

var _tempo = true;


//exibi o dialog na inicialização da requisição
function InicializaRequestLoading(sender, e) {
    if (prm.get_isInAsyncPostBack()) {
        e.set_cancel(true);
    }

    _tempo = true;

    setTimeout("MostrarLoading()", 500);

}

//oculta o dialog na finalização da requisição
function FinalizaRequestLoading(sender, e) {
    setTimeout("OcultarLoading()", 10);
    _tempo = false;
}

//Metodo utilizado para exibir o dialgo
//
function MostrarLoading() {
    if (_tempo) {
        
        $(document).ready(function () {
            $("#dialogCarregando").dialog({
                dialogClass: 'carregando',
                autoOpen: false,
                width: 350,
                height: 100,
                minHeight: 100,
                maxHeight: 100,
                closeOnEscape: false,
                bgiframe: true,
                modal: true,
                closeText: false
            });
        });
        
        $('#dialogCarregando').dialog('open');
    }
}

//Metodo utilizado para ocultar o dialog
function OcultarLoading() {
    $('#dialogCarregando').dialog('close');
    $('#dialogCarregando').dialog( "destroy" );
}
