/* JSCmprsd Hash:0b6be7dbca51aca5e5d8c9f7f3ad0289 */
var WebServiceClient=new Class({Implements:[Options,Events],options:{url:"/service/service.php",reqf:"json",method:"post",request:{resf:"json",v:1}},context:this,onSuccessFunction:function(B,A){},onSuccess:function(B,A){this.onSuccessFunction=B;this.context=A},onFailureFunction:function(C,A,B){},onFailure:function(B,A){this.onFailureFunction=B;this.context=A},onRequestFunction:function(A){},onRequest:function(B,A){this.onRequestFunction=B;this.context=A},onStateChangeFunction:function(B,A){},initialize:function(A){this.setOptions(A)},send:function(B){mergedRequest=$merge(this.options.request,B);var A=this.onSuccessFunction;var D=this.onFailureFunction;var C=new Request({url:this.options.url+"?reqf="+this.options.reqf,link:"cancel",evalScripts:false,method:this.options.method,onSuccess:function(E){this.processSuccess(E,A,D)}.bind(this),onRequest:function(){this.onRequestFunction()}.bind(this),onStateChange:function(E){this.onStateChangeFunction(E)}.bind(this),onFailure:function(F,E){D({faultCode:F.status,faultString:F.statusText,faultType:"error"},E,this.context)}.bind(this)});C.send(JSON.encode(mergedRequest))},processSuccess:function(C,B,A){var E=null;if(this.options.request.resf=="json"){try{E=JSON.decode(C);if(E.faultCode!=undefined){A(E,E,this.context);return }}catch(D){A({faultCode:0,faultString:"server error",faultType:"error"},C,this.context);return }}else{A({faultCode:0,faultString:"unsupported response format",faultType:"error"},C,this.context);return }B(E,this.context)}});