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=1e3;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 a=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];for(var b=0;b<a.length;b++){try{var c=new ActiveXObject(a[b]);return c}catch(d){}}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 a=obj.xmlHttpRequest.getResponseHeader("Content-length");if(a!=null&&a!=""){var b=obj.xmlHttpRequest.responseText.length;if(b!=obj._oldResponseLength){obj.raiseEvent("Progress",obj,b,a);obj._oldResponseLength=obj.xmlHttpRequest.responseText.length}}}if(obj._progressStarted)return;obj._progressStarted=true;var c=this;this.__onProgress=function(){obj._onProgress();obj._progressTimer=window.setTimeout(c.__onProgress,obj.progressTimerInterval)};c.__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 b=0;b<obj.parameters[a].length;b++)obj.queryString+=encodeURIComponent(a)+"="+encodeURIComponent(obj.parameters[a][b])+"&";obj.queryString=obj.queryString.slice(0,-1)}}for(var a in obj.jsonParameters){var c=typeof [].toJSONString=="function";if(obj.queryString.length>0)obj.queryString+="&";obj.queryString+=encodeURIComponent(a)+"=";if(c)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(d){obj.raiseEvent("FatalError",obj,d);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(c){if(typeof c.form=="object"&&c.form!=null){obj.form=c.form;obj.appendForm()}for(a in c){if(typeof obj[a]=="undefined")obj.parameters[a]=c[a];else{if(a!="parameters"&&a!="headers")obj[a]=c[a];else for(b in c[a])obj[a][b]=c[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(a,b){if(typeof obj.parameters[a]=="undefined")obj.parameters[a]=b;else if(typeof obj.parameters[a]!="object")obj.parameters[a]=[obj.parameters[a],b];else obj.parameters[a][obj.parameters[a].length]=b};obj.delParameter=function(a){delete obj.parameters[a]};obj.raiseEvent=function(a){var b=[];for(var c=1;c<arguments.length;c++)b.push(arguments[c]);if(typeof obj["on"+a]=="function")obj["on"+a].apply(null,b);if(a=="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(a,b){if(typeof b=="undefined"||b==null)return-1;if(typeof a!="object"||a==null)return-2;var c=new advAJAX;b["form"]=a;c.handleArguments(b);return c.run()};advAJAX.assign=function(a,b){if(typeof b=="undefined"||b==null)return-1;if(typeof a!="object"||a==null)return-2;if(typeof a["onsubmit"]=="function")a["_onsubmit"]=a["onsubmit"];a["advajax_args"]=b;a["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(a,b){if(typeof a=="string")a=document.getElementById(a);if(!a)return-1;advAJAX.get({url:b,onSuccess:function(b){a.innerHTML=b.responseText}})};advAJAX.scan=function(){var a=document.getElementsByTagName("a");for(var b=0;b<a.length;){if(a[b].getAttribute("rel")=="advancedajax"&&a[b].getAttribute("href")!==null){var c=a[b].getAttribute("href");var d=document.createElement("div");d.innerHTML=a[b].innerHTML;d.className=a[b].className;var e=a[b].parentNode;e.insertBefore(d,a[b]);e.removeChild(a[b]);advAJAX.download(d,c)}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(b){advAJAX._defaultParameters=new Object;for(a in b)advAJAX._defaultParameters[a]=b[a]};advAJAX._groupData=new Object
