﻿/// <reference path="jquery-1.4.1.min.js" />


function WebService(url,callback,pars,callBackError){
    if(typeof(pars)=='function'){
        callBackError = pars;
        pars =
        '';
    }
    jQuery.ajax({
        data:pars,
        url: url,
        type: "POST",
        contentType:"application/json; charset=utf-8",
        dataType:'json',
        cache:false,
        success:function(json){
            callback(json);
        },
        error:function(xml,status){
            if(status=='error'){
                try{
                var json = eval('(' + xml.responseText + ')');
                alert(json.Message,alertType.erro);
                if (callBackError){
                    callBackError();
                }
            }
            catch(e){}
        }
        else{
            alert(status,alertType.erro);

        }

        },
            beforeSend:
            function(xml){
                if(!this.data)
                    xml.setRequestHeader("Content-Type", "application/json;utf-8");
        }

    });

}

(function($){


    jQuery.extend({
		ws: function(url,callback,pars,callBackError) {
			if(typeof(pars)=='function'){
                callBackError = pars;
                pars =
                '';
            }
            jQuery.ajax({
                data:pars,
                url: url,
                type: "POST",
                contentType:"application/json; charset=utf-8",
                dataType:'json',
                cache:false,
                success:function(json){
                    callback(json);
                },
                error:function(xml,status){
                    if(status=='error'){
                        try{
                        var json = eval('(' + xml.responseText + ')');
                        alert(json.Message,alertType.erro);
                        if (callBackError){
                            callBackError();
                        }
                    }
                    catch(e){}
                }
                else{
                    alert(status,alertType.erro);

                }

                },
                    beforeSend:
                    function(xml){
                        if(!this.data)
                            xml.setRequestHeader("Content-Type", "application/json;utf-8");
                }

            });

		}
	});

jQuery.extend({
		wsSync: function(url,callback,pars,callBackError) {
			if(typeof(pars)=='function'){
                callBackError = pars;
                pars =
                '';
            }
            jQuery.ajax({
                data:pars,
                url: url,
                async: false,
                type: "POST",
                contentType:"application/json; charset=utf-8",
                dataType:'json',
                cache:false,
                success:function(json){
                    callback(json);
                },
                error:function(xml,status){
                    if(status=='error'){
                        try{
                        var json = eval('(' + xml.responseText + ')');
                        alert(json.Message,alertType.erro);
                        if (callBackError){
                            callBackError();
                        }
                    }
                    catch(e){}
                }
                else{
                    alert(status,alertType.erro);

                }

                },
                    beforeSend:
                    function(xml){
                        if(!this.data)
                            xml.setRequestHeader("Content-Type", "application/json;utf-8");
                }

            });

		}
	});
    
    jQuery.extend({
        mvcJson: function(url, params, successFunction, beforeFunction ,errorFunction){
            jQuery.ajax({
                type: "POST",
                url: url,
                dataType: "json",
                data: params,
                beforeSend: function (XMLHttpRequest) {
                    if(beforeFunction)
                        beforeFunction(XMLHttpRequest);

                    if (!this.data)
                        XMLHttpRequest.setRequestHeader("Content-Type", "application/json");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    if(errorFunction)
                        errorFunction(XMLHttpRequest, textStatus, errorThrown);
                },
                success: function (data, textStatus, XMLHttpRequest) {
                    if(successFunction)
                        successFunction(data, textStatus, XMLHttpRequest);
                }
            });
        }
    });

    jQuery.extend({
        mvcJsonSync: function(url, params, successFunction, beforeFunction ,errorFunction){
            jQuery.ajax({
                type: "POST",
                async: false,
                url: url,
                dataType: "json",
                data: params,
                beforeSend: function (XMLHttpRequest) {
                    if(beforeFunction)
                        beforeFunction(XMLHttpRequest);

                    if (!this.data)
                        XMLHttpRequest.setRequestHeader("Content-Type", "application/json");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    if(errorFunction)
                        errorFunction(XMLHttpRequest, textStatus, errorThrown);
                },
                success: function (data, textStatus, XMLHttpRequest) {
                    if(successFunction)
                        successFunction(data, textStatus, XMLHttpRequest);
                }
            });
        }
    });
})(jQuery);
