function RPC(remoteModel,remoteMethod,listener,method,parameters){ rpc = new Call rpc.listener = listener; rpc.onComplete = function (){ if(this.listener[method]){ this.listener[method](this.retval); }else{ alert(method); } } if(parameters){ rpc.doCallA(remoteModel,remoteMethod,parameters); }else{ rpc.doCall(remoteModel,remoteMethod); } } function RequestPoolObj(){ this.req = 0; this.uniqueHandler = reponse_handler; this.state = 0; this.retObj = 0; } var requestPoolSize = 4; var requestPool = Array(requestPoolSize); for(var i = 0; i2){ post+="&"; } for (var i = 2;i < arguments.length;i++){ post += "arg"+i+"="+escape(arguments[i]).replace("+","%2B"); if(i+1 < arguments.length)post+="&"; } loadXMLDoc(url,this,post); } function doCallA(obj,method,param){ if(arguments.length<2){ return; } /* 12.03.2007, Replace hard coded url 12.03.2007, var url = "www.picstop.co.uk/javascriptInterface.php" */ /* 12.03.2007, Replace hard coded url with reference to php server http host */ var url = "www.oneposter.com/javascriptInterface.php" if(self.location.protocol=='https:'){ url='https://'+url; }else{ url='http://'+url; } post = ""; post += "object="+escape(obj).replace("+","%2B")+"&"; post += "method="+escape(method).replace("+","%2B"); if(arguments.length>2){ post+="&"; } if(param){ for (var i = 0;i < param.length;i++){ post += "arg"+i+"="+escape(param[i]).replace("+","%2B"); if(i+1 < param.length)post+="&"; } } loadXMLDoc(url,this,post); } Call.prototype.doCall = doCall; Call.prototype.doCallA = doCallA; function find_by_url(){ loadXMLDoc(buildRequest("Product","find_all")); } function reponse_handler(){ if (this.req.readyState == 4) { this.state = 0 if (this.req.status == 200) { if(this.req.responseXML){ response = this.req.responseXML.documentElement; if(!response){ alert(this.req.responseText); return; } this.retObj.retval = parseXML(response,null); this.retObj.onComplete(); d = new Date(); //alert(d.getTime() - this.startTime); //alert(this.req.responseText); }else{ alert(this.req.responseText); } } else { alert("There was a problem retrieving the XML data:\n" + this.req.statusText); } } } function parseXML(d,obj){ var x = d.childNodes; switch(d.nodeName){ case 'response': for(i=0; i