Syn.Comm=Class.extend({init:function(a){this.url=a;this.requests={};this.nextRequestId=0},call:function(a,b,c,d,e){var f={};if(typeof d=='function'){f.callback=d;f.cb_obj=false}else if(typeof d=='object'){f.cb_obj=d;f.callback=e}var g={'class':a,'method':b,'data':c};if(d){this.requests[this.nextRequestId]=$.ajax({type:"POST",url:this.url,data:json.serialize(g),contentType:'application/json',success:this.onSuccessFunc(f,this.nextRequestId)});this.nextRequestId++}else{return json.deserialize($.ajax({type:"POST",async:false,url:this.url,data:g,contentType:'application/json'}).responseText)}},cancelAll:function(){for(var a in this.requests){this.requests[a].abort();this.requests[a]=null;delete this.requests[a]}},onSuccessFunc:function(d,e){var f=this;return function onSuccess(a,b){var c=window["eval"]("("+a+")");if(d.cb_obj){(typeof d.callback=="string")?d.cb_obj[d.callback](c):d.callback.call(d.cb_obj,c)}else{d.callback(c)}f.requests[e]=null;delete f.requests[e]}}});
