/*
 * AdvancedAJAX Lite 1.0
 * Based on: AdvancedAJAX 1.1
 *
 * (c) 2005-2006 Lukasz Lach
 *  mail: anakin@php5.pl
 *  www:  http://advajax.anakin.us/
 *        http://anakin.us/
 * http://creativecommons.org/licenses/LGPL/2.1/
 */
function advAJAX(){var obj=new Object();obj.url=window.location.href;obj.method="GET";obj.parameters=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.xmlHttpRequest=null;obj.onInitialization=null;obj.onFinalization=null;obj.onComplete=null;obj.onSuccess=null;obj.onFatalError=null;obj.onError=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._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;if(obj.xmlHttpRequest.readyState==4)obj._onComplete()};obj._onCompleteHandled=false};obj._onComplete=function(){if(obj._onCompleteHandled||obj.aborted)return;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.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)}}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(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(args){return advAJAX.handleRequest("GET",args)};advAJAX.post=function(args){return advAJAX.handleRequest("POST",args)};advAJAX.head=function(args){return advAJAX.handleRequest("HEAD",args)};advAJAX.submit=function(form,args){if(typeof args=="undefined"||args==null)return-1;if(typeof form!="object"||form==null)return-2;var request=new advAJAX();args["form"]=form;request.handleArguments(args);return request.run()};advAJAX.assign=function(form,args){if(typeof args=="undefined"||args==null)return-1;if(typeof form!="object"||form==null)return-2;if(typeof form["onsubmit"]=="function")form["_onsubmit"]=form["onsubmit"]};advAJAX.handleRequest=function(requestType,args){if(typeof args=="undefined"||args==null)return-1;var request=new advAJAX();window.advajax_obj=request;request.method=requestType;request.handleArguments(args);return request.run()};advAJAX._defaultParameters=new Object();advAJAX.setDefaultParameters=function(args){advAJAX._defaultParameters=new Object();for(a in args)advAJAX._defaultParameters[a]=args[a]};