function advAJAX(){var obj=new Object();obj.url=window.location.href;obj.method="GET";obj.parameters=new Object();obj.jsonParameters=new Object();obj.headers=new Object();obj.async=true;obj.mimeType="text/xml";obj.username=null;obj.password=null;obj.form=null;obj.disableForm=true;obj.unique=true;obj.uniqueParameter="_uniqid";obj.requestDone=false;obj.queryString="";obj.responseText=null;obj.responseXML=null;obj.status=null;obj.statusText=null;obj.aborted=false;obj.timeout=0;obj.retryCount=0;obj.retryDelay=1000;obj.tag=null;obj.group=null;obj.progressTimerInterval=50;obj.xmlHttpRequest=null;obj.onInitialization=null;obj.onFinalization=null;obj.onReadyStateChange=null;obj.onLoading=null;obj.onLoaded=null;obj.onInteractive=null;obj.onComplete=null;obj.onProgress=null;obj.onSuccess=null;obj.onFatalError=null;obj.onError=null;obj.onTimeout=null;obj.onRetryDelay=null;obj.onRetry=null;obj.onGroupEnter=null;obj.onGroupLeave=null;obj.createXmlHttpRequest=function(){if(typeof XMLHttpRequest!="undefined"){return new XMLHttpRequest()}var xhrVersion=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];for(var i=0;i<xhrVersion.length;i++){try{var xhrObj=new ActiveXObject(xhrVersion[i]);return xhrObj}catch(e){}}obj.raiseEvent("FatalError");return null};obj._oldResponseLength=null;obj._progressTimer=null;obj._progressStarted=navigator.userAgent.indexOf("Opera")==-1;obj._onProgress=function(){if(typeof obj.onProgress=="function"&&typeof obj.xmlHttpRequest.getResponseHeader=="function"){var contentLength=obj.xmlHttpRequest.getResponseHeader("Content-length");if(contentLength!=null&&contentLength!=""){var responseLength=obj.xmlHttpRequest.responseText.length;if(responseLength!=obj._oldResponseLength){obj.raiseEvent("Progress",obj,responseLength,contentLength);obj._oldResponseLength=obj.xmlHttpRequest.responseText.length}}}if(obj._progressStarted){return }obj._progressStarted=true;var _obj=this;this.__onProgress=function(){obj._onProgress();obj._progressTimer=window.setTimeout(_obj.__onProgress,obj.progressTimerInterval)};_obj.__onProgress()};obj._onInitializationHandled=false;obj._initObject=function(){if(obj.xmlHttpRequest!=null){delete obj.xmlHttpRequest.onreadystatechange;obj.xmlHttpRequest=null}if((obj.xmlHttpRequest=obj.createXmlHttpRequest())==null){return null}if(typeof obj.xmlHttpRequest.overrideMimeType!="undefined"){obj.xmlHttpRequest.overrideMimeType(obj.mimeType)}obj.xmlHttpRequest.onreadystatechange=function(){if(obj==null||obj.xmlHttpRequest==null){return }obj.raiseEvent("ReadyStateChange",obj,obj.xmlHttpRequest.readyState);obj._onProgress();switch(obj.xmlHttpRequest.readyState){case 1:obj._onLoading();break;case 2:obj._onLoaded();break;case 3:obj._onInteractive();break;case 4:obj._onComplete();break}};obj._onLoadingHandled=obj._onLoadedHandled=obj._onInteractiveHandled=obj._onCompleteHandled=false};obj._onLoading=function(){if(obj._onLoadingHandled){return }if(!obj._retry&&obj.group!=null){if(typeof advAJAX._groupData[obj.group]=="undefined"){advAJAX._groupData[obj.group]=0}advAJAX._groupData[obj.group]++;if(typeof obj.onGroupEnter=="function"&&advAJAX._groupData[obj.group]==1){obj.onGroupEnter(obj)}}obj.raiseEvent("Loading",obj);obj._onLoadingHandled=true};obj._onLoaded=function(){if(obj._onLoadedHandled){return }obj.raiseEvent("Loaded",obj);obj._onLoadedHandled=true};obj._onInteractive=function(){if(obj._onInteractiveHandled){return }obj.raiseEvent("Interactive",obj);obj._onInteractiveHandled=true;if(!obj._progressStarted){obj._onProgress()}};obj._onComplete=function(){if(obj._onCompleteHandled||obj.aborted){return }if(obj._progressStarted){window.clearInterval(obj._progressTimer);obj._progressStarted=false}obj.requestDone=true;with(obj.xmlHttpRequest){obj.responseText=responseText;obj.responseXML=responseXML;if(typeof status!="undefined"){obj.status=status}if(typeof statusText!="undefined"){obj.statusText=statusText}}obj.raiseEvent("Complete",obj);obj._onCompleteHandled=true;if(obj.status==200){obj.raiseEvent("Success",obj)}else{obj.raiseEvent("Error",obj)}delete obj.xmlHttpRequest.onreadystatechange;obj.xmlHttpRequest=null;if(obj.disableForm){obj.switchForm(true)}obj._groupLeave();obj.raiseEvent("Finalization",obj)};obj._groupLeave=function(){if(obj.group!=null){advAJAX._groupData[obj.group]--;if(advAJAX._groupData[obj.group]==0){obj.raiseEvent("GroupLeave",obj)}}};obj._retry=false;obj._retryNo=0;obj._onTimeout=function(){if(obj==null||obj.xmlHttpRequest==null||obj._onCompleteHandled){return }obj.aborted=true;obj.xmlHttpRequest.abort();obj.raiseEvent("Timeout",obj);obj._retry=true;if(obj._retryNo!=obj.retryCount){obj._initObject();if(obj.retryDelay>0){obj.raiseEvent("RetryDelay",obj);startTime=new Date().getTime();while(new Date().getTime()-startTime<obj.retryDelay){}}obj._retryNo++;obj.raiseEvent("Retry",obj,obj._retryNo);obj.run()}else{delete obj.xmlHttpRequest.onreadystatechange;obj.xmlHttpRequest=null;if(obj.disableForm){obj.switchForm(true)}obj._groupLeave();obj.raiseEvent("Finalization",obj)}};obj.run=function(){obj._initObject();if(obj.xmlHttpRequest==null){return false}obj.aborted=false;if(!obj._onInitializationHandled){obj.raiseEvent("Initialization",obj);obj._onInitializationHandled=true}if(obj.method=="GET"&&obj.unique){obj.parameters[encodeURIComponent(obj.uniqueParameter)]=new Date().getTime().toString().substr(5)+Math.floor(Math.random()*100).toString()}if(!obj._retry){for(var a in obj.parameters){if(obj.queryString.length>0){obj.queryString+="&"}if(typeof obj.parameters[a]!="object"){obj.queryString+=encodeURIComponent(a)+"="+encodeURIComponent(obj.parameters[a])}else{for(var i=0;i<obj.parameters[a].length;i++){obj.queryString+=encodeURIComponent(a)+"="+encodeURIComponent(obj.parameters[a][i])+"&"}obj.queryString=obj.queryString.slice(0,-1)}}for(var a in obj.jsonParameters){var useJson=typeof [].toJSONString=="function";if(obj.queryString.length>0){obj.queryString+="&"}obj.queryString+=encodeURIComponent(a)+"=";if(useJson){obj.queryString+=encodeURIComponent(obj.jsonParameters[a].toJSONString())}else{obj.queryString+=encodeURIComponent(obj.jsonParameters[a])}}if(obj.method=="GET"&&obj.queryString.length>0){obj.url+=(obj.url.indexOf("?")!=-1?"&":"?")+obj.queryString}}if(obj.disableForm){obj.switchForm(false)}try{obj.xmlHttpRequest.open(obj.method,obj.url,obj.async,obj.username||"",obj.password||"")}catch(e){obj.raiseEvent("FatalError",obj,e);return }if(obj.timeout>0){setTimeout(obj._onTimeout,obj.timeout)}if(typeof obj.xmlHttpRequest.setRequestHeader!="undefined"){for(var a in obj.headers){obj.xmlHttpRequest.setRequestHeader(encodeURIComponent(a),encodeURIComponent(obj.headers[a]))}}if(obj.method=="POST"&&typeof obj.xmlHttpRequest.setRequestHeader!="undefined"){obj.xmlHttpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");obj.xmlHttpRequest.send(obj.queryString)}else{if(obj.method=="GET"){obj.xmlHttpRequest.send("")}}};obj.handleArguments=function(args){if(typeof args.form=="object"&&args.form!=null){obj.form=args.form;obj.appendForm()}for(a in args){if(typeof obj[a]=="undefined"){obj.parameters[a]=args[a]}else{if(a!="parameters"&&a!="headers"){obj[a]=args[a]}else{for(b in args[a]){obj[a][b]=args[a][b]}}}}obj.method=obj.method.toUpperCase()};obj.switchForm=function(enable){if(typeof obj.form!="object"||obj.form==null){return }with(obj.form){for(var nr=0;nr<elements.length;nr++){if(!enable){if(elements[nr]["disabled"]){elements[nr]["_disabled"]=true}else{elements[nr]["disabled"]="disabled"}}else{if(typeof elements[nr]["_disabled"]=="undefined"){elements[nr].removeAttribute("disabled")}}}}};obj.appendForm=function(){with(obj.form){obj.method=getAttribute("method").toUpperCase();obj.url=getAttribute("action");for(var nr=0;nr<elements.length;nr++){var e=elements[nr];if(e.disabled){continue}switch(e.type){case"text":case"password":case"hidden":case"textarea":obj.addParameter(e.name,e.value);break;case"select-one":if(e.selectedIndex>=0){obj.addParameter(e.name,e.options[e.selectedIndex].value)}break;case"select-multiple":for(var nr2=0;nr2<e.options.length;nr2++){if(e.options[nr2].selected){obj.addParameter(e.name,e.options[nr2].value)}}break;case"checkbox":case"radio":if(e.checked){obj.addParameter(e.name,e.value)}break}}}};obj.addParameter=function(name,value){if(typeof obj.parameters[name]=="undefined"){obj.parameters[name]=value}else{if(typeof obj.parameters[name]!="object"){obj.parameters[name]=[obj.parameters[name],value]}else{obj.parameters[name][obj.parameters[name].length]=value}}};obj.delParameter=function(name){delete obj.parameters[name]};obj.raiseEvent=function(name){var args=[];for(var i=1;i<arguments.length;i++){args.push(arguments[i])}if(typeof obj["on"+name]=="function"){obj["on"+name].apply(null,args)}if(name=="FatalError"){obj.raiseEvent("Finalization",obj)}};if(typeof advAJAX._defaultParameters!="undefined"){obj.handleArguments(advAJAX._defaultParameters)}return obj}advAJAX.get=function(A){return advAJAX.handleRequest("GET",A)};advAJAX.post=function(A){return advAJAX.handleRequest("POST",A)};advAJAX.head=function(A){return advAJAX.handleRequest("HEAD",A)};advAJAX.submit=function(C,A){if(typeof A=="undefined"||A==null){return -1}if(typeof C!="object"||C==null){return -2}var B=new advAJAX();A.form=C;B.handleArguments(A);return B.run()};advAJAX.assign=function(B,A){if(typeof A=="undefined"||A==null){return -1}if(typeof B!="object"||B==null){return -2}if(typeof B.onsubmit=="function"){B._onsubmit=B.onsubmit}B.advajax_args=A;B.onsubmit=function(){if(typeof this["_onsubmit"]!="undefined"&&this["_onsubmit"]()===false){return false}if(advAJAX.submit(this,this["advajax_args"])==false){return true}return false};return true};advAJAX.download=function(B,A){if(typeof B=="string"){B=document.getElementById(B)}if(!B){return -1}advAJAX.get({url:A,onSuccess:function(C){B.innerHTML=C.responseText}})};advAJAX.scan=function(){var D=document.getElementsByTagName("a");for(var B=0;B<D.length;){if(D[B].getAttribute("rel")=="advancedajax"&&D[B].getAttribute("href")!==null){var A=D[B].getAttribute("href");var E=document.createElement("div");E.innerHTML=D[B].innerHTML;E.className=D[B].className;var C=D[B].parentNode;C.insertBefore(E,D[B]);C.removeChild(D[B]);advAJAX.download(E,A)}else{B++}}};advAJAX.handleRequest=function(A,B){if(typeof B=="undefined"||B==null){return -1}var C=new advAJAX();window.advajax_obj=C;C.method=A;C.handleArguments(B);return C.run()};advAJAX._defaultParameters=new Object();advAJAX.setDefaultParameters=function(A){advAJAX._defaultParameters=new Object();for(a in A){advAJAX._defaultParameters[a]=A[a]}};advAJAX._groupData=new Object();
