/*
 * @author Yingfeng Lin
 * Copyright (C) Salmat 2008
 */
var ajaxremoteserver="";var ajaxVersionId=0;function ajaxEvalHandler(callback,variableName,parameters){var data=eval(variableName);if(parameters){callback(data,parameters)}else{callback(data)}}var ajaxCallbackExecutor=ajaxEvalHandler;function ajaxExecuteCallback(A){this.myDoneState=true;if(A.versionId==ajaxVersionId&&typeof A.myHandler=="function"){A.parentNode.removeChild(A);ajaxCallbackExecutor(A.myHandler,A.myVariable,A.myHandlerParameters)}}function ajaxProcessReturnData(){if(this.myDoneState===false){if(this.readyState){if((this.readyState=="complete")||(this.readyState=="loaded")){ajaxExecuteCallback(this)}}else{ajaxExecuteCallback(this)}}}function getRemoteData(D,C,E,B){var A=document.createElement("script");A.src="";if(C!==null&&C.length>0){C="&"+C}A.type="text/javascript";A.language="javascript";A.versionId=++ajaxVersionId;A.myHandler=E;A.myHandlerParameters=B;A.myDoneState=false;A.myVariable="mv"+Math.ceil(Math.random()*100000000);
A.src=ajaxremoteserver+"/data.js?type="+D+"&var="+A.myVariable+C;if(!A.readyState){if(typeof A.addEventListener=="function"){A.addEventListener("load",ajaxProcessReturnData,false)}}else{A.onreadystatechange=ajaxProcessReturnData}document.getElementsByTagName("head")[0].appendChild(A)}function ajaxPrintDebug(A){var B=document.createElement("p");B.innerHTML=A;document.body.appendChild(B)}function ajaxMakePOSTRequest(B,D,G,H,C){var A;if(window.XMLHttpRequest){A=new XMLHttpRequest();if(A.overrideMimeType){A.overrideMimeType("text/html")}}else{if(window.ActiveXObject){try{A=new ActiveXObject("Msxml2.XMLHTTP")}catch(F){try{A=new ActiveXObject("Microsoft.XMLHTTP")}catch(F){}}}}if(!A){alert("Cannot create XMLHTTP instance");return false}var E={status:false};A.onreadystatechange=function(){ajaxPostResultFunction(A,E,G,H,C)};A.open("POST",B,true);A.setRequestHeader("Content-type","application/x-www-form-urlencoded");A.setRequestHeader("Content-length",D.length);A.setRequestHeader("Connection","close");
A.send(D)}function ajaxPostResultFunction(httpRequest,doneStatus,variableName,callback,callbackparameters){if(!doneStatus.status&&httpRequest.readyState==4){if(httpRequest.status==200){doneStatus.status=true;var result=httpRequest.responseText?eval(httpRequest.responseText):null;if(callbackparameters){callback(result,callbackparameters)}else{callback(result)}}else{alert("There was a problem with the request. HTTP Error: "+httpRequest.status)}}}function postRemoteData(D,B,E,A){if(B){B="&"+B}var C="mv"+Math.ceil(Math.random()*100000000);ajaxMakePOSTRequest((ajaxlocalserver?ajaxlocalserver:ajaxremoteserver)+"/data.js","type="+D+"&var="+C+B,C,E,A)}function lzAutoLocation(C,A,B){this.defaultText="Suburb or Postcode";this.form=C;this.maxLines=A?A:10;this.maxWidth=B;this._processSubmit=function(){if(this.form.location.value==this.defaultText){this.form.location.value=""}};this._onFormSubmit=function(){this.process._processSubmit();return true};this._onBlurEvent=function(){var D=this.form.process;
if(this.value==""){this.value=D.defaultText}};this._onFocusEvent=function(){var D=this.form.process;if(this.value==D.defaultText){this.value=""}else{this.select()}};this._onKeyupEvent=function(E){var D=this.form;if(!E){E=event}if(E.keyCode==13){this.form.submit()}else{this.form.process._autolocation()}};this._autolocation=function(){var E=this.form;var D=E.location.value;if(D&&D.length>=3){getRemoteData("location.match","location="+escape(D),function(F){E.process._createBox(D,F.locations,E.location)})}else{this._hideAutoBox()}};this._hideAutoBox=function(){var D=document.getElementById("lzAutoBox");if(D){D.style.display="none"}};this.getElementX=function(D){var E=0;if(D.offsetParent){while(D.offsetParent){E+=D.offsetLeft;D=D.offsetParent}}else{if(D.y){E+=D.x}}return E};this.getElementY=function(E){var D=0;if(E.offsetParent){while(E.offsetParent){D+=E.offsetTop;E=E.offsetParent}}else{if(E.y){D+=E.y}}return D};this._createBox=function(F,I,E){var G=document.getElementById("lzAutoBox");if(!G){G=document.createElement("div");
G.id="lzAutoBox";G.style.zIndex="200";G.style.position="absolute";G.style.border="2px solid #ebebeb";G.style.backgroundColor="#FFFFFF";document.body.appendChild(G)}G.process=this;var H='<ul style="list-style: none;">';var K=F.toUpperCase();var L=0;for(var N in I){H+="<li onclick=\"lzAutoLocationSelectOption('";H+=I[N].displayName+"');\">";H+='<a href="#" onclick="return false;" style="display: block;padding: 0px">';var M=I[N].displayName.replace(K,"<strong>"+K+"</strong>");H+=M.replace(",",", ");H+="</a></li>";var D=(I[N].displayName.length+5)*6;if(L<D){L=D}}H+="</ul>";if(E.offsetWidth>L){L=E.offsetWidth}G.style.display="block";var J=I.length*16;if(this.maxWidth&&L>this.maxWidth){L=this.maxWidth}G.style.width=L+"px";G.style.top=this.getElementY(E)+20+"px";G.style.left=this.getElementX(E)+"px";if(I.length>this.maxLines){G.style.overflowX="hidden";G.style.overflowY="auto";G.style.height=(16*this.maxLines)+"px"}else{G.style.overflow="";G.style.height=J+3+"px"}if(I.length>0){G.innerHTML=H}else{G.innerHTML="Your location is not recognised. Please re-enter your suburb or postcode";
G.style.height="50px";G.style.width="150px";G.style.color="#cc0000"}G.style.display="block"};this._init=function(){this.form.process=this;this.form.onsubmit=this._onFormSubmit;this.form.location.onblur=this._onBlurEvent;this.form.location.onfocus=this._onFocusEvent;this.form.location.onkeyup=this._onKeyupEvent;if(this.form.location.value==""){this.form.location.value=this.defaultText}};this._init()}function lzAutoLocationSelectOption(C){var B=document.getElementById("lzAutoBox");var A=B.process.form.location;A.value=C;A.focus();B.style.display="none"};
