function AJAXRequests(){this.requests=new Array();this.runningRequest=false;}
AJAXRequests.prototype.make=function(pluginName,objectName,actionName,parameters,handler){var requestString='';for(var name in parameters){if(typeof(parameters[name])=='function'){continue;}
if(typeof(parameters[name])=='string'){parameters[name]=parameters[name].replace(/\+/,'%2B');}
requestString+='&'+name+'='+parameters[name];}
var adminUrl=_visioncms_applicationUrl;var url=adminUrl+'ajax/'+pluginName+'/'+objectName+'/'+actionName;var request=new AJAXRequest(url,requestString,ajaxRequest.readyStateChangeHandler);request.realHandler=handler;request.parameters=parameters;this.requests[this.requests.length]=request;if(this.runningRequest===false){this.run();}}
AJAXRequests.prototype.run=function(){if(this.requests.length==0){return;}
this.runningRequest=true;this.requests[0].run();}
AJAXRequests.prototype.remove=function(i){this.requests.splice(i,1)}
AJAXRequests.prototype.readyStateChangeHandler=function(){var request;for(var i=0;i<ajaxRequest.requests.length;i++){request=ajaxRequest.requests[i];switch(request.getReadyState()){case 4:var handler=request.realHandler;ajaxRequest.remove(i);ajaxRequest.runningRequest=false;ajaxRequest.run();handler(request.getParsedResponse(),request);break;}}}
var ajaxRequest=new AJAXRequests();function AJAXRequest(url,requestString,handler){if(navigator.appName=="Microsoft Internet Explorer"){this.request=new ActiveXObject("Microsoft.XMLHTTP");}else{try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");}catch(e){}
this.request=new XMLHttpRequest();}
this.url=url;this.requestString=requestString;this.handler=handler;}
AJAXRequest.prototype.getResponseText=function(){return this.request.responseText;}
AJAXRequest.prototype.getParsedResponse=function(){var response=this.request.responseText.replace(/^\s+|\s+$/g,'');if(response!=null&&response!=''){try{if(response.indexOf('<?xml')===0){return xml_parseString(response);}else{return eval('('+response+')');}}catch(e){alert('response:'+response);}}
return null;}
AJAXRequest.prototype.getReadyState=function(){return this.request.readyState;}
AJAXRequest.prototype.run=function(){try{this.request.open('POST',this.url);this.request.onreadystatechange=this.handler;if(this.requestString!=null){this.request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");}
this.request.send(this.requestString);}catch(e){if(typeof(_visioncms_absoluteUrl)!='undefined'&&window.location!=_visioncms_absoluteUrl){window.location=_visioncms_absoluteUrl;}}}