﻿function WebService(url, callback, pars, loading) {
if (loading == undefined){
    loading = true;
}
if(!pars){
        pars="{}";
    }
    $.ajax({
        data: pars,
        url: url,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        cache: false,
        global: loading,
        success: function(json) {
            var json = json.d;
            callback(json);
        },
        error: function(xml, status) {
            if ((status == 'error') || (status == "")) {
                try {
                    var json = eval('(' + xml.responseText + ')');

                    //Verifica qual exceção retornou
                    switch (json.ExceptionType) {
                        //Faz a verificação da exceção para ver se foi sessão expirada 
                        case "ControleVideo.Objeto.Excecoes.SessionException":
                            //Sessão expirou no webService. Redireciona para o login
                            alert("Efetue login novamente");
                            break;

                        //Faz a verificação da exceção para ver se o usuário tem permissão na pagina selecionada 
                        case "ControleVideo.Objeto.Excecoes.PermissaoNegadaException":
                            //Não possui acesso
                            alert("Acesso Negado");
                            break;

                        default:
                            alert(json.Message);
                            break;
                    }

                } catch (e) { }
            } else {
                alert(status);
            }
        },
        beforeSend: function(xml) {
            if (!this.data)
                xml.setRequestHeader("Content-Type", "application/json;utf-8");
        }
    });
}
/*
function WebServiceNoLoading(url, callback, pars) {
    if (!pars) {
        pars = "{}";
    }
    $.ajax({
        data: pars,
        url: url,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        cache: false,
        global:false,
        success: function(json) {
            callback(json);
        },
        error: function(xml, status) {
            if (status == 'error') {
                try {
                    var json = eval('(' + xml.responseText + ')');

                    //Faz a verificação da exceção para ver se foi sessão expirada
                    if (json.ExceptionType == 'ControleVideo.Objeto.Excecoes.SessionException') {
                        //Sessão expirou no webService. Redireciona para o login
                        alertModal("Efetue login novamente", alertType.erro);
                        window.location = 'Login.aspx';
                    } else {
                        alertModal(json.Message, alertType.erro);
                    }

                } catch (e) { }
            } else {
                alertModal(status, alertType.erro);
            }
        },
        beforeSend: function(xml) {
            if (!this.data)
                xml.setRequestHeader("Content-Type", "application/json;utf-8");
        }
    });
}
*/
