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(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"];form["advajax_args"]=args;form["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(targetObj,url){if(typeof targetObj=="string")
targetObj=document.getElementById(targetObj);if(!targetObj)
return-1;advAJAX.get({url:url,onSuccess:function(obj){targetObj.innerHTML=obj.responseText;}});};advAJAX.scan=function(){var obj=document.getElementsByTagName("a");for(var i=0;i<obj.length;){if(obj[i].getAttribute("rel")=="advancedajax"&&obj[i].getAttribute("href")!==null){var url=obj[i].getAttribute("href");var div=document.createElement("div");div.innerHTML=obj[i].innerHTML;div.className=obj[i].className;var parent=obj[i].parentNode;parent.insertBefore(div,obj[i]);parent.removeChild(obj[i]);advAJAX.download(div,url);}else i++;}};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];};advAJAX._groupData=new Object();var Custom={init:function(){var inputs=document.getElementsByTagName("input"),span=Array(),options_div=Array(),divs=Array(),selects_inputs=Array(),textareas=Array(),options_list=Array(),textnode,option,active;var selects=document.getElementsByTagName("select");var textareas=document.getElementsByTagName("textarea");for(a=0;a<inputs.length;a++){if((inputs[a].type=='text')){if(inputs[a].className.indexOf('city_sug')!=-1){div=document.createElement("div");div.className='cities_suggestions';div.id='cities_suggestions_'+inputs[a].name;ul=document.createElement('ul');ul.id='cities_suggestions_list_'+inputs[a].name;ul.style.display='none';ifr=document.createElement('iframe');ifr.id='cities_iframe_'+inputs[a].name;ifr.style.display='none';div.appendChild(ul);div.appendChild(ifr);inputs[a].parentNode.insertBefore(div,inputs[a].parentNode.firstChild);inputs[a].setAttribute("autocomplete","off");inputs[a].onkeypress=function(e){e=e||event;if(e.keyCode==13){return false;}}
inputs[a].onkeyup=function(e){e=e||event;if(e.keyCode==13){return false;}}
inputs[a].onkeydown=function(e){e=e||event;if(e.keyCode==9){for(i=0;i<this.form.elements.length;i++){if(this==this.form.elements[i])this.form.elements[i+1].focus();}}
if(e.keyCode==40||e.keyCode==38||e.keyCode==13||e.keyCode==9){return!1;}
clearTimeout(this.T);var M=this;this.T=setTimeout(function(){advAJAX.get({url:"/cities-suggestions",parameters:{"letters":M.value},onSuccess:function(obj){for(var i=0,A=[],o;o=obj.responseXML.getElementsByTagName('rs')[i++];){A.push([o.firstChild.nodeValue,o.getAttribute('info'),o.getAttribute('reg')]);}
Custom.data_city(A,M);}});},100);}}
if(inputs[a].className.indexOf('strlen')!=-1){sp=document.createElement("span");sp.className="strlen_span";sp.id="strlen_"+inputs[a].name;sp.appendChild(document.createTextNode('Pozostało '+(inputs[a].maxLength-inputs[a].value.length)+' znaków z '+inputs[a].maxLength));inputs[a].onkeydown=Custom.change_strlen;inputs[a].onkeyup=Custom.change_strlen;inputs[a].onchange=Custom.change_strlen;inputs[a].setAttribute("autocomplete","off");if(span[a].nextSibling)span[a].parentNode.insertBefore(sp,span[a].nextSibling);else span[a].parentNode.appendChild(sp);}}}
for(a=0;a<textareas.length;a++){max=textareas[a].className.substr(textareas[a].className.indexOf('maxlength')+10);if(textareas[a].className.indexOf('strlen')!=-1){sp=document.createElement("span");sp.className="strlen_span";sp.id="strlen_"+textareas[a].name;sp.appendChild(document.createTextNode('Pozostało '+(max-textareas[a].value.length)+' znaków z '+max));textareas[a].onkeydown=Custom.change_strlen;textareas[a].onkeyup=Custom.change_strlen;textareas[a].onchange=Custom.change_strlen;if(textareas[a].nextSibling)textareas[a].parentNode.insertBefore(sp,textareas[a].nextSibling);else textareas[a].parentNode.appendChild(sp);}}
document.onclick=function(e){if(window.event){e=window.event;}
var targ=(e.target)?e.target:e.srcElement;if(targ!=null){if(targ.nodeType==3)
targ=targ.parentNode;}
hide=true;while(targ!=null){if(targ.className.indexOf('city_sug')!=-1){hide=false;break;}
targ=targ.offsetParent;}
if(hide)Custom.clean_cities();}
document.onkeydown=function(e){if(window.event){e=window.event;}
elms=document.getElementsByTagName('div');switch(e.keyCode){case 40:if(s=document.getElementById('hint_selected')){s.removeAttribute('id');if(n=s.nextSibling){n.setAttribute('id','hint_selected');}else{s.parentNode.firstChild.setAttribute('id','hint_selected');}}
break;case 38:if(s=document.getElementById('hint_selected')){s.removeAttribute('id');if(n=s.previousSibling){n.setAttribute('id','hint_selected');}else{s.parentNode.lastChild.setAttribute('id','hint_selected');}}
break;case 13:if(s=document.getElementById('hint_selected')){s.onclick();}
break;case 9:if(s=document.getElementById('hint_selected')){Custom.clean_cities();}
break;}}},change_strlen:function(){strlen_span=document.getElementById("strlen_"+this.name);if(this.maxLength){strlen_span.innerHTML='Pozostało '+(this.maxLength-this.value.length)+' znaków z '+this.maxLength;}
else{if(this.value.length>max)this.value=this.value.substring(0,max);max=this.className.substr(this.className.indexOf('maxlength')+10);strlen_span.innerHTML='Pozostało '+(max-this.value.replace("\n",'').length)+' znaków z '+max;}},data_city:function(A,input){Custom.clean_cities();for(var i=0,v;v=A[i++];){var li=document.createElement('li');li.city=v[0];li.info=v[1];li.reg=v[2];li.appendChild(document.createTextNode(li.info));li.onclick=Custom.choose_city;li.onmouseover=Custom.change_selected_city;div=document.getElementById('cities_suggestions_'+input.name);div.style.display='block';ul=document.getElementById('cities_suggestions_list_'+input.name);ul.appendChild(li);}
if(ul.firstChild){ul.firstChild.setAttribute('id','hint_selected');ul.style.display='block';ifr=document.getElementById('cities_iframe_'+input.name);ifr.style.display='block';}},choose_city:function(){id=this.parentNode.id.substring(24);city_input=document.getElementById(id);city_input.value=this.city;selects=document.getElementsByTagName("select");for(i=0;i<selects.length;i++){classes=selects[i].className.split(" ");this_select=false;for(j=0;j<=classes.length;j++){if(classes[j]==id){this_select=true;break;}}
if(this_select){selects[i].value=this.reg;}}
Custom.clean_cities();},change_selected_city:function(){s=document.getElementById('hint_selected');if(s)s.removeAttribute('id');this.setAttribute('id','hint_selected');},clean_cities:function(){dvs=document.getElementsByTagName("div");for(i=0;i<dvs.length;i++){if(dvs[i].className=='cities_suggestions'){ul=dvs[i].firstChild;while(child=ul.firstChild){ul.removeChild(child);}
ul.style.display='none';dvs[i].style.display='none';}}}}
window.onload=Custom.init;