function AJAXRequests(){this.requests=new Array();this.runningRequest=false;this.debugRequest;}
function objectToUrlRequestParams(object,currentVarName){var result='';for(var name in object){if(typeof(object[name])=='function'){continue;}
var varName=currentVarName?currentVarName+"["+name+"]":name;if(typeof(object[name])=='object'){result+=objectToUrlRequestParams(object[name],varName);}else{if(typeof(object[name])=='string'){object[name]=object[name].replace(/\+/,'%2B');}
result+="&"+varName+"="+object[name];}}
return result;}
AJAXRequests.prototype.make=function(pluginName,objectName,actionName,parameters,handler){var requestString=objectToUrlRequestParams(parameters);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){if(_visioncms_debugMode){var url=_visioncms_applicationUrl+'ajax/App/App/debug';this.debugRequest=new AJAXRequest(url,'',ajaxRequest.debug);this.debugRequest.run();}
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;}}}
AJAXRequests.prototype.debug=function(){switch(ajaxRequest.debugRequest.getReadyState()){case 4:result=ajaxRequest.debugRequest.getParsedResponse();if(result!=''&&result!=null){if(result.getElementsByTagName('App_HTML')[0].getAttribute('content')){var title='New Brand Vision Content Manager AJAX Debug Console';w=window.open('',title,'width=680,height=600,resizable,scrollbars=yes');content="<html><head><title>New Brand Vision Content Manager Debug Console</title><script type=\"text/javascript\" src=\""+_visioncms_applicationUrl+"Assets/Interface/visioncms/scripts/jquery.js\"></script><script type=\"text/javascript\" src=\""+_visioncms_applicationUrl+"Assets/Interface/visioncms/scripts/App_Debug.js\"></script> <link type=\"text/css\" rel=\"stylesheet\" href=\""+_visioncms_applicationUrl+"Assets/Interface/visioncms/stylesheets/App_Debug.css\" media=\"all\" /></head><body class=\"App_DebugConsole\">";content+=result.getElementsByTagName('App_HTML')[0].getAttribute('content');content+="</body></html>";w.document.write(content);w.document.close();}}
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;}}}
function xml_getTagValue(parent,tagName){var tags=parent.getElementsByTagName(tagName);if(tags.length==0){return null;}else if(tags[0].childNodes.length>0){return tags[0].childNodes[0].nodeValue;}else{return'';}}
function xml_parseString(xml){if(window.ActiveXObject){var xmlParser=new ActiveXObject('Microsoft.XMLDOM');xmlParser.loadXML(xml);if(xmlParser.parseError!=null&&xmlParser.parseError.errorCode!=0){alert('line: '+xmlParser.parseError.line+'\n'
+'linepos: '+xmlParser.parseError.linepos+'\n'
+'reason: '+xmlParser.parseError.reason+'\n'
+'srcText: '+xmlParser.parseError.srcText);}}else if(document.implementation&&document.implementation.createDocument){xmlParser=new DOMParser();xmlParser=xmlParser.parseFromString(xml,'text/xml');}
return xmlParser;}