
var WebSiteBaseUrl = "http://www.dibao.org/";
var WebSiteSkinPath = "http://www.dibao.org/skins/DefaultBlue/";
jQuery.extend({
     validForm: function() {
         return jQuery("#aspnetForm").valid();
     }
 });

jQuery.extend(
 {
     aspForm: function() {
         return jQuery("form");
     }
 });
jQuery.extend(
{
    GetWSResult: function(url, pars,callBackFun) {
        var ajaxResult = jQuery.ajax({ url: url,
            type: "POST",
            data: pars,
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            cache: false,
            async: false,
             success: function(json) {
					 if(jQuery.isFunction(callBackFun)) { 
						callBackFun(json);
						}
             },
             error: function(xml, status) {
                 if (status == 'error') {
                     try {
                         var json = eval('(' + xml.responseText + ')');
                         alert(json.Message + '\n' + json.StackTrace);
                     } catch (e) {  alert(xml.responseText); }
                 } else {
                     alert(status);
                 }
             },
            beforeSend: function(xml) {
                if (!pars)
                    xml.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            }
        });
        return eval('(' + ajaxResult.responseText + ')').d;
    }
});

jQuery.extend(
{
    invokeComponent: function(templateName, pars,callBackFun) {    
            var data = JSON.stringify({ templateFileName: templateName, parameters: pars });
            return jQuery.GetWSResult(WebSiteBaseUrl+ "Addins/TemplateParser/Common/CommonWebService.asmx/InvokeComponent", data,callBackFun);
    }
});
jQuery.extend(
{
    invokeComponentSync: function(templateName, pars,callBackFun) {    
            var data = JSON.stringify({ templateFileName: templateName, parameters: pars });
            return jQuery.GetWSResult(WebSiteBaseUrl+ "Addins/TemplateParser/Common/CommonWebService.asmx/InvokeComponentSync", data,callBackFun);
    }
});
jQuery.extend(
{
    parserTemplate: function(templateName, pars,callBackFun) {    
            var data = JSON.stringify({ templateFileName: templateName, parameters: pars });
            return jQuery.GetWSResult(WebSiteBaseUrl+ "Addins/TemplateParser/Common/CommonWebService.asmx/ParserTemplate", data,callBackFun);
    }
});
jQuery.extend(
 {
     invokeWS: function(url, pars, callback) {
         jQuery.ajax({
             data: pars,
             url: url,
             type: "POST",
             contentType: "application/json; charset=utf-8",
             dataType: 'json',
             cache: false,
             success: function(json) {
					 if(jQuery.isFunction(callback)) { 
						callback(json);
						}
             },
             error: function(xml, status) {
                 if (status == 'error') {
                     try {
                         var json = eval('(' + xml.responseText + ')');
                         alert(json.Message + '\n' + json.StackTrace);
                     } catch (e) {  alert(xml.responseText); }
                 } else {
                     alert(status);
                 }
             },
             beforeSend: function(xml) {
                 if (!pars) xml.setRequestHeader("Content-Type", "application/json; charset=utf-8")
             }
         });

     }
 });
// proxyUrl: '/WebProxy.aspx',
 jQuery.extend({    
    GetRequestProxyUrl: function(url, requestType) {
        if (!requestType)
            requestType = '';

        if ('webservice' == requestType.toLowerCase())
            return '/WebProxy.aspx?RequestType=webservice&RequestUrl=' + escape(url);
        else
            return '/WebProxy.aspx?RequestUrl=' + escape(url);
    }
 });
jQuery.extend({
    ServiceProxy: function ServiceProxyFun(serviceUrl) {
        var _I = this;
        this.serviceUrl = serviceUrl;

        this.invoke = function(method, data, callback, error, bare) {

            var json = JSON.stringify(data);

            var url = _I.serviceUrl + method;
            jQuery.ajax({
                url: url,
                data: json,
                type: "POST",
                processData: false,
                contentType: "application/json",
                timeout: 10000,
                dataType: "text",

                success: function(res) {
                    if (!callback) return;

                    var result = JSON.parse(res);

                    if (bare)
                    { callback(result); return; }
                    for (var property in result) {
                        callback(result[property]);
                        break;
                    }
                },
                error: function(xhr) {
                    if (!error) return;
                    if (xhr.responseText) {
                        var err = JSON.parse(xhr.responseText);
                        if (err)
                            error(err);
                        else
                            error({ Message: "未知错误." })
                    }
                    return;
                }
            });
        }
    }
});


