function useAddressLookup(params){$(function(){var addressField=$('#'+params.addressFieldId);var countryField=$('#'+params.countryFieldId);$('#'+params.addressFieldId).autocomplete(function(address,callback){var addr={'country':countryField[0].value,'address':addressField[0].value};$.get('/lookup_address.php',{addr:$.toJson(addr)},function(addrList){addrList=$.parseJson(addrList);var filteredAddrList=[];for(var i=0;i<addrList.length;i++){var displayAddress=addrList[i].split(',').slice(0,-1).join(',');if(displayAddress)filteredAddrList[i]=[displayAddress];}
callback(filteredAddrList);});},{matchCase:false,emptyHint:(params.locationHelper!=undefined)?params.locationHelper:'Select a location from the list<br> that appears as you type',placeholder:params.placeholder||'',validate:params.validate||false});countryField.change(function(){addressField[0].value=params.placeholder||'';addressField.change();});});}
var emailDomains=['hotmail.com','yahoo.com','hotmail.co.uk','yahoo.co.uk','aol.com','gmail.com','live.co.uk','btinternet.com','googlemail.com','msn.com','live.com','ntlworld.com','tiscali.co.uk','ymail.com','sky.com','blueyonder.co.uk','comcast.net','fsmail.net','rocketmail.com','aim.com','talktalk.net','yahoo.co.in','aol.co.uk','sbcglobal.net','rediffmail.com','breakthru.com','verizon.net','virgin.net','yahoo.ca','wp.pl','att.net','yahoo.ie','o2.co.uk','live.ie','cox.net','lycos.co.uk','bellsouth.net','tesco.net','eircom.net','yahoo.com.au','btopenworld.com','live.ca','excite.com','btconnect.com','talk21.com','yahoo.fr','rock.com','gmx.com','charter.net','o2.pl','peoplepc.com','mailinator.com','earthlink.net','live.com.au','lycos.com','gmx.co.uk','yahoo.in','hotmail.fr','orange.net'];function autocomplete_email_domain(params){$(function(){var emailField=$('#'+params.emailFieldId);var domains=params.domains||emailDomains;$('#'+params.emailFieldId).autocomplete(function(email,callback){emails=[]
if(email){if(email.search(/@/)>0){var emailParts=email.split("@");if(emailParts.length==2&&emailParts[1]){for(var i=0;i<domains.length;i++){regExp=new RegExp("^"+emailParts[1],"i");if(regExp.test(domains[i]))
emails[i]=[emailParts[0]+'@'+domains[i]];}}}}
callback(emails);},{matchCase:false,validate:params.validate||false,emptyHint:(params.locationHelper!=undefined)?params.locationHelper:'Select a email domain from the list<br> that appears as you type'});});}
jQuery.autocomplete=function(input,options){var me=this;var default_value='';var $input=$(input).attr("autocomplete","off");if(input.value)default_value=input.value;if(!input.value)input.value=options.placeholder;if(options.inputClass)$input.addClass(options.inputClass);if(options.valueFieldId){var $valueField=$('#'+options.valueFieldId);if(!$valueField[0])$valueField=$('<input type="hidden" id="'+options.valueFieldId+'" name="'+options.valueFieldId+'" />').insertAfter($input);}
else var $valueField=null;var results=document.createElement("div");var $results=$(results);$results.hide().addClass(options.resultsClass).css("position","absolute");if(options.width>0)$results.css("width",options.width);$("body").append(results);input.autocompleter=me;var timeout=null;var validate_timeout=null;var prev="";var active=-1;var cache={};var keyb=false;var hasFocus=false;var lastKeyPressCode=null;function flushCache(){cache={};cache.data={};cache.length=0;};flushCache();if(options.data!=null){var sFirstChar="",stMatchSets={},row=[];if(typeof options.url!="string")options.cacheLength=1;for(var i=0;i<options.data.length;i++){row=((typeof options.data[i]=="string")?[options.data[i]]:options.data[i]);if(row[0].length>0){sFirstChar=row[0].substring(0,1).toLowerCase();if(!stMatchSets[sFirstChar])stMatchSets[sFirstChar]=[];stMatchSets[sFirstChar].push(row);}}
for(var k in stMatchSets){options.cacheLength++;addToCache(k,stMatchSets[k]);}}
$input.keydown(function(e){lastKeyPressCode=e.keyCode;switch(e.keyCode){case 38:e.preventDefault();moveSelect(-1);break;case 40:e.preventDefault();moveSelect(1);break;case 9:if($input.val()!=default_value)selectCurrent();break;case 13:selectCurrent();$input.get(0).blur();e.preventDefault();break;case 27:$results.hide();options.onListHide();break;default:active=-1;if(timeout)clearTimeout(timeout);timeout=setTimeout(function(){onChange();},options.delay);break;}}).focus(function(){if(input.value==options.placeholder)input.value='';hasFocus=true;if($results.text())showResults();else if(!input.value)showPlaceholder('empty');else onChange();}).blur(function(){hasFocus=false;hideResults();if(!input.value){hideResultsNow();$results.empty();input.value=options.placeholder;}
if(options.validate){if(validate_timeout)clearTimeout(validate_timeout);validate_timeout=setTimeout(function(){$input.attr("autocomplete","off");$input.valid();},200);}
options.onListHide();});hideResultsNow();function onChange(){var v=$input.val();prev=v;if(v.length>=options.minChars){setExtraValue(null);requestData(v);}else{setExtraValue(false);$input.removeClass(options.loadingClass);if(!input.value)$results.hide();}};function moveSelect(step){var lis=$("li",results);if(!lis.length)return;active+=step;if(active<0){active=0;}else if(active>=lis.size()){active=lis.size()-1;}
lis.removeClass("ac_over");if(active>=0)$(lis[active]).addClass("ac_over");};function selectCurrent(){var li=$("li.ac_over",results)[0];if(!li){var $li=$("li",results);if(options.selectOnly){if($li.length==1)li=$li[0];}else if(options.selectFirst){li=$li[0];}}
if(li){selectItem(li);return true;}else{return false;}};function selectItem(li){if(!li){li=document.createElement("li");li.extra=[];li.selectValue="";}
var v=$.trim(li.selectValue?li.selectValue:li.innerHTML);input.lastSelected=v;prev=v;$results.html("");$input.val(v);if(li.extra&&li.extra[0])setExtraValue(li.extra[0]);hideResultsNow();if(options.onItemSelect)setTimeout(function(){options.onItemSelect(li)},1);};function createSelection(start,end){var field=$input.get(0);if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}else if(field.setSelectionRange){field.setSelectionRange(start,end);}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end;}}
field.focus();};function autoFill(sValue){if(lastKeyPressCode!=8){$input.val($input.val()+sValue.substring(prev.length));createSelection(prev.length,sValue.length);}};function showResults(){var pos=findPos(input);var iWidth=(options.width>0)?options.width:$input.outerWidth();var textWidth=$results.css('width','auto').show().width();var textOuterWidth=$results.outerWidth();$results.css({width:iWidth>textWidth?iWidth-(textOuterWidth-textWidth):'auto',top:(pos.y+input.offsetHeight)+"px",left:pos.x+"px"});if(active==-1)moveSelect(1);};function showPlaceholder(type){var label=options[type+'Hint'];if(label){$results.html('<p class="ac_'+type+'">'+label+'</p>'+($.browser.msie6?'<iframe></iframe>':''));showResults();}else hideResultsNow();};function hideResults(){if(timeout)clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){if(timeout)clearTimeout(timeout);$input.removeClass(options.loadingClass);if($results.is(":visible")){$results.hide();}
if(options.mustMatch){var v=$input.val();if(v!=input.lastSelected){selectItem(null);}}};function receiveData(q,data){results.innerHTML="";$input.removeClass(options.loadingClass);if(options.onDataReceived)options.onDataReceived(me,q,data);if(data===false)return hideResultsNow();setExtraValue(false);if(!data||!data.length)return showPlaceholder('noMatch');if(!hasFocus)return hideResultsNow();if($.browser.msie){$results.append(document.createElement('iframe'));}
results.appendChild(dataToDom(data));if(options.autoFill&&($input.val().toLowerCase()==q.toLowerCase()))autoFill(data[0][0]);if(options.validate)$input.attr("autocomplete","on");showResults();};function parseData(data){if(!data)return null;var parsed=[];var rows=data.split(options.lineSeparator);for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){parsed[parsed.length]=row.split(options.cellSeparator);}}
return parsed;};function dataToDom(data){var ul=document.createElement("ul");var num=data.length;if((options.maxItemsToShow>0)&&(options.maxItemsToShow<num))num=options.maxItemsToShow;for(var i=0;i<num;i++){var row=data[i];if(!row)continue;var li=document.createElement("li");if(options.formatItem){li.innerHTML=options.formatItem(row,i,num);li.selectValue=row[0];}else{li.innerHTML=row[0];li.selectValue=row[0];}
var extra=null;if(row.length>1){extra=[];for(var j=1;j<row.length;j++){extra[extra.length]=row[j];}}
li.extra=extra;ul.appendChild(li);$(li).addClass(i%2==0?'ac_even':'ac_odd');$(li).hover(function(){$("li",ul).removeClass("ac_over");$(this).addClass("ac_over");active=$("li",ul).indexOf($(this).get(0));},function(){$(this).removeClass("ac_over");}).click(function(e){e.preventDefault();e.stopPropagation();selectItem(this)}).mousedown(function(e){e.preventDefault();e.stopPropagation();});}
return ul;};function requestData(q){if(!options.matchCase)q=q.toLowerCase();var data=options.cacheLength?loadFromCache(q):null;if(data){receiveData(q,data);}else if(typeof options.url=="function"){$input.addClass(options.loadingClass);options.url(q,function(data){addToCache(q,data);receiveData(q,data);});}else if((typeof options.url=="string")&&(options.url.length>0)){$.get(makeUrl(q),function(data){data=parseData(data);addToCache(q,data);receiveData(q,data);});}else{$input.removeClass(options.loadingClass);}};function makeUrl(q){var url=options.url+"?q="+encodeURI(q);for(var i in options.extraParams){url+="&"+i+"="+encodeURI(options.extraParams[i]);}
return url;};function loadFromCache(q){if(!q)return null;if(cache.data[q])return cache.data[q];if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var qs=q.substr(0,i);var c=cache.data[qs];if(c){var csub=[];for(var j=0;j<c.length;j++){var x=c[j];var x0=x[0];if(matchSubset(x0,q)){csub[csub.length]=x;}}
return csub;}}}
return null;};function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(i==-1)return false;return i==0||options.matchContains;};this.flushCache=function(){flushCache();};this.setExtraParams=function(p){options.extraParams=p;};this.findValue=function(){var q=$input.val();if(!options.matchCase)q=q.toLowerCase();var data=options.cacheLength?loadFromCache(q):null;if(data){findValueCallback(q,data);}else if((typeof options.url=="string")&&(options.url.length>0)){$.get(makeUrl(q),function(data){data=parseData(data)
addToCache(q,data);findValueCallback(q,data);});}else{findValueCallback(q,null);}}
function findValueCallback(q,data){if(data)$input.removeClass(options.loadingClass);var num=(data)?data.length:0;var li=null;for(var i=0;i<num;i++){var row=data[i];if(row[0].toLowerCase()==q.toLowerCase()){li=document.createElement("li");if(options.formatItem){li.innerHTML=options.formatItem(row,i,num);li.selectValue=row[0];}else{li.innerHTML=row[0];li.selectValue=row[0];}
var extra=null;if(row.length>1){extra=[];for(var j=1;j<row.length;j++){extra[extra.length]=row[j];}}
li.extra=extra;}}
if(options.onFindValue)setTimeout(function(){options.onFindValue(li)},1);}
function addToCache(q,data){if(!data||!q||!options.cacheLength)return;if(!cache.length||cache.length>options.cacheLength){flushCache();cache.length++;}else if(!cache[q]){cache.length++;}
cache.data[q]=data;};function findPos(obj){var offset=$(obj).offset();var curleft=offset.left||0;var curtop=offset.top||0;return{x:curleft,y:curtop};}
function setExtraValue(value){if($valueField)$valueField[0].value=(value===null)?'':$.toJson(value);}}
jQuery.fn.autocomplete=function(url,options,data){options=options||{};options.url=url;options.data=((typeof data=="object")&&(data.constructor==Array))?data:null;options.placeholder=options.placeholder||'';options.loadingHint=options.loadingHint||'Loading&hellip;'
options.inputClass=options.inputClass||"ac_input";options.resultsClass=options.resultsClass||"ac_results";options.lineSeparator=options.lineSeparator||"\n";options.cellSeparator=options.cellSeparator||"|";options.minChars=options.minChars||1;options.delay=options.delay||400;options.matchCase=options.matchCase||0;options.matchSubset=options.matchSubset||0;options.matchContains=options.matchContains||0;options.cacheLength=options.cacheLength||1;options.mustMatch=options.mustMatch||0;options.extraParams=options.extraParams||{};options.loadingClass=options.loadingClass||"ac_loading";options.selectFirst=options.selectFirst||false;options.selectOnly=options.selectOnly||false;options.maxItemsToShow=options.maxItemsToShow||-1;options.autoFill=options.autoFill||false;options.width=parseInt(options.width,10)||0;options.validate=options.validate||false
options.onListHide=options.onListHide||function(){}
options.onDataReceived=options.onDataReceived||function(){}
this.each(function(){var input=this;new jQuery.autocomplete(input,options);});return this;}
jQuery.fn.autocompleteArray=function(data,options){return this.autocomplete(null,options,data);}
jQuery.fn.indexOf=function(e){for(var i=0;i<this.length;i++){if(this[i]==e)return i;}
return-1;};function useAddressLookup(params){$(function(){var addressField=$('#'+params.addressFieldId);var countryField=$('#'+params.countryFieldId);$('#'+params.addressFieldId).autocomplete(function(address,callback){var addr={'country':countryField[0].value,'address':addressField[0].value};$.get('/lookup_address.php',{addr:$.toJson(addr)},function(addrList){addrList=$.parseJson(addrList);var filteredAddrList=[];for(var i=0;i<addrList.length;i++){var displayAddress=addrList[i].split(',').slice(0,-1).join(',');if(displayAddress)filteredAddrList[i]=[displayAddress];}
callback(filteredAddrList);});},{matchCase:false,emptyHint:(params.locationHelper!=undefined)?params.locationHelper:'Select a location from the list<br> that appears as you type',placeholder:params.placeholder||''});countryField.change(function(){addressField[0].value=params.placeholder||'';addressField.change();});});}
var emailDomains=['hotmail.com','yahoo.com','hotmail.co.uk','yahoo.co.uk','aol.com','gmail.com','live.co.uk','btinternet.com','googlemail.com','msn.com','live.com','ntlworld.com','tiscali.co.uk','ymail.com','sky.com','blueyonder.co.uk','comcast.net','fsmail.net','rocketmail.com','aim.com','talktalk.net','yahoo.co.in','aol.co.uk','sbcglobal.net','rediffmail.com','breakthru.com','verizon.net','virgin.net','yahoo.ca','wp.pl','att.net','yahoo.ie','o2.co.uk','live.ie','cox.net','lycos.co.uk','bellsouth.net','tesco.net','eircom.net','yahoo.com.au','btopenworld.com','live.ca','excite.com','btconnect.com','talk21.com','yahoo.fr','rock.com','gmx.com','charter.net','o2.pl','peoplepc.com','mailinator.com','earthlink.net','live.com.au','lycos.com','gmx.co.uk','yahoo.in','hotmail.fr','orange.net'];function autocomplete_email_domain(params){$(function(){var emailField=$('#'+params.emailFieldId);var domains=params.domains||emailDomains;$('#'+params.emailFieldId).autocomplete(function(email,callback){emails=[]
if(email){if(email.search(/@/)>0){var emailParts=email.split("@");if(emailParts.length==2&&emailParts[1]){for(var i=0;i<domains.length;i++){regExp=new RegExp("^"+emailParts[1],"i");if(regExp.test(domains[i]))
emails[i]=[emailParts[0]+'@'+domains[i]];}}}}
callback(emails);},{matchCase:false,validate:params.validate||false,emptyHint:(params.locationHelper!=undefined)?params.locationHelper:'Select a email domain from the list<br> that appears as you type'});});}
jQuery.fn.lookupAddress=function(options){var $lookupAddress=this;options=$.extend({prefix:'',error:false,countrySelector:null,onError:function(){},onReset:function(){},onItemSelect:function(){},placeholder:'city or postal code'},options);$lookupAddress.onError=function(handler){options.onError=handler;return $lookupAddress;};$lookupAddress.onReset=function(handler){options.onReset=handler;return $lookupAddress;};$lookupAddress.onItemSelect=function(handler){options.onItemSelect=handler;return $lookupAddress;};$lookupAddress.each(function(){var self=this;var $self=$(this);var $location=$self.find('input.location');var $country=options.countrySelector?$(options.countrySelector):$self.find('input.country');var $help=$self.find('.help');var $error=$self.find('.'+options.prefix+'error');var _query='';var _locations=[];var _default_value='';var el=null;var _cache={};$(function(){_default_value=($location.val()!=options.placeholder?$location.val():'');el=$location.autocomplete(function(query,callback){_reset();var addr={'country':$country.val(),'address':query};var _handleResponse=function(response){if(!response)response=[];if(_cache[addr.country]==undefined)_cache[addr.country]={};_cache[addr.country][addr.address]=$.parseJson($.toJson(response));_query=query;_locations=response;if(!_locations.length){_locations=[];_onError();}
$(_locations).each(function(key,location){if(typeof location=='string'){_locations[key]=[location];}
_locations[key][0]=_locations[key][0].split(',').slice(0,-1).join(',');});callback(_locations);};if(_cache[addr.country]!=undefined&&_cache[addr.country][addr.address]!=undefined)
{_handleResponse(_cache[addr.country][addr.address]);}else{$.get('/lookup_address.php',{addr:$.toJson(addr),v:'2'},_handleResponse,'json');}},{matchContains:1,maxItemsToShow:10,cacheLength:0,selectFirst:true,minChars:2,formatItem:function(location,i,n){return _highlight(escapeHtml(location[0]))
+(location.length>1?'<br><span class="small">'+escapeHtml(location[1])+'</span>':'');},onListHide:function(){setTimeout(function(){if(_locations.length>0&&!_isChoosen()&&$location.val()!=_default_value){$location.val(_locations[0][0]);}},100);},onDataReceived:function(obj,q,data){obj.flushCache();},onItemSelect:function(data){options.onItemSelect(data);},emptyHint:(options.locationHelper!=undefined)?options.locationHelper:'Select a location from the list that<br>appears as you type',placeholder:options.placeholder,delay:200});if(options.error){_onError();}})
function _highlight(item){return item.replace(new RegExp("("+$.trim(_query).split(/[^\w]+/).join("|")+")","gi"),"<strong>$1</strong>");}
function _isChoosen(){var value=$location.val();var choosen=false;$(_locations).each(function(){if(this[0]==value)choosen=true;});return choosen;};function _reset(){_locations=[];_query='';_resetAddress();options.onReset();}
function _resetAddress(){$help.show();$error.hide();$location.removeClass(options.prefix+'error');}
function _showError(){$help.hide();$error.show();$location.addClass(options.prefix+'error');}
function _onError(){_showError();options.onError();}
self.validate=function(){if(!self.isValid()){_showError();return false;}else{return true;}};self.isValid=function(){return($location.val()!=''&&$location.val()!=options.placeholder);};$location.keyup(function(){if($(this).val()==''){_reset();}});});$lookupAddress.validate=function(){$lookupAddress.each(function(){this.validate();});};$lookupAddress.isValid=function(){var is_valid=true;$lookupAddress.each(function(){if(!this.isValid()){is_valid=false;return false;}});return is_valid;}
return this;};(function($){$.extend($.fn,{validate:function(options){if(!this.length){options&&options.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return;}
var validator=$.data(this[0],'validator');if(validator){return validator;}
validator=new $.validator(options,this[0]);$.data(this[0],'validator',validator);if(validator.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){validator.cancelSubmit=true;});if(validator.settings.submitHandler){this.find("input, button").filter(":submit").click(function(){validator.submitButton=this;});}
this.submit(function(event){if(validator.settings.debug)
event.preventDefault();function handle(){if(validator.settings.submitHandler){if(validator.submitButton){var hidden=$("<input type='hidden'/>").attr("name",validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);}
validator.settings.submitHandler.call(validator,validator.currentForm);if(validator.submitButton){hidden.remove();}
return false;}
return true;}
if(validator.cancelSubmit){validator.cancelSubmit=false;return handle();}
if(validator.form()){if(validator.pendingRequest){validator.formSubmitted=true;return false;}
return handle();}else{validator.focusInvalid();return false;}});}
return validator;},valid:function(){if($(this[0]).is('form')){return this.validate().form();}else{var valid=true;var validator=$(this[0].form).validate();this.each(function(){valid&=validator.element(this);});return valid;}},removeAttrs:function(attributes){var result={},$element=this;$.each(attributes.split(/\s/),function(index,value){result[value]=$element.attr(value);$element.removeAttr(value);});return result;},rules:function(command,argument){var element=this[0];if(command){var settings=$.data(element.form,'validator').settings;var staticRules=settings.rules;var existingRules=$.validator.staticRules(element);switch(command){case"add":$.extend(existingRules,$.validator.normalizeRule(argument));staticRules[element.name]=existingRules;if(argument.messages)
settings.messages[element.name]=$.extend(settings.messages[element.name],argument.messages);break;case"remove":if(!argument){delete staticRules[element.name];return existingRules;}
var filtered={};$.each(argument.split(/\s/),function(index,method){filtered[method]=existingRules[method];delete existingRules[method];});return filtered;}}
var data=$.validator.normalizeRules($.extend({},$.validator.metadataRules(element),$.validator.classRules(element),$.validator.attributeRules(element),$.validator.staticRules(element)),element);if(data.required){var param=data.required;delete data.required;data=$.extend({required:param},data);}
return data;}});$.extend($.expr[":"],{blank:function(a){return!$.trim(a.value);},filled:function(a){return!!$.trim(a.value);},unchecked:function(a){return!a.checked;}});$.validator=function(options,form){this.settings=$.extend({},$.validator.defaults,options);this.currentForm=form;this.init();};$.validator.format=function(source,params){if(arguments.length==1)
return function(){var args=$.makeArray(arguments);args.unshift(source);return $.validator.format.apply(this,args);};if(arguments.length>2&&params.constructor!=Array){params=$.makeArray(arguments).slice(1);}
if(params.constructor!=Array){params=[params];}
$.each(params,function(i,n){source=source.replace(new RegExp("\\{"+i+"\\}","g"),n);});return source;};$.extend($.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:$([]),errorLabelContainer:$([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(element){this.lastActive=element;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,element,this.settings.errorClass,this.settings.validClass);this.errorsFor(element).hide();}},onfocusout:function(element){if(!this.checkable(element)&&!this.autocompleted(element)){this.element(element);}},onkeyup:function(element){if(element.name in this.submitted||element==this.lastElement){this.element(element);}},onclick:function(element){if(element.name in this.submitted)
this.element(element);},highlight:function(element,errorClass,validClass){$(element).addClass(errorClass).removeClass(validClass);},unhighlight:function(element,errorClass,validClass){$(element).removeClass(errorClass).addClass(validClass);}},setDefaults:function(settings){$.extend($.validator.defaults,settings);},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",dateDE:"Bitte geben Sie ein gültiges Datum ein.",number:"Please enter a valid number.",numberDE:"Bitte geben Sie eine Nummer ein.",digits:"Please enter only digits",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:$.validator.format("Please enter no more than {0} characters."),minlength:$.validator.format("Please enter at least {0} characters."),rangelength:$.validator.format("Please enter a value between {0} and {1} characters long."),range:$.validator.format("Please enter a value between {0} and {1}."),max:$.validator.format("Please enter a value less than or equal to {0}."),min:$.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=$(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var groups=(this.groups={});$.each(this.settings.groups,function(key,value){$.each(value.split(/\s/),function(index,name){groups[name]=key;});});var rules=this.settings.rules;$.each(rules,function(key,value){rules[key]=$.validator.normalizeRule(value);});function delegate(event){var validator=$.data(this[0].form,"validator");validator.settings["on"+event.type]&&validator.settings["on"+event.type].call(validator,this[0]);}
$(this.currentForm).delegate("focusin focusout keyup",":text, :password, :file, select, textarea",delegate).delegate("click",":radio, :checkbox",delegate);if(this.settings.invalidHandler)
$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler);},form:function(){this.checkForm();$.extend(this.submitted,this.errorMap);this.invalid=$.extend({},this.errorMap);if(!this.valid())
$(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid();},checkForm:function(){this.prepareForm();for(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){this.check(elements[i]);}
return this.valid();},element:function(element){var msgOld=this.errorMap[element.name];element=this.clean(element);this.lastElement=element;this.prepareElement(element);this.currentElements=$(element);var result=this.check(element);if(result){delete this.invalid[element.name];}else{this.invalid[element.name]=true;}
if(!this.numberOfInvalids()){this.toHide=this.toHide.add(this.containers);}
if(!result&&this.errorMap[element.name]){var msg=this.errorMap[element.name];if(msg==msgOld){return;}}
this.showErrors();return result;},showErrors:function(errors){if(errors){$.extend(this.errorMap,errors);this.errorList=[];for(var name in errors){this.errorList.push({message:errors[name],element:this.findByName(name)[0]});}
this.successList=$.grep(this.successList,function(element){return!(element.name in errors);});}
this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors();},resetForm:function(){if($.fn.resetForm)
$(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass);},numberOfInvalids:function(){return this.objectLength(this.invalid);},objectLength:function(obj){var count=0;for(var i in obj)
count++;return count;},hideErrors:function(){this.addWrapper(this.toHide).hide();},valid:function(){return this.size()==0;},size:function(){return this.errorList.length;},focusInvalid:function(){if(this.settings.focusInvalid){try{$(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus();}catch(e){}}},findLastActive:function(){var lastActive=this.lastActive;return lastActive&&$.grep(this.errorList,function(n){return n.element.name==lastActive.name;}).length==1&&lastActive;},elements:function(){var validator=this,rulesCache={};return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in rulesCache||!validator.objectLength($(this).rules()))
return false;rulesCache[this.name]=true;return true;});},clean:function(selector){return $(selector)[0];},errors:function(){return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext);},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=$([]);this.toHide=$([]);this.formSubmitted=false;this.currentElements=$([]);},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers);},prepareElement:function(element){this.reset();this.toHide=this.errorsFor(element);},check:function(element){element=this.clean(element);if(this.checkable(element)){element=this.findByName(element.name)[0];}
var rules=$(element).rules();var dependencyMismatch=false;for(method in rules){var rule={method:method,parameters:rules[method]};try{var result=$.validator.methods[method].call(this,element.value.replace(/\r/g,""),element,rule.parameters);if(result=="dependency-mismatch"){dependencyMismatch=true;continue;}
dependencyMismatch=false;if(result=="pending"){this.toHide=this.toHide.not(this.errorsFor(element));return;}
if(!result){this.formatAndAdd(element,rule);return false;}}catch(e){this.settings.debug&&window.console&&console.log("exception occured when checking element "+element.id
+", check the '"+rule.method+"' method");throw e;}}
if(dependencyMismatch)
return;if(this.objectLength(rules))
this.successList.push(element);return true;},customMetaMessage:function(element,method){if(!$.metadata)
return;var meta=this.settings.meta?$(element).metadata()[this.settings.meta]:$(element).metadata();return meta&&meta.messages&&meta.messages[method];},customMessage:function(name,method){var m=this.settings.messages[name];return m&&(m.constructor==String?m:m[method]);},findDefined:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==undefined)
return arguments[i];}
return undefined;},defaultMessage:function(element,method){return this.findDefined(this.customMessage(element.name,method),this.customMetaMessage(element,method),!this.settings.ignoreTitle&&element.title||undefined,$.validator.messages[method],"<strong>Warning: No message defined for "+element.name+"</strong>");},formatAndAdd:function(element,rule){var message=this.defaultMessage(element,rule.method);if(typeof message=="function")
message=message.call(this,rule.parameters,element);this.errorList.push({message:message,element:element});this.errorMap[element.name]=message;this.submitted[element.name]=message;},addWrapper:function(toToggle){if(this.settings.wrapper)
toToggle=toToggle.add(toToggle.parent(this.settings.wrapper));return toToggle;},defaultShowErrors:function(){for(var i=0;this.errorList[i];i++){var error=this.errorList[i];this.settings.highlight&&this.settings.highlight.call(this,error.element,this.settings.errorClass,this.settings.validClass);this.showLabel(error.element,error.message);}
if(this.errorList.length){this.toShow=this.toShow.add(this.containers);}
if(this.settings.success){for(var i=0;this.successList[i];i++){this.showLabel(this.successList[i]);}}
if(this.settings.unhighlight){for(var i=0,elements=this.validElements();elements[i];i++){this.settings.unhighlight.call(this,elements[i],this.settings.errorClass,this.settings.validClass);}}
this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show();},validElements:function(){return this.currentElements.not(this.invalidElements());},invalidElements:function(){return $(this.errorList).map(function(){return this.element;});},showLabel:function(element,message){var label=this.errorsFor(element);if(label.length){label.removeClass().addClass(this.settings.errorClass);label.attr("generated")&&label.html(message);}else{label=$("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(element),generated:true}).addClass(this.settings.errorClass).html(message||"");if(this.settings.wrapper){label=label.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();}
if(!this.labelContainer.append(label).length)
this.settings.errorPlacement?this.settings.errorPlacement(label,$(element)):label.insertAfter(element);}
if(!message&&this.settings.success){label.text("");typeof this.settings.success=="string"?label.addClass(this.settings.success):this.settings.success(label);}
this.toShow=this.toShow.add(label);},errorsFor:function(element){return this.errors().filter("[for='"+this.idOrName(element)+"']");},idOrName:function(element){return this.groups[element.name]||(this.checkable(element)?element.name:element.id||element.name);},checkable:function(element){return/radio|checkbox/i.test(element.type);},autocompleted:function(element){if($(element).get(0).autocompleter&&$($(element).get(0).autocompleter.results).is(":visible"))return true;return false;},findByName:function(name){var form=this.currentForm;return $(document.getElementsByName(name)).map(function(index,element){return element.form==form&&element.name==name&&element||null;});},getLength:function(value,element){switch(element.nodeName.toLowerCase()){case'select':return $("option:selected",element).length;case'input':if(this.checkable(element))
return this.findByName(element.name).filter(':checked').length;}
return value.length;},depend:function(param,element){return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true;},dependTypes:{"boolean":function(param,element){return param;},"string":function(param,element){return!!$(param,element.form).length;},"function":function(param,element){return param(element);}},optional:function(element){return!$.validator.methods.required.call(this,$.trim(element.value),element)&&"dependency-mismatch";},startRequest:function(element){if(!this.pending[element.name]){this.pendingRequest++;this.pending[element.name]=true;}},stopRequest:function(element,valid){this.pendingRequest--;if(this.pendingRequest<0)
this.pendingRequest=0;delete this.pending[element.name];if(valid&&this.pendingRequest==0&&this.formSubmitted&&this.form()){$(this.currentForm).submit();}else if(!valid&&this.pendingRequest==0&&this.formSubmitted){$(this.currentForm).triggerHandler("invalid-form",[this]);}},previousValue:function(element){return $.data(element,"previousValue")||$.data(element,"previousValue",previous={old:null,valid:true,message:this.defaultMessage(element,"remote")});}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(className,rules){className.constructor==String?this.classRuleSettings[className]=rules:$.extend(this.classRuleSettings,className);},classRules:function(element){var rules={};var classes=$(element).attr('class');classes&&$.each(classes.split(' '),function(){if(this in $.validator.classRuleSettings){$.extend(rules,$.validator.classRuleSettings[this]);}});return rules;},attributeRules:function(element){var rules={};var $element=$(element);for(method in $.validator.methods){var value=$element.attr(method);if(value){rules[method]=value;}}
if(rules.maxlength&&/-1|2147483647|524288/.test(rules.maxlength)){delete rules.maxlength;}
return rules;},metadataRules:function(element){if(!$.metadata)return{};var meta=$.data(element.form,'validator').settings.meta;return meta?$(element).metadata()[meta]:$(element).metadata();},staticRules:function(element){var rules={};var validator=$.data(element.form,'validator');if(validator.settings.rules){rules=$.validator.normalizeRule(validator.settings.rules[element.name])||{};}
return rules;},normalizeRules:function(rules,element){$.each(rules,function(prop,val){if(val===false){delete rules[prop];return;}
if(val.param||val.depends){var keepRule=true;switch(typeof val.depends){case"string":keepRule=!!$(val.depends,element.form).length;break;case"function":keepRule=val.depends.call(element,element);break;}
if(keepRule){rules[prop]=val.param!==undefined?val.param:true;}else{delete rules[prop];}}});$.each(rules,function(rule,parameter){rules[rule]=$.isFunction(parameter)?parameter(element):parameter;});$.each(['minlength','maxlength','min','max'],function(){if(rules[this]){rules[this]=Number(rules[this]);}});$.each(['rangelength','range'],function(){if(rules[this]){rules[this]=[Number(rules[this][0]),Number(rules[this][1])];}});if($.validator.autoCreateRanges){if(rules.min&&rules.max){rules.range=[rules.min,rules.max];delete rules.min;delete rules.max;}
if(rules.minlength&&rules.maxlength){rules.rangelength=[rules.minlength,rules.maxlength];delete rules.minlength;delete rules.maxlength;}}
if(rules.messages){delete rules.messages}
return rules;},normalizeRule:function(data){if(typeof data=="string"){var transformed={};$.each(data.split(/\s/),function(){transformed[this]=true;});data=transformed;}
return data;},addMethod:function(name,method,message){$.validator.methods[name]=method;$.validator.messages[name]=message||$.validator.messages[name];if(method.length<3){$.validator.addClassRules(name,$.validator.normalizeRule(name));}},methods:{required:function(value,element,param){if(!this.depend(param,element))
return"dependency-mismatch";switch(element.nodeName.toLowerCase()){case'select':var options=$("option:selected",element);return options.length>0&&(element.type=="select-multiple"||($.browser.msie&&!(options[0].attributes['value'].specified)?options[0].text:options[0].value).length>0);case'input':if(this.checkable(element))
return this.getLength(value,element)>0;default:return $.trim(value).length>0;}},remote:function(value,element,param){if(this.optional(element))
return"dependency-mismatch";var previous=this.previousValue(element);if(!this.settings.messages[element.name])
this.settings.messages[element.name]={};this.settings.messages[element.name].remote=typeof previous.message=="function"?previous.message(value):previous.message;param=typeof param=="string"&&{url:param}||param;if(previous.old!==value){previous.old=value;var validator=this;this.startRequest(element);var data={};data[element.name]=value;$.ajax($.extend(true,{url:param,mode:"abort",port:"validate"+element.name,dataType:"json",data:data,success:function(response){var valid=response===true;if(valid){var submitted=validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted=submitted;validator.successList.push(element);validator.showErrors();}else{var errors={};errors[element.name]=previous.message=response||validator.defaultMessage(element,"remote");validator.showErrors(errors);}
previous.valid=valid;validator.stopRequest(element,valid);}},param));return"pending";}else if(this.pending[element.name]){return"pending";}
return previous.valid;},minlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)>=param;},maxlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)<=param;},rangelength:function(value,element,param){var length=this.getLength($.trim(value),element);return this.optional(element)||(length>=param[0]&&length<=param[1]);},min:function(value,element,param){return this.optional(element)||value>=param;},max:function(value,element,param){return this.optional(element)||value<=param;},range:function(value,element,param){return this.optional(element)||(value>=param[0]&&value<=param[1]);},email:function(value,element){return this.optional(element)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);},url:function(value,element){return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);},date:function(value,element){return this.optional(element)||!/Invalid|NaN/.test(new Date(value));},dateISO:function(value,element){return this.optional(element)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);},dateDE:function(value,element){return this.optional(element)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);},number:function(value,element){return this.optional(element)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);},numberDE:function(value,element){return this.optional(element)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);},digits:function(value,element){return this.optional(element)||/^\d+$/.test(value);},creditcard:function(value,element){if(this.optional(element))
return"dependency-mismatch";if(/[^0-9-]+/.test(value))
return false;var nCheck=0,nDigit=0,bEven=false;value=value.replace(/\D/g,"");for(n=value.length-1;n>=0;n--){var cDigit=value.charAt(n);var nDigit=parseInt(cDigit,10);if(bEven){if((nDigit*=2)>9)
nDigit-=9;}
nCheck+=nDigit;bEven=!bEven;}
return(nCheck%10)==0;},accept:function(value,element,param){param=typeof param=="string"?param.replace(/,/g,'|'):"png|jpe?g|gif";return this.optional(element)||value.match(new RegExp(".("+param+")$","i"));},equalTo:function(value,element,param){return value==$(param).val();}}});$.format=$.validator.format;})(jQuery);;(function($){var ajax=$.ajax;var pendingRequests={};$.ajax=function(settings){settings=$.extend(settings,$.extend({},$.ajaxSettings,settings));var port=settings.port;if(settings.mode=="abort"){if(pendingRequests[port]){pendingRequests[port].abort();}
return(pendingRequests[port]=ajax.apply(this,arguments));}
return ajax.apply(this,arguments);};})(jQuery);;(function($){$.each({focus:'focusin',blur:'focusout'},function(original,fix){$.event.special[fix]={setup:function(){if($.browser.msie)return false;this.addEventListener(original,$.event.special[fix].handler,true);},teardown:function(){if($.browser.msie)return false;this.removeEventListener(original,$.event.special[fix].handler,true);},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments);}};});$.extend($.fn,{delegate:function(type,delegate,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments);}});},triggerEvent:function(type,target){return this.triggerHandler(type,[$.event.fix({type:type,target:target})]);}})})(jQuery);autocomplete_email_domain({emailFieldId:'email',validate:true});var email_errors={'-1':'This email is registered.<a href="javascript:$(\'#hidemail\').val($(\'#email\').val());$(\'form:first\').submit();"  style="color: rgb(153, 0, 0);">Click here</a> to recover the password.','-2':'Your email address is incorrect.','-3':'This email address cannot be used. Please provide another.','-4':'You have entered an invalid email address.','-5':'Please enter a email address.','-6':'This email is registered. Provide another valid email address.','-7':'This email is registered. <a href="/recovery_profile.php">RECOVER your profile</a> or <a href="/login.php">Login now</a>.','-8':'This email is registered. <a href="/login.php">Login now</a> or <a href="/resend_email.php">Click&nbsp;here</a> to resend your confirmation email.','-9':'This email is registered. Provide another valid email address.'}
var validate_rules={frmGender1:{required:true,number:true},password:{required:true,minlength:6,validate_password:true},screenname:{required:true,minlength:3,validate_screenname:true,is_screenname:{url:"check_signup.php",data:{},options:{}}},fname:{required:true,minlength:3,validate_fname:true},lname:{required:true,minlength:3,validate_lname:true},frmEmail:{required:true,validate_email:{url:"check_signup.php",data:{use_funnel:1},options:{},error_messages:email_errors}},frmYear:{required:true,number:true,validate_birthday:true},frmLooking:{required:true,number:true}};var validate_messages={frmGender1:{required:"Please select who you are.",number:"Please select a valid option."},password:{required:"Please provide a password.",minlength:"Please enter 6 or more characters.",validate_password:"Your password should consist of a-z&sbquo; A-Z&sbquo; 0-9&sbquo; -&sbquo; _ and no spaces!"},screenname:{required:"Please provide a screenname.",minlength:"Your screenname should be at least 3 characters long, and not longer than 20.",validate_screenname:"Your screenname should consist of a-z&sbquo; A-Z&sbquo; 0-9&sbquo; -&sbquo; _ and no spaces!"},fname:{required:"Please provide a first name.",minlength:"Your first name should be at least 3 characters long, and not longer than 20.",validate_fname:"Your first name should consist of a-z&sbquo; A-Z&sbquo; 0-9&sbquo; -&sbquo; _ and no spaces!"},lname:{required:"Please provide a surname.",minlength:"Your surname should be at least 3 characters long, and not longer than 20.",validate_lname:"Your surname should consist of a-z&sbquo; A-Z&sbquo; 0-9&sbquo; -&sbquo; _ and no spaces!"},frmEmail:{required:"Please enter a valid email address.",validate_email:"5"},location:"Please provide your city or postcode to find the nearby matches easily.",frmYear:{required:"Please select a valid age range.",number:"Please select a valid option.",validate_birthday:"Access is restricted to people under 18!"},frmLooking:{required:"Please select whom you are looking for.",number:"Please select a valid option."}};function errorPlacement(error,element){error.appendTo(element.parents(".all_field_box").children(".error_txt_box"));}
function highlightElement(element,errorClass){$(element).parents(".all_field_box").children("#valid_icon").removeClass("valid").addClass("invalid");}
function unhighlightElement(element,errorClass){$(element).parents(".all_field_box").children("#valid_icon").removeClass("invalid");}
function onSuccessValidate(label){label.parents(".all_field_box").children("#valid_icon").addClass("valid");label.remove();}
$.validator.addMethod("validate_password",function(value,element,param){var reg='^([a-zA-Z0-9_/-])+$';return this.optional(element)||value.match(reg);});$.validator.addMethod("validate_screenname",function(value,element,param){var reg='^([a-zA-Z0-9_/-])+$';return this.optional(element)||value.match(reg);});$.validator.addMethod("validate_lname",function(value,element,param){if($("#screenname").parents(".all_field_box").children("#valid_icon").is(".invalid"))
bind_screenname_variant();var reg='^([a-zA-Z0-9_/-])+$';return this.optional(element)||value.match(reg);});$.validator.addMethod("validate_fname",function(value,element,param){if($("#screenname").parents(".all_field_box").children("#valid_icon").is(".invalid"))
bind_screenname_variant();var reg='^([a-zA-Z0-9_/-])+$';return this.optional(element)||value.match(reg);});$.validator.addMethod("validate_birthday",function(value,element,params){if(this.optional(element))
return"dependency-mismatch";var selectDate=$("select[name='frmMonth']").val()+'/'+$("select[name='frmDay']").val()+'/'+$("select[name='frmYear']").val()+" 00:00:00";var birthday=new Date(selectDate);var today=new Date();today.setHours(0,0,0);var one_year=1000*60*60*24*365.25;var diff=(today.getTime()-birthday.getTime())/one_year;if(diff>=17.997)
return true;else
return false;});$.validator.addMethod("is_screenname",function(value,element,params){if(this.optional(element))
return"dependency-mismatch";var previous=this.previousValue(element);if(!this.settings.messages[element.name])
this.settings.messages[element.name]={};this.settings.messages[element.name].is_screenname=typeof previous.message=="function"?previous.message(value):previous.message;var validator=this;if(previous.old!==value){previous.old=value;this.startRequest(element);var data={};data[element.name]=value;$.ajax($.extend(true,{url:params.url,data:data,beforeSend:function(){$(element).parents(".all_field_box").children("#valid_icon").removeClass().addClass("ajax_request");},success:function(response){$(element).parents(".all_field_box").children("#valid_icon").removeClass();var valid=response==='unique';if(valid){var submitted=validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted=submitted;validator.successList.push(element);validator.showErrors();}else{var errors={};if(this.errorMap)
{for(name in this.errorMap)
{errors[name]=this.errorMap[name];}}
var screens=response.split(',');if(value.length>=18)
response='This screenname has already been taken.';else
response='This screenname has already been taken. Type a similar one,'+screens[1]+','+screens[2];errors[element.name]=previous.message=response||validator.defaultMessage(element,"validate_screenname");validator.showErrors(errors);bind_screenname_variant(validator);}
previous.valid=valid;validator.stopRequest(element,valid);}},params.options));return"pending";}
else
{if(this.pending[element.name]){return"pending";}
else
{if(!previous.valid)
{var errors={};if(this.errorMap)
{for(name in this.errorMap)
{errors[name]=this.errorMap[name];}}
errors[element.name]=this.settings.messages[element.name].is_screenname;validator.showErrors(errors);bind_screenname_variant(validator);}}}
return previous.valid;});$.validator.addMethod("validate_email",function(value,element,params){if(this.optional(element))
return"dependency-mismatch";if($("#screenname").parents(".all_field_box").children("#valid_icon").is(".invalid"))
bind_screenname_variant();var previous=this.previousValue(element);if(!this.settings.messages[element.name])
this.settings.messages[element.name]={};this.settings.messages[element.name].validate_email=typeof previous.message=="function"?previous.message(value):previous.message;if(previous.old!==value){previous.old=value;var validator=this;this.startRequest(element);var data={};data[element.name]=value;if($('input[name="engine"]').val()!=null)data['page']=$('input[name="engine"]').val();$.extend(data,params.data);$.ajax($.extend(true,{url:params.url,data:data,beforeSend:function(){$(element).parents(".all_field_box").children("#valid_icon").removeClass().addClass("ajax_request");},success:function(response){$(element).parents(".all_field_box").children("#valid_icon").removeClass();var valid=response==='unique';if(valid){var submitted=validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted=submitted;validator.successList.push(element);validator.showErrors();}else{var errors={};if(this.errorMap)
{for(name in this.errorMap)
{errors[name]=this.errorMap[name];}}
errors[element.name]=previous.message=params.error_messages[response]||validator.defaultMessage(element,"validate_email");validator.showErrors(errors);}
previous.valid=valid;validator.stopRequest(element,valid);}},params.options));return"pending";}else if(this.pending[element.name]){return"pending";}
return previous.valid;});function bind_screenname_variant()
{$("a.screenname_variant").click(function(element){$('#screenname').attr('value',$(this).html()).trigger('blur');$(this).parents(".error_txt_box").empty().parents(".all_field_box").children("#valid_icon").removeClass("invalid").addClass("valid");});}
$(function(){$('#reg-form').submit(function(){if($("#screenname").parents(".all_field_box").children("#valid_icon").is(".invalid"))
bind_screenname_variant();});$('#screenname').blur(function(){if($("#screenname").parents(".all_field_box").children("#valid_icon").is(".invalid"))
bind_screenname_variant();});$("select[name='frmMonth'], select[name='frmDay']").change(function(){document.getElementById('frmYear').focus();document.getElementById('frmYear').blur();});});