Meetup.RpcCall=function(d,b,c){bindMethods(this);this.method=d;this.domain=b;if(c){this.protocol=c}if(!this.domain){var a=new Meetup.URI(document.location.href);this._baseUri=this.protocol+"://"+a.domainName+"/api/?method="+this.method}else{if(this.domain.substr(0,4)!="http"){this.domain=this.protocol+"://"+this.domain}this._baseUri=this.domain+"/api/?method="+this.method}this._xmlObj=MochiKit.Async.getXMLHttpRequest();this._xmlObj.onreadystatechange=this._process};Meetup.RpcCall.prototype={method:null,formMethod:"GET",waiting:false,domain:null,timeoutMillis:30000,protocol:"http",args:{},_statusEl:null,setFormMethod:function(a){if(a=="GET"||a=="POST"){this.formMethod=a}},onSuccess:function(a){},onError:function(a){},onTimeout:function(){},_baseUri:null,_xmlObj:null,_msgW:119,_msgH:34,call:function(){if(this.waiting){return}if(this._statusEl){this._showStatus()}var c=this._baseUri;if(this.formMethod=="GET"){for(arg in this.args){c+="&arg_"+arg+"="+escape(this.args[arg])}this._xmlObj.open("GET",c,true);this._xmlObj.send(null)}else{this._xmlObj.open("POST",c,true);this._xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");var a=new Array();for(arg in this.args){a.push("arg_"+arg+"="+escape(this.args[arg]))}var b=a.join("&");this._xmlObj.send(b)}this.waiting=true;window.setTimeout(function(){if(!this.waiting){return}this._xmlObj.abort();if(this._statusEl){this._statusEl.innerHTML+="Timeout!!"}this.onTimeout()},this.timeoutMillis)},setArg:function(a,b){this.args[a]=b},enableStatus:function(a,b){var c=elementPosition(a);var e=c.x;var d=c.y;this.statusMsgEl=DIV({"class":"T_rpcStatusMsg"},b);this._statusEl=DIV({"class":"T_rpcStatus",style:"top: "+d+"px; left: "+(e-(this._msgW))+"px; width: "+this._msgW+"px; height: "+this._msgH+"px;"},this.statusMsgEl)},_showStatus:function(){if(!this._statusEl.parentNode){document.body.appendChild(this._statusEl)}if(Meetup.Effect){Meetup.Effect.fadeIn(this._statusEl)}else{setOpacity(this._statusEl,1)}},_process:function(){if(this._xmlObj.readyState!=4){return}this.waiting=false;var result=false;try{var respStr=this._xmlObj.responseText+"";result=eval("("+respStr+")")}catch(e){this.onError("Invalid response. Error: "+e);return}if(this.statusMsgEl){this.statusMsgEl.innerHTML="Done!";var killEl=this._statusEl;if(Meetup.Effect){Meetup.Effect.delay(3,function(){Meetup.Effect.fadeOut(killEl)})}else{if(killEl.parentNode){killEl.parentNode.removeChild(killEl)}}}this.onSuccess(result)}};