
AjaxAnywhere.defaultInstanceName="default";function AjaxAnywhere(){this.debugMode=false;this.id=AjaxAnywhere.defaultInstanceName;this.formName=null;this.notSupported=false;this.delayBeforeContentUpdate=true;this.delayInMillis=100;if(window.XMLHttpRequest){this.req=new XMLHttpRequest();}else if(window.ActiveXObject){try{this.req=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{this.req=new ActiveXObject("Microsoft.XMLHTTP");}catch(e1){this.notSupported=true;}}}
if(this.req==null||typeof this.req=="undefined")
this.notSupported=true;}
AjaxAnywhere.prototype.substitutedSubmitButtons=new Array();AjaxAnywhere.prototype.substitutedSubmitButtonsInfo=new Object();AjaxAnywhere.prototype.findForm=function(){var form;if(this.formName!=null)
form=document.forms[this.formName];else if(document.forms.length>0)
form=document.forms[0];if(typeof form!="object")
this.message("AjaxAnywhere error: Form with name ["+this.formName+"] not found");return form;}
AjaxAnywhere.prototype.message=function(_message){if(this.debugMode){alert(_message);}else{window.status=_message;}}
AjaxAnywhere.prototype.bindById=function(){var key="AjaxAnywhere."+this.id;window[key]=this;}
AjaxAnywhere.findInstance=function(id){var key="AjaxAnywhere."+id;return window[key];}
AjaxAnywhere.prototype.submitAJAX=function(additionalPostData,submitButton){if(this.notSupported)
return this.onSubmitAjaxNotSupported(additionalPostData,submitButton);if(additionalPostData==null||typeof additionalPostData=="undefined")
additionalPostData="";this.bindById();var form=this.findForm();var actionAttrNode=form.attributes["action"];var url=actionAttrNode==null?null:actionAttrNode.nodeValue;if((url==null)||(url==""))
url=location.href;var pos=url.indexOf("#");if(pos!=-1)
url=url.substring(0,pos);if((url==null)||(url==""))
url=location.href;pos=url.indexOf("#");if(pos!=-1)
url=url.substring(0,pos);var zones=this.getZonesToReload(url,submitButton);if(zones==null){this.submitOld(form,submitButton)
return;}
this.dropPreviousRequest();this.req.open("POST",url,true);this.req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");var postData=this.preparePostData(submitButton);if(zones!="")
postData='&aazones='+encodeURIComponent(zones)+"&"+postData+"&"+additionalPostData;else
postData+="&"+additionalPostData;this.sendPreparedRequest(postData);}
AjaxAnywhere.prototype.getAJAX=function(url,zonesToRefresh){if(this.notSupported)
return this.onGetAjaxNotSupported(url);this.bindById();if(zonesToRefresh==null||typeof zonesToRefresh=="undefined")
zonesToRefresh="";var urlDependentZones=this.getZonesToReload(url);if(urlDependentZones==null){location.href=url;return;}
if(urlDependentZones.length!=0)
zonesToRefresh+=","+urlDependentZones;this.dropPreviousRequest();url+=(url.indexOf("?")!=-1)?"&":"?";url+="aaxmlrequest=true&aa_rand="+Math.random();if(zonesToRefresh!=null&&zonesToRefresh!="")
url+='&aazones='+encodeURIComponent(zonesToRefresh);this.req.open("GET",url,true);this.sendPreparedRequest("");}
AjaxAnywhere.prototype.sendPreparedRequest=function(postData){this.req.setRequestHeader("Accept","text/xml");var callbackKey=this.id+"_callbackFunction";if(typeof window[callbackKey]=="undefined")
window[callbackKey]=new Function("AjaxAnywhere.findInstance(\""+this.id+"\").callback(); ");this.req.onreadystatechange=window[callbackKey];this.showLoadingMessage();this.req.send(postData);this.onRequestSent();}
AjaxAnywhere.prototype.dropPreviousRequest=function(){if(this.req.readyState!=0&&this.req.readyState!=4){this.req.abort();this.handlePrevousRequestAborted();}}
AjaxAnywhere.prototype.preparePostData=function(submitButton){var form=this.findForm();var result="&aaxmlrequest=true";for(var i=0;i<form.elements.length;i++){var el=form.elements[i];if(el.tagName.toLowerCase()=="select"){for(var j=0;j<el.options.length;j++){var op=el.options[j];if(op.selected)
result+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(op.value);}}else if(el.tagName.toLowerCase()=="textarea"){result+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);}else if(el.tagName.toLowerCase()=="input"){if(el.type.toLowerCase()=="checkbox"||el.type.toLowerCase()=="radio"){if(el.checked)
result+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);}else if(el.type.toLowerCase()=="submit"){if(el==submitButton)
result+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);}else if(el.type.toLowerCase()!="button"){result+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);}}}
if(typeof submitButton!='undefined'&&submitButton!=null&&submitButton.type.toLowerCase()=="image"){if(submitButton.name==null||submitButton.name==""||typeof submitButton.name=="undefined")
result+="&x=1&y=1";else
result+="&"+encodeURIComponent(submitButton.name)+".x=1&"+
encodeURIComponent(submitButton.name)+".y=1";}
return result;}
function delay(millis){date=new Date();var curDate=null;do{curDate=new Date();}
while(curDate-date<millis);}
AjaxAnywhere.prototype.callback=function(){if(this.req.readyState==4){this.onBeforeResponseProcessing();this.hideLoadingMessage();if(this.req.status==200){if(this.req.getResponseHeader('content-type').toLowerCase().substring(0,8)!='text/xml')
this.message("AjaxAnywhere error : content-type in not text/xml : ["+this.req.getResponseHeader('content-type')+"]");var docs=this.req.responseXML.getElementsByTagName("document");var redirects=this.req.responseXML.getElementsByTagName("redirect");var zones=this.req.responseXML.getElementsByTagName("zone");var exceptions=this.req.responseXML.getElementsByTagName("exception");var scripts=this.req.responseXML.getElementsByTagName("script");var images=this.req.responseXML.getElementsByTagName("image");if(redirects.length!=0){var newURL=redirects[0].firstChild.data;location.href=newURL;}
if(docs.length!=0){var newContent=docs[0].firstChild.data;delete this.req;document.close();document.write(newContent);document.close();}
if(images.length!=0){var preLoad=new Array(images.length);for(var i=0;i<images.length;i++){var img=images[i].firstChild;if(img!=null){preLoad[i]=new Image();preLoad[i].src=img.data;}}
if(this.delayBeforeContentUpdate){delay(this.delayInMillis);}}
if(zones.length!=0){for(var i=0;i<zones.length;i++){var zoneNode=zones[i];var name=zoneNode.getAttribute("name");var id=zoneNode.getAttribute("id");var html="";for(var childIndex=0;childIndex<zoneNode.childNodes.length;childIndex++){html+=zoneNode.childNodes[childIndex].data}
var zoneHolder=name!=null?document.getElementById("aazone."+name):document.getElementById(id);if(zoneHolder!=null&&typeof(zoneHolder)!="undefined"){zoneHolder.innerHTML=html;}}}
if(exceptions.length!=0){var e=exceptions[0];var type=e.getAttribute("type");var stackTrace=e.firstChild.data;this.handleException(type,stackTrace);}
if(scripts.length!=0){for(var $$$$i=0;$$$$i<scripts.length;$$$$i++){var script=scripts[$$$$i].firstChild;if(script!=null){script=script.data;if(script.indexOf("document.write")!=-1){this.handleException("document.write","This script contains document.write(), which is not compatible with AjaxAnywhere : \n\n"+script);}else{eval("var aaInstanceId = \""+this.id+"\"; \n"+script);}}}
var globals=this.getGlobalScriptsDeclarationsList(script);if(globals!=null)
for(var i in globals){var objName=globals[i];try{window[objName]=eval(objName);}catch(e){}}}}else{if(this.req.status!=0)
this.handleHttpErrorCode(this.req.status);}
this.restoreSubstitutedSubmitButtons();this.onAfterResponseProcessing();}}
AjaxAnywhere.prototype.showLoadingMessage=function(){var div=document.getElementById("AA_"+this.id+"_loading_div");if(div==null){div=document.createElement("DIV");document.body.appendChild(div);div.id="AA_"+this.id+"_loading_div";div.innerHTML="&nbsp;Loading...";div.style.position="absolute";div.style.border="1 solid #bfc8cd";div.style.color="white";div.style.backgroundColor="#9ca1a4";div.style.width="100px";div.style.heigth="50px";div.style.fontFamily="Arial, Helvetica, sans-serif";div.style.fontWeight="bold";div.style.fontSize="11px";}
div.style.top=document.body.scrollTop+"px";div.style.left=(document.body.offsetWidth-100-(document.all?20:0))+"px";div.style.display="";}
AjaxAnywhere.prototype.hideLoadingMessage=function(){var div=document.getElementById("AA_"+this.id+"_loading_div");if(div!=null)
div.style.display="none";}
AjaxAnywhere.prototype.substituteFormSubmitFunction=function(){if(this.notSupported)
return;this.bindById();var form=this.findForm();form.submit_old=form.submit;var code="var ajax = AjaxAnywhere.findInstance(\""+this.id+"\"); "+"if (typeof ajax !='object' || ! ajax.isFormSubmitByAjax() ) "+"ajax.findForm().submit_old();"+" else "+"ajax.submitAJAX();"
form.submit=new Function(code);}
AjaxAnywhere.prototype.substituteSubmitButtonsBehavior=function(keepExistingOnClickHandler,elements){if(this.notSupported)
return;var form=this.findForm();if(elements==null||typeof elements=="undefined"){elements=new Array();for(var i=0;i<form.elements.length;i++){elements.push(form.elements[i]);}
var inputs=document.getElementsByTagName("input");for(var i=0;i<inputs.length;i++){var input=inputs[i];if(input.type!=null&&typeof input.type!="undefined"&&input.type.toLowerCase()=="image"&&input.form==form){elements.push(input);}}
for(var i=0;i<elements.length;i++){var el=elements[i];if(el.tagName.toLowerCase()=="input"&&(el.type.toLowerCase()=="submit"||el.type.toLowerCase()=="image")){this.substituteSubmitBehavior(el,keepExistingOnClickHandler);}}}else{for(var i=0;i<elements.length;i++){var el=elements[i];if(el==null)
continue;if(typeof el!="object")
el=form.elements[el];if(typeof el!="undefined"){if(el.tagName.toLowerCase()=="input"&&(el.type.toLowerCase()=="submit"||el.type.toLowerCase()=="image"))
this.substituteSubmitBehavior(el,keepExistingOnClickHandler);}}}}
AjaxAnywhere.prototype.substituteSubmitBehavior=function(el,keepExistingOnClickHandler){var inList=false;for(var i=0;i<this.substitutedSubmitButtons.length;i++){var btnName=this.substitutedSubmitButtons[i];if(btnName==el.name){inList=true;break;}}
if(!inList)
this.substitutedSubmitButtons.push(el.name);this.substitutedSubmitButtonsInfo[el.name]=keepExistingOnClickHandler;if(keepExistingOnClickHandler&&(typeof el.onclick!="undefined")&&(el.onclick!=null)&&(el.onclick!="")){el.AA_old_onclick=el.onclick;}
el.onclick=handleSubmitButtonClick;el.ajaxAnywhereId=this.id;}
AjaxAnywhere.prototype.restoreSubstitutedSubmitButtons=function(){if(this.substitutedSubmitButtons.length==0)
return;var form=this.findForm();for(var i=0;i<this.substitutedSubmitButtons.length;i++){var name=this.substitutedSubmitButtons[i];var el=form.elements[name];if(el!=null&&typeof el!="undefined"){if(el.onclick!=handleSubmitButtonClick){var keepExistingOnClickHandler=this.substitutedSubmitButtonsInfo[el.name];this.substituteSubmitBehavior(el,keepExistingOnClickHandler);}}else{if(name!=null&&typeof name!="undefined"&&name.length!=0){var elements=document.getElementsByName(name);if(elements!=null)
for(var j=0;j<elements.length;j++){el=elements[j];if(el!=null&&typeof el!="undefined"&&el.tagName.toLowerCase()=="input"&&typeof el.type!="undefined"&&el.type.toLowerCase()=="image"){if(el.onclick!=handleSubmitButtonClick){var keepExistingOnClickHandler=this.substitutedSubmitButtonsInfo[el.name];this.substituteSubmitBehavior(el,keepExistingOnClickHandler);}}}}}}}
function handleSubmitButtonClick(_event){if(typeof this.AA_old_onclick!="undefined"){if(false==this.AA_old_onclick(_event))
return false;if(typeof window.event!="undefined")
if(window.event.returnValue==false)
return false;}
var onsubmit=this.form.onsubmit;if(typeof onsubmit=="function"){if(false==onsubmit(_event))
return false;if(typeof window.event!="undefined")
if(window.event.returnValue==false)
return false;}
AjaxAnywhere.findInstance(this.ajaxAnywhereId).submitAJAX('',this);return false;}
AjaxAnywhere.prototype.isFormSubmitByAjax=function(){return true;}
AjaxAnywhere.prototype.setDelayBeforeLoad=function(isDelay){this.delayBeforeContentUpdate=isDelay;}
AjaxAnywhere.prototype.isDelayBeforeLoad=function(){return this.delayBeforeContentUpdate;}
AjaxAnywhere.prototype.setDelayTime=function(delayMillis){this.delayInMillis=delayMillis;}
AjaxAnywhere.prototype.getDelayTime=function(){return this.delayInMillis;}
AjaxAnywhere.prototype.handleException=function(type,details){this.message(details);}
AjaxAnywhere.prototype.handleHttpErrorCode=function(code){var details=confirm("AjaxAnywhere default error handler. XMLHttpRequest HTTP Error code:"+code+" \n\n Would you like to view the response content in a new window?");if(details&&this.debugMode){var win=window.open("",this.id+"_debug_window");if(win!=null){win.document.write("<html><body><xmp>"+this.req.responseText);win.document.close();win.focus();}else{this.message("Please, disable your pop-up blocker for this site first.");}}}
AjaxAnywhere.prototype.handlePrevousRequestAborted=function(){this.message("AjaxAnywhere default error handler. INFO: previous AJAX request dropped")}
AjaxAnywhere.prototype.getGlobalScriptsDeclarationsList=function(script){return null;}
AjaxAnywhere.prototype.getZonesToReload=function(url,submitButton){return this.getZonesToReaload();}
AjaxAnywhere.prototype.getZonesToReaload=function(url,submitButton){return"";}
AjaxAnywhere.prototype.onRequestSent=function(){};AjaxAnywhere.prototype.onBeforeResponseProcessing=function(){};AjaxAnywhere.prototype.onAfterResponseProcessing=function(){};AjaxAnywhere.prototype.onGetAjaxNotSupported=function(url){location.href=url;return false;};AjaxAnywhere.prototype.onSubmitAjaxNotSupported=function(additionalPostData,submitButton){var form=this.findForm();var actionAttrNode=form.attributes["action"];var url=actionAttrNode==null?null:actionAttrNode.nodeValue;var url_backup=url;if(typeof additionalPostData!='undefined'&&additionalPostData!=null){url+=(url.indexOf("?")!=-1)?"&":"?";url+=additionalPostData;form.attributes["action"].nodeValue=url;form.setAttribute("method","post");}
this.submitOld(form,submitButton);form.attributes["action"].nodeValue=url_backup;return false;};AjaxAnywhere.prototype.submitOld=function(form,submitButton){var submitHolder=null;if(submitButton!=null&&typeof submitButton!="undefined"){submitHolder=document.createElement("input");submitHolder.setAttribute("type","hidden");submitHolder.setAttribute("name",submitButton.name);submitHolder.setAttribute("value",submitButton.value);form.appendChild(submitHolder);}
if(typeof form.submit_old=="undefined")
form.submit();else
form.submit_old();if(submitButton!=null){form.removeChild(submitHolder);}}
ajaxAnywhere=new AjaxAnywhere();ajaxAnywhere.bindById();