/*****************************************************../../../plugins/base/SignupForm/js/cmxforms.js../../../plugins/base/SignupForm/js/signup_v02.js../../../plugins/base/SignupForm/js/jquery.blockui.js../../../plugins/base/SignupForm/js/jquery.autocomplete.min.js*****************************************************//****************../../../plugins/base/SignupForm/js/cmxforms.js****************/
$(document).ready(function()
{if(typeof(js_validation)!='undefined')
{$("#submit_form").click(validateForm);$("input#displayname").blur(checkDisplayNameNoAjax);$("input#email").blur(checkEmailNoAjax);$("input#password").blur(checkPasswordNew);}
else
{$("input#email").blur(checkEmail);$("input#display_name").blur(checkDisplayName);$("input#confirm_email").blur(checkConfirmEmail);$("input#password").blur(checkPassword);$('#btn_display_name_check_db').click(checkDisplayName);}
if(typeof($("#displayname"))!='undefined')
{$("#displayname").focus();}});function checkDisplayName(){var illegalChars=/\W/;var message="";var displayname=$('input#display_name').val();var displayname_length=$('input#display_name').val().length;$("#form_container .refresher").addClass("active");setTimeout('$("#form_container .refresher").removeClass("active")',800);if((displayname_length<6)||(displayname_length>20))
{var message=checkDisplayName_toolong;$("#displayname_validate").html(message);$("#displayname_validate").addClass("error");return false;}
else if(illegalChars.test(displayname))
{var message=checkDisplayName_illegal;$("#displayname_validate").html(message);$("#displayname_validate").addClass("error");return false;}
else
{$.get('?guimode=ajax&plugin=SignupForm&action=valid-form&task=checkDisplayName&display_name='+displayname,function(txt){if(txt=="error")
{var message=checkDisplayName_alreadyExist;$("#displayname_validate").html(message);$("#displayname_validate").addClass("error");return false;}
else
{var message=checkDisplayName_available;$("#displayname_validate").html(message);$("#displayname_validate").removeClass("error");}});}
return true;}
function checkEmail(){var email=$('#email').val();var confirm_email=$('#confirm_email').val();var email_length=$('#email').val().length;var emailFilter=/^.+@.+\..{2,5}$/;var valid_email=true;$("#email_validate").html('');$("#email_validate").addClass("error");if(email_length==0)
{var message=checkEmail_enterYourEmail;$("#email_validate").html(message);$("#email_validate").addClass("error");return false;}
else if(!emailFilter.test(email))
{var message=checkEmail_notValid;$("#email_validate").html(message);$("#email_validate").addClass("error");return false;}
else
{$.get('?guimode=ajax&plugin=SignupForm&action=valid-form&task=checkEmail&email='+email,function(txt)
{if(txt!='')
{$("#email_validate").html(txt);$("#email_validate").addClass("error");return false;}
else
{if(email.match('aol.com')!=null)
{var message=checkEmail_dontUseAol;$("#email_validate").html(message);$("#email_validate").addClass("error");}
else
{var message=checkEmail_available;$("#email_validate").html(message);$("#email_validate").addClass("error");}}});}
return true;}
function checkConfirmEmail()
{var email=$('#email').val();var confirm_email=$('#confirm_email').val();if(email!=confirm_email)
{var message=checkEmail_doNotMatch;$("#confirm_email_validate").html(message);$("#confirm_email_validate").addClass("error");return false;}
else
{$("#confirm_email_validate").html('');}
return true;}
function checkPassword(){var password=$('input#password').val();var password_length=$('input#password').val().length;var illegalChars=/\W/;if(password_length==0)
{var message=checkPassword_enterYourPassword;$('#password_validate').html(message);$("#password_validate").addClass("error");return false;}
else if((password_length<6)||(password_length>16))
{var message=checkPassword_shouldBeBetween;$('#password_validate').html(message);$("#password_validate").addClass("error");return false;}
else if(illegalChars.test(password))
{var message=checkPassword_notValid;$('#password_validate').html(message);$("#password_validate").addClass("error");return false;}
else
{var message="";$('#password_validate').html(message);}
return true;}
function checkDisplayNameNoAjax(){var illegalChars=/\W/;var message="";var displayname=$('input#displayname').val();var displayname_length=$('input#displayname').val().length;if((displayname_length<6)||(displayname_length>20))
{$("#displayname_validate").addClass("error");$("#displayname_validate .text").html(checkDisplayName_toolong);return false;}
else if(illegalChars.test(displayname))
{$("#displayname_validate").addClass("error");$("#displayname_validate .text").html(checkDisplayName_illegal);return false;}
return true;}
function checkEmailNoAjax(){var email=$('#email').val();var email_length=$('#email').val().length;var emailFilter=/^.+@.+\..{2,5}$/;if(email_length==0)
{$("#email_validate").addClass("error");$("#email_validate .text").html(checkEmail_enterYourEmail);return false;}
else if(!emailFilter.test(email))
{$("#email_validate").addClass("error");$("#email_validate .text").html(checkEmail_notValid);return false;}
return true;}
function checkTheseBoxes(box_name,error_message){var checked=false;$("input[name="+box_name+"\[\]][checked]").each(function(){checked=true;});if(checked==false){$("#"+box_name+"_validate").addClass("error");$("#"+box_name+"_validate .text").html(error_message);return false;}
return checked;}
function checkLocation(){if($("#country").val()==""||typeof($("#country").val())=="undefined")
{$("#country_validate").addClass("error");$("#country_validate .text").html(checkCountry);return false;}
if($("#country").val()=="CA"&&($("#search-province").val()==""||typeof($("#search-province").val())=="undefined"))
{$("#province_validate").addClass("error");$("#province_validate .text").html(checkProvince);return false;}
if($("#country").val()=="US"&&($("#search-state").val()==""||typeof($("#search-state").val())=="undefined"))
{$("#province_validate").addClass("error");$("#province_validate .text").html(checkState);return false;}
if($("#locationId").val()==""||typeof($("#locationId").val())=="undefined")
{$("#locationId_validate").addClass("error");$("#locationId_validate .text").html(checkLocationId);return false;}
return true;}
function checkPasswordNew(){var password=$('input#password').val();var password_length=$('input#password').val().length;var illegalChars=/\W/;if(password_length==0)
{$("#password_validate").addClass("error");$('#password_validate .text').html(checkPassword_enterYourPassword);return false;}
else if((password_length<6)||(password_length>16))
{$("#password_validate").addClass("error");$('#password_validate .text').html(checkPassword_shouldBeBetween);return false;}
else if(illegalChars.test(password))
{$("#password_validate").addClass("error");$('#password_validate .text').html(checkPassword_notValid);return false;}
return true;}
function validateForm(ev)
{$("#submit_form").attr("disabled",true);var buttonInitialValue=$("#submit_form").val();if(ev!=null)
ev.preventDefault();$("div.message .text").html("");$("div.message").removeClass("error");if(checkDisplayNameNoAjax()&&checkTheseBoxes("seeking",checkSeeking)&&checkTheseBoxes("interested_in",checkInterested)&&checkLocation()&&checkEmailNoAjax()&&checkPasswordNew())
{$("#submit_form").val(strPleaseWait);$.post("?action=valid-form&guimode=ajax&plugin=SignupForm&task=checkAll",$("#signupForm").serialize(),function(json)
{if(json.valid==true)
{$("#signupForm").submit();return true;}
$("#submit_form").attr("disabled",false);$("#submit_form").val(buttonInitialValue);if(json.email)
{$("#email_validate").addClass("error");$("#email_validate .text").html(json.email);}
if(json.displayname)
{$("#displayname_validate").addClass("error");$("#displayname_validate .text").html(json.displayname);}
if(json.failed)
{$("#failed_validate").addClass("active");$("#failed_validate .text").html(json.failed);}},'json');}
else
{$("#submit_form").attr("disabled",false);$("#submit_form").val(buttonInitialValue);return false;}}/****************../../../plugins/base/SignupForm/js/signup_v02.js****************/
$(document).ready(function(){lunchCityAutocomplete();$("a.clear-city").click(removeCity);$("#country").change(toggleStateOrProvince);$("#country, #search-province, #search-state").change(changeSearchLocation);$("#search-city").result(changeCity);$("form[name='signupform']").submit(function(){$("input[name='Signup']").parent().append("<strong style=\'color:#BD1A26\';>Loading...</strong>");$("input[name='Signup']").remove();});$(".close_terms").click(closeTerms);$("#gender").change(toggleSeeking);$(".show_terms").click(showTerms);});function removeCity(){$('var.choosed_city').html("");$('#locationId, #search-city, #city').val("");$("a.clear-city").hide();showCitySearch();return false;}
function showCitySearch(){$("#search-city").show();$("#search-city").focus();return false;}
function toggleStateOrProvince(){$(".search-province-zone, .search-state-zone").hide();if($(this).val()=="US")$(".search-state-zone").show();if($(this).val()=="CA")$(".search-province-zone").show();$("#search-state, #search-province").val('');$("#country").val($(this).find("option:selected").html());removeCity();}
function lunchCityAutocomplete(){$("#search-city").autocomplete(".",{width:250,matchContains:true,minChars:1,cacheLength:10,delay:100,max:500,scroll:true,scrollHeight:100,extraParams:{action:'autocomplete',guimode:'ajax',task:'listCities',countryCode:$('#country').val(),state:$('#search-state').val(),province:$('#search-province').val()},formatResult:function(row){if(row[0]=='You need to select a country.')
{return' ';}
else
{var item=row[0];if(item.search(",")>0)
{var city=item.split(",");item=city[0];}
return item;}}});return false;}
function changeCity(event,data,formatted){if(data.length>=2){$('#locationId').val(data[1]);$('#city').val(data[0]);$('var.choosed_city').html(data[0]);$("a.clear-city").show();$("#search-city").hide();changeSearchLocation();}
$(this).val("");return false;}
function changeSearchLocation(){var currentChange=$(this).attr("id");if(currentChange=='country'||currentChange=='search-state'||currentChange=='search-province'){removeCity();$("#search-city").flushCache();$("#search-city").setOptions({extraParams:{action:'autocomplete',guimode:'ajax',task:'listCities',countryCode:$('#country').val(),state:$('#search-state').val(),province:$('#search-province').val()}});}}
function refreshCaptcha(){if($)
{thesrc=$("#impng").attr("src");$("#impng").attr("src",thesrc+"?"+Math.round(Math.random()*100000));}else{alert("Sorry, cannot autoreload image\n");}}
function showTerms(ev){if(ev!=null)
ev.preventDefault();$(".templates").hide();var template=$(this).attr("alt");if($("#tos_popup").is('*')){if(template=="privacy")
{$(".privacy_tpl").show();}
else
{$(".tos_tpl").show();}
$('#tos_popup').fadeIn();}
else
{if(template=="privacy")
{window.location="/terms";}
else
{window.location="/tos";}}}
function closeTerms(){$('#tos_popup').hide();}
function toggleSeeking(){if($(".seeking_container")&&$(".seeking_container").css("display")=="none")
{if($("#gender").val()=="m")
{$(".seeking_container input:checkbox[value='f']").attr('checked',true);$(".seeking_container input:checkbox[value='m']").attr('checked',false);$(".seeking_container input:checkbox[value='c']").attr('checked',true);$(".seeking_container input:checkbox[value='t']").attr('checked',false);}
else if($("#gender").val()=="f")
{$(".seeking_container input:checkbox[value='f']").attr('checked',true);$(".seeking_container input:checkbox[value='m']").attr('checked',true);$(".seeking_container input:checkbox[value='c']").attr('checked',true);$(".seeking_container input:checkbox[value='t']").attr('checked',true);}
else if($("#gender").val()=="c")
{$(".seeking_container input:checkbox[value='f']").attr('checked',true);$(".seeking_container input:checkbox[value='m']").attr('checked',false);$(".seeking_container input:checkbox[value='c']").attr('checked',true);$(".seeking_container input:checkbox[value='t']").attr('checked',true);}
else if($("#gender").val()=="t")
{$(".seeking_container input:checkbox[value='f']").attr('checked',true);$(".seeking_container input:checkbox[value='m']").attr('checked',true);$(".seeking_container input:checkbox[value='c']").attr('checked',true);$(".seeking_container input:checkbox[value='t']").attr('checked',true);}}}/****************../../../plugins/base/SignupForm/js/jquery.blockui.js****************/
(function(jQuery){if(/1\.(0|1|2)\.(0|1|2)/.test(jQuery.fn.jquery)||/^1.1/.test(jQuery.fn.jquery)){alert('blockUI requires jQuery v1.2.3 or later!  You are using v'+jQuery.fn.jquery);return;}
jQuery.blockUI=function(opts){install(window,opts);};jQuery.unblockUI=function(opts){remove(window,opts);};jQuery.fn.block=function(opts){return this.each(function(){if(jQuery.css(this,'position')=='static')
this.style.position='relative';if(jQuery.browser.msie)
this.style.zoom=1;install(this,opts);});};jQuery.fn.unblock=function(opts){return this.each(function(){remove(this,opts);});};jQuery.blockUI.version=2.07;jQuery.blockUI.defaults={message:'<h1>Please wait...</h1>',css:{padding:0,margin:0,width:'30%',top:'40%',left:'35%',textAlign:'center',color:'#000',border:'3px solid #aaa',backgroundColor:'#fff'},overlayCSS:{backgroundColor:'#000',opacity:'0.6'},baseZ:1000,centerX:true,centerY:true,allowBodyStretch:true,constrainTabKey:true,fadeOut:400,focusInput:true,applyPlatformOpacityRules:true,onUnblock:null};var ie6=jQuery.browser.msie&&/MSIE 6.0/.test(navigator.userAgent);var pageBlock=null;var pageBlockEls=[];function install(el,opts){var full=(el==window);var msg=opts&&opts.message!==undefined?opts.message:undefined;opts=jQuery.extend({},jQuery.blockUI.defaults,opts||{});opts.overlayCSS=jQuery.extend({},jQuery.blockUI.defaults.overlayCSS,opts.overlayCSS||{});var css=jQuery.extend({},jQuery.blockUI.defaults.css,opts.css||{});msg=msg===undefined?opts.message:msg;if(full&&pageBlock)
remove(window,{fadeOut:0});if(msg&&typeof msg!='string'&&(msg.parentNode||msg.jquery)){var node=msg.jquery?msg[0]:msg;var data={};jQuery(el).data('blockUI.history',data);data.el=node;data.parent=node.parentNode;data.display=node.style.display;data.position=node.style.position;data.parent.removeChild(node);}
var z=opts.baseZ;var lyr1=(jQuery.browser.msie)?jQuery('<iframe class="blockUI" style="z-index:'+z+++';border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>'):jQuery('<div class="blockUI" style="display:none"></div>');var lyr2=jQuery('<div class="blockUI" style="z-index:'+z+++';border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');var lyr3=full?jQuery('<div class="blockUI blockMsg blockPage" style="z-index:'+z+';position:fixed"></div>'):jQuery('<div class="blockUI blockMsg blockElement" style="z-index:'+z+';display:none;position:absolute"></div>');if(msg)
lyr3.css(css);if(!opts.applyPlatformOpacityRules||!(jQuery.browser.mozilla&&/Linux/.test(navigator.platform)))
lyr2.css(opts.overlayCSS);lyr2.css('position',full?'fixed':'absolute');if(jQuery.browser.msie)
lyr1.css('opacity','0.0');jQuery([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full?'body':el);var expr=jQuery.browser.msie&&(!jQuery.boxModel||jQuery('object,embed',full?null:el).length>0);if(ie6||expr){if(full&&opts.allowBodyStretch&&jQuery.boxModel)
jQuery('html,body').css('height','100%');if((ie6||!jQuery.boxModel)&&!full){var t=sz(el,'borderTopWidth'),l=sz(el,'borderLeftWidth');var fixT=t?'(0 - '+t+')':0;var fixL=l?'(0 - '+l+')':0;}
jQuery.each([lyr1,lyr2,lyr3],function(i,o){var s=o[0].style;s.position='absolute';if(i<2){full?s.setExpression('height','document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + "px"'):s.setExpression('height','this.parentNode.offsetHeight + "px"');full?s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):s.setExpression('width','this.parentNode.offsetWidth + "px"');if(fixL)s.setExpression('left',fixL);if(fixT)s.setExpression('top',fixT);}
else if(opts.centerY){if(full)s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');s.marginTop=0;}});}
lyr3.append(msg).show();if(msg&&(msg.jquery||msg.nodeType))
jQuery(msg).show();bind(1,el,opts);if(full){pageBlock=lyr3[0];pageBlockEls=jQuery(':input:enabled:visible',pageBlock);if(opts.focusInput)
setTimeout(focus,20);}
else
center(lyr3[0],opts.centerX,opts.centerY);};function remove(el,opts){var full=el==window;var data=jQuery(el).data('blockUI.history');opts=jQuery.extend(true,{},jQuery.blockUI.defaults,opts);bind(0,el,opts);var els=full?jQuery('body').children().filter('.blockUI'):jQuery('.blockUI',el);if(full)
pageBlock=pageBlockEls=null;if(opts.fadeOut){els.fadeOut(opts.fadeOut);setTimeout(function(){reset(els,data,opts,el);},opts.fadeOut);}
else
reset(els,data,opts,el);};function reset(els,data,opts,el){els.each(function(i,o){if(this.parentNode)
this.parentNode.removeChild(this);});if(data&&data.el){data.el.style.display=data.display;data.el.style.position=data.position;data.parent.appendChild(data.el);jQuery(data.el).removeData('blockUI.history');}
if(typeof opts.onUnblock=='function')
opts.onUnblock(el,opts);};function bind(b,el,opts){var full=el==window,jQueryel=jQuery(el);if(!b&&(full&&!pageBlock||!full&&!jQueryel.data('blockUI.isBlocked')))
return;if(!full)
jQueryel.data('blockUI.isBlocked',b);var events='mousedown mouseup keydown keypress click';b?jQuery(document).bind(events,opts,handler):jQuery(document).unbind(events,handler);};function handler(e){if(e.keyCode&&e.keyCode==9){if(pageBlock&&e.data.constrainTabKey){var els=pageBlockEls;var fwd=!e.shiftKey&&e.target==els[els.length-1];var back=e.shiftKey&&e.target==els[0];if(fwd||back){setTimeout(function(){focus(back)},10);return false;}}}
if(jQuery(e.target).parents('div.blockMsg').length>0)
return true;return jQuery(e.target).parents().children().filter('div.blockUI').length==0;};function focus(back){if(!pageBlockEls)
return;var e=pageBlockEls[back===true?pageBlockEls.length-1:0];};function center(el,x,y){var p=el.parentNode,s=el.style;var l=((p.offsetWidth-el.offsetWidth)/2)-sz(p,'borderLeftWidth');var t=((p.offsetHeight-el.offsetHeight)/2)-sz(p,'borderTopWidth');if(x)s.left=l>0?(l+'px'):'0';if(y)s.top=t>0?(t+'px'):'0';};function sz(el,p){return parseInt(jQuery.css(el,p))||0;};})(jQuery);/****************../../../plugins/base/SignupForm/js/jquery.autocomplete.min.js****************/
(function($){$.fn.extend({autocomplete:function(urlOrData,options){var isUrl=typeof urlOrData=="string";options=$.extend({},$.Autocompleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,delay:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?25:150},options);options.highlight=options.highlight||function(value){return value;};options.moreItems=options.moreItems||"";return this.each(function(){new $.Autocompleter(this,options);});},result:function(handler){return this.bind("result",handler);},search:function(handler){return this.trigger("search",[handler]);},flushCache:function(){return this.trigger("flushCache");},setOptions:function(options){return this.trigger("setOptions",[options]);},unautocomplete:function(){return this.trigger("unautocomplete");}});$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var previousValue="";var cache=$.Autocompleter.Cache(options);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:false};var select=$.Autocompleter.Select(options,input,selectCurrent,config);$input.keydown(function(event){lastKeyPressCode=event.keyCode;switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();}else{onChange(0,true);}break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();}else{onChange(0,true);}break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();}else{onChange(0,true);}break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();}else{onChange(0,true);}break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.RETURN:if(selectCurrent()){if(!options.multiple)$input.blur();event.preventDefault();}break;case KEY.ESC:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break;}}).keypress(function(){}).focus(function(){hasFocus++;}).blur(function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i<data.length;i++){if(data[i].result.toLowerCase()==q.toLowerCase()){result=data[i];break;}}}if(typeof fn=="function")fn(result);else $input.trigger("result",result&&[result.data,result.value]);}$.each(trimWords($input.val()),function(i,value){request(value,findValueCallback,findValueCallback);});}).bind("flushCache",function(){cache.flush();}).bind("setOptions",function(){$.extend(options,arguments[1]);if("data"in arguments[1])cache.populate();}).bind("unautocomplete",function(){select.unbind();$input.unbind();});function selectCurrent(){var selected=select.selected();if(!selected)return false;var v=selected.result;previousValue=v;if(options.multiple){var words=trimWords($input.val());if(words.length>1){v=words.slice(0,words.length-1).join(options.multipleSeparator)+options.multipleSeparator+v;}v+=options.multipleSeparator;}$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}var currentValue=$input.val();if(!skipPrevCheck&&currentValue==previousValue)return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value){return[""];}var words=value.split($.trim(options.multipleSeparator));var result=[];$.each(words,function(i,value){if($.trim(value))result[i]=$.trim(value);});return result;}function lastWord(value){if(!options.multiple)return value;var words=trimWords(value);return words[words.length-1];}function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=8){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$.Autocompleter.Selection(input,previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result)$input.val("");});}};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){row=row.split("|");parsed[parsed.length]={data:row,value:row[0],result:options.formatResult&&options.formatResult(row,row[0])||row[0]};}}return parsed;};function stopLoading(){$input.removeClass(options.loadingClass);};};$.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(row){return row[0];},moreItems:"",autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(value,term){return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");},scroll:true,scrollHeight:180,attachTo:'body'};$.Autocompleter.Cache=function(options){var data={};var length=0;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;};function add(q,value){if(length>options.cacheLength){flush();}if(!data[q]){length++;}data[q]=value;}function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i<ol;i++){var rawValue=options.data[i];rawValue=(typeof rawValue=="string")?[rawValue]:rawValue;var value=options.formatItem(rawValue,i+1,options.data.length);if(value===false)continue;var firstChar=value.charAt(0).toLowerCase();if(!stMatchSets[firstChar])stMatchSets[firstChar]=[];var row={value:value,data:rawValue,result:options.formatResult&&options.formatResult(rawValue)||value};stMatchSets[firstChar].push(row);if(nullData++<options.max){stMatchSets[""].push(row);}};$.each(stMatchSets,function(i,value){options.cacheLength++;add(i,value);});}setTimeout(populate,25);function flush(){data={};length=0;}return{flush:flush,add:add,populate:populate,load:function(q){if(!options.cacheLength||!length)return null;if(!options.url&&options.matchContains){var csub=[];for(var k in data){if(k.length>0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}return csub;}else
if(data[q]){return data[q];}else
if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list,moreItems;function init(){if(!needsInit)return;element=$("<div>").hide().addClass(options.resultsClass).css("position","absolute").appendTo(options.attachTo);list=$("<ul>").appendTo(element).attr('id','city_list').mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass().index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.moreItems.length>0)moreItems=$("<div>").addClass("ac_moreItems").css("display","none").html(options.moreItems).appendTo(element);if(options.width>0)element.css("width",options.width);needsInit=false;}function target(event){var element=event.target;while(element&&element.tagName!="LI")element=element.parentNode;if(!element)return[];return element;}function moveSelect(step){listItems.slice(active,active+1).removeClass();movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset<list.scrollTop()){list.scrollTop(offset);}}};function movePosition(step){active+=step;if(active<0){active=listItems.size()-1;}else if(active>=listItems.size()){active=0;}}function limitNumberOfItems(available){return options.max&&options.max<available?options.max:available;}function fillList(){list.empty();var max=limitNumberOfItems(data.length);for(var i=0;i<max;i++){if(!data[i])continue;var formatted=options.formatItem(data[i].data,i+1,max,data[i].value,term);if(formatted===false)continue;var li=$("<li>").html(options.highlight(formatted,term)).appendTo(list)[0];$.data(li,"ac_data",data[i]);}listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}if(options.moreItems.length>0&&!options.scroll)moreItems.css("display",(data.length>max)?"block":"none");list.bgiframe();}return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){return listItems&&$.data(listItems.filter("."+CLASSES.ACTIVE)[0],"ac_data");},unbind:function(){element&&element.remove();}};};$.Autocompleter.Selection=function(field,start,end){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();};})(jQuery);
