var rpc_handler=new Function("return false;");function rpc_call(A){document.getElementById("rpc-caller").src=A;return false}function rpc_decode(A){entities=[/&quot;/g,/&gt;/g,/&lt;/g,/\\n/g,/\\r/g];proper=['"',">","<","\n","\r"];for(i=0;i<entities.length;i++){A=A.replace(entities[i],proper[i])}return A}var rpc_global;function rpc(){scripts=document.getElementsByTagName("script");for(var A=0;A<scripts.length;A++){if(scripts[A].src.match(/rpc(-compressed)?.js$/)){var B=scripts[A].src.replace(/rpc(-compressed)?\.js$/,"");document.write('<script type="text/javascript" src="'+B+'/json2-compressed.js"><\/script>');break}}this.agent=navigator.userAgent.toLowerCase();this.msie=((this.agent.indexOf("msie")!=-1)&&(this.agent.indexOf("opera")==-1));this.parameters=[];if(arguments.length>1){this.setHandler(arguments[0]);this.setErrorHandler(arguments[1])}else{if(arguments.length==1){this.setHandler(arguments[0]);this.setErrorHandler(this._error)}else{this.setHandler(this._handler);this.setErrorHandler(this._error)}}this.init()}rpc.prototype.init=function(){if(this.msie){this.request=new ActiveXObject("Microsoft.XMLHTTP")}else{this.request=new XMLHttpRequest()}this.request.onreadystatechange=this.process;rpc_global=this};rpc.prototype._handler=function(A){return false};rpc.prototype._error=function(A){/*alert("Error: "+A.statusText)*/};rpc.prototype.abort=function(){return this.request.abort()};rpc.prototype.headers=function(){return this.request.getAllResponseHeaders()};rpc.prototype.header=function(A){return this.request.getResponseHeader(A)};rpc.prototype.addHeader=function(A,B){return this.request.setRequestHeader(A,B)};rpc.prototype.open=function(B,A){if(arguments.length==5){return this.request.open(B,A,arguments[2],arguments[3],arguments[4])}else{if(arguments.length==4){return this.request.open(B,A,arguments[2],arguments[3])}else{if(arguments.length==3){return this.request.open(B,A,arguments[2])}}}return this.request.open(B,A)};rpc.prototype.send=function(){this.request.onreadystatechange=this.process;if(arguments.length>0){return this.request.send(arguments[0])}if(this.msie){return this.request.send()}else{return this.request.send(null)}};rpc.prototype.process=function(){if(rpc_global.request.readyState==4){if(rpc_global.request.status==200){rpc_global.handler(rpc_global.request)}else{rpc_global.error(rpc_global.request)}}};rpc.prototype.setHandler=function(A){this.handler=A};rpc.prototype.setErrorHandler=function(A){this.error=A};rpc.prototype.call=function(A){if(arguments.length>1){this.setHandler(arguments[1])}this.open("GET",A,true);this.send()};rpc.prototype.action=function(A){if(arguments.length>1){parameters=arguments[1]}else{parameters=[]}o=this.url+"?method="+A;for(i=0;i<parameters.length;i++){if(encodeURIComponent){p=encodeURIComponent(parameters[i])}else{p=escape(parameters[i])}o+="&"+i+"="+p}return o};rpc.prototype.addParameter=function(B,A){this.parameters.push([B,A])};rpc.prototype.resetParameters=function(){this.parameters=[]};rpc.prototype.post=function(A){if(arguments.length>1){this.setHandler(arguments[1])}params="";sep="";for(i=0;i<this.parameters.length;i++){if(encodeURIComponent){p=encodeURIComponent(this.parameters[i][1])}else{p=escape(this.parameters[i][1])}params+=sep+this.parameters[i][0]+"="+p;sep="&"}this.open("POST",A,true);this.request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");this.request.setRequestHeader("Content-Length",params.length);this.request.setRequestHeader("Connection","close");this.send(params);this.resetParameters()};rpc.prototype.parse_form=function(A){if(arguments.length>1){ignore_buttons=arguments[1]}else{ignore_buttons=true}for(i=0;i<A.elements.length;i++){switch(A.elements[i].type){case"textarea":if(A.elements[i].name.match("xed-")){n=A.elements[i].name;n=n.replace("xed-","");n=n.replace("-source","");xed_copy_value(A,n)}else{this.addParameter(A.elements[i].name,A.elements[i].value)}break;case"hidden":case"text":case"password":case"file":this.addParameter(A.elements[i].name,A.elements[i].value);break;case"radio":case"select":case"select-one":case"select-multiple":case"checkbox":try{this.addParameter(A.elements[i].name,A.elements[i].options[A.elements[i].selectedIndex].value)}catch(B){}break;case"submit":if(!ignore_buttons&&A.elements[i].name){this.addParameter(A.elements[i].name,A.elements[i].value)}default:break}}};rpc.prototype.update_field=function(C,B){var A=C;this.call(B,function(D){document.getElementById(A).innerHTML=JSON.parse(D.responseText)});return false};rpc.prototype.append_field=function(C,A){var B=C;this.call(A,function(D){e=document.getElementById(B);tag=false;tag_map=[];tag_map.ul="li";tag_map.ol="li";for(i=e.childNodes.length-1;i>=0;i--){if(e.childNodes[i].nodeType==1){tag=e.childNodes[i].nodeName.substring(0,e.childNodes[i].nodeName.length).toLowerCase();break}}if(!tag){tag=tag_map[e.nodeName.substring(0,e.nodeName.length).toLowerCase()];if(!tag){tag="span"}}n=document.createElement(tag);n.appendChild(document.createTextNode(JSON.parse(D.responseText)));e.appendChild(n)});return false};rpc.prototype.get_xml=function(A){xml=rpc_decode(JSON.parse(A));if(this.msie){xd=new ActiveXObject("Msxml.DOMDocument");xd.async=false;xd.resolveExternals=false;xd.loadXML(xml);if(xd.parseError.errorCode!=0){this.error=xd.parseError.reason;this.errno=xd.parseError.errorCode;return false}return xd}else{dp=new DOMParser();xd=dp.parseFromString(xml,"text/xml");if(xd.documentElement.nodeName=="parsererror"&&xd.documentElement.namespaceURI=="http://www.mozilla.org/newlayout/xml/parsererror.xml"){this.errno=xd.errno=1;this.error=xd.documentElement.firstChild.data;return false}return xd}};
