function submitHomeSearch(n){var t=$("#home-search-bar-input").val().trim();if(t=="ny"||t=="nyc"||t=="newyorkcity"||t=="nyc, New York"||t=="New York City, New York"||t=="ny, New York"){window.location.href="/new-york-city";return}if(n){if(/[<>&']/g.test(n))return bootbox.alert("Please remove any of special characters below from location name and submit<br/>< > & '"),!1;Site.showLoader();Site.apiRequest(Site.apiBaseUrl.concat("Rental/AjaxLocationSubmit"),{Location:n},function(t){var i,u,r,f,o,e,s,h;if(!t){Site.hideLoader();return}if(i=t,i.ErrorMessage=="Invalid LocationName"||i.ErrorMessage=="LocationName Missing"||i.StateName==null||i.StateName=="")Site.hideLoader(),$("#home-search-bar-input").val("");else{if(u="",i.Url==="postalvalidlocation.aspx"?u=Site.rentalFilesLink("postalvalid",i.StateName,i.CityName,i.AreaName,i.TownName,i.ValidLocation,i.ZipCode):i.IsPostalValidLocaton&&i.StateName!=""?u=Site.rentalFilesLink("postal",i.StateName,i.CityName,i.AreaName,i.TownName,i.ValidLocation,i.ZipCode):i.IsValidLocaton?u=Site.rentalFilesLink("validlocation",i.StateName,i.CityName,i.AreaName,i.TownName,i.ValidLocation,i.ZipCode):(i.TownName==""&&(i.TownName=null),console.log(i.Template+" , "+i.StateName+" , "+i.CityName+" , "+i.AreaName+" , "+i.TownName+" , "+i.ValidLocation+" , "+i.ZipCode),u=Site.rentalFilesLink(i.Template,i.StateName,i.CityName,i.AreaName,i.TownName,i.ValidLocation,i.ZipCode)),r=Site.getCookie("recentsearch")||"",Site.isEmpty(r))Site.setCookie("recentsearch",30,n.trim().replace(/,/g,"_"));else if(r=r.replace(/_/g,","),r.indexOf(n)==-1){for(f=r.split("|"),n=n.trim(),o=0,e=0;e<=f.length-1;e++)s=Site.removeSpecialChars(f[e].trim()),h=Site.removeSpecialChars(n.trim()),s==h&&(o+=1);o<1&&(r=f.slice(0,10).join("|")+"|"+n,Site.setCookie("recentsearch",30,r.replace(/,/g,"_")))}window.dataLayer.push({event:"selectLocation",label:$("#home-search-bar-input").attr("data-label"),locationName:n});window.location.href=u.toLowerCase()}return!1},"POST",null)}}function roommatesSearch(){Site.ajaxDialog("/inner/searchroommates","Search for Tenants")}function submitRoommatesSearch(n){Site.showLoader();Site.apiRequest(Site.apiBaseUrl.concat("Rental/AjaxLocationSubmit"),{Location:n.trim()},function(t){var i="",r;return Site.isEmpty(t.CityName)||Site.isEmpty(t.StateName)?Site.isEmpty(t.CityName)&&!Site.isEmpty(t.StateName)&&(i=Site.tdSearchLink(t.StateName.toLowerCase(),t.CityName)):i=Site.tdSearchLink(t.StateName.toLowerCase(),t.CityName.toLowerCase()),i!=""?(r=$(".js-roommates-label").attr("data-label"),window.dataLayer.push({event:"selectLocation",label:r,locationName:n}),location.href=i.toLowerCase()):(Site.hideLoader(),Site.ajaxDialog("/inner/searchroommates","Search for Tenants")),!1},"POST",null)}function CheckIsValidPostalCode(n){return/^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/.test(n)||/^([A-z][0-9][A-z])\s*([0-9][A-z][0-9])$/.test(n)?!0:!1}+function(n){n.fn.autoComplete=function(t){var i=n.extend({},n.fn.autoComplete.defaults,t);return typeof t=="string"?(this.each(function(){var i=n(this);t=="destroy"&&(n(window).off("resize.autocomplete",i.updateSC),i.off("blur.autocomplete focus.autocomplete keydown.autocomplete keyup.autocomplete"),i.data("autocomplete")?i.attr("autocomplete",i.data("autocomplete")):i.removeAttr("autocomplete"),n(i.data("sc")).remove(),i.removeData("sc").removeData("autocomplete"))}),this):this.each(function(){function r(r){var f=t.val(),e,u;if(t.cache[f]=r,r.length&&f.length>=i.minChars){for(e="",u=0;u<r.length;u++)e+=i.renderItem(r[u],f);t.sc.html(e);t.updateSC(0);n(".autocomplete-suggestion",t.sc).first().addClass("selected")}else t.sc.children().remove()}var t=n(this);t.sc=n('<div class="autocomplete-suggestions '+i.menuClass+'"><\/div>');t.data("sc",t.sc).data("autocomplete",t.attr("autocomplete"));t.attr("autocomplete","off");t.cache={};t.last_val="";t.updateSC=function(i,r){if(!i&&(t.sc.show(),t.sc.maxHeight||(t.sc.maxHeight=parseInt(t.sc.css("max-height"))),t.sc.suggestionHeight||(t.sc.suggestionHeight=n(".autocomplete-suggestion",t.sc).first().outerHeight()),t.sc.suggestionHeight))if(r){var f=t.sc.scrollTop(),u=r.offset().top-t.sc.offset().top;u+t.sc.suggestionHeight-t.sc.maxHeight>0?t.sc.scrollTop(u+t.sc.suggestionHeight+f-t.sc.maxHeight):u<0&&t.sc.scrollTop(u+f)}else t.sc.scrollTop(0)};n(window).on("resize.autocomplete",t.updateSC);t.sc.appendTo(t.parent());t.sc.on("mouseenter",".autocomplete-suggestion",function(){n(".autocomplete-suggestion.selected").removeClass("selected");n(this).addClass("selected")});t.sc.on("mousedown click",".autocomplete-suggestion",function(r){var u=n(this),f=u.data("val");if(f||u.hasClass("autocomplete-suggestion")){t.val(f);i.onSelect(r,f,u);t.sc.hide()}return!1});t.on("blur.autocomplete",function(){try{over_sb=n(".autocomplete-suggestions:hover").length}catch(i){over_sb=0}over_sb?t.is(":focus")||setTimeout(function(){t.focus()},20):(t.last_val=t.val(),t.sc.hide(),setTimeout(function(){t.sc.hide()},350))});if(!i.minChars)t.on("focus.autocomplete",function(){t.last_val="\n";t.trigger("keyup.autocomplete")});t.on("keydown.autocomplete",function(r){var f,u;if((r.which==40||r.which==38)&&t.sc.html())return u=n(".autocomplete-suggestion.selected",t.sc),u.length?(f=r.which==40?u.next(".autocomplete-suggestion"):u.prev(".autocomplete-suggestion"),f.length?(u.removeClass("selected"),t.val(f.addClass("selected").data("val"))):(u.removeClass("selected"),t.val(t.last_val),f=0)):(f=r.which==40?n(".autocomplete-suggestion",t.sc).first():n(".autocomplete-suggestion",t.sc).last(),t.val(f.addClass("selected").data("val"))),t.updateSC(0,f),!1;if(r.which==27)t.val(t.last_val).sc.hide();else if(r.which==13||r.which==9){if(u=n(".autocomplete-suggestion.selected",t.sc),u.length&&t.sc.is(":visible"))i.onSelect(r,u.data("val"),u);else i.onSelect(r,"",null);setTimeout(function(){t.sc.hide()},20)}});t.on("keyup.autocomplete",function(u){if(!~n.inArray(u.which,[13,27,35,36,37,38,39,40])){var f=t.val();f.length>=i.minChars?f!=t.last_val&&(t.last_val=f,clearTimeout(t.timer),t.timer=setTimeout(function(){i.source(f,r)},i.delay)):(t.last_val=f,t.sc.hide())}})})};n.fn.autoComplete.defaults={source:0,minChars:3,delay:150,cache:1,menuClass:"",renderItem:function(n,t){t=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var i=new RegExp("("+t.split(" ").join("|")+")","gi");return'<div class="autocomplete-suggestion" data-val="'+n+'">'+n.replace(i,"<b>$1<\/b>")+"<\/div>"},onSelect:function(){}}}(jQuery);var textterm="";$("#home-search-bar-input").autoComplete({minChars:0,autoFocus:!0,source:function(n,t){var r,u,i,f;n.length>0?(r=n,u=r.replace("'",""),CheckIsValidPostalCode(n.trim())?t([]):Site.apiRequest("geodata/getajaxlocations",{term:u},function(i){textterm=n;i.push("Show more locations");t(i)})):(i=Site.getCookie("recentsearch"),i?(i=i.replace(/_/g,","),f=i.split("|").reverse(),t(f)):t([]))},onSelect:function(n,t){var i=$("#home-search-bar-input").val().trim();if(i=="newyorkcity"){window.location.href="/new-york-city";return}t=="Show more locations"?($("#home-search-bar-input").val(""),$("#showGeoPopup").modal("show")):submitHomeSearch(t)}}).keypress(function(n){var i,t,r;return window.event?i=window.event.keyCode:n&&(i=n.which),i=="13"?this.value!=""&&(t=this.value,t.indexOf("<",0)!=-1||t.indexOf(">",0)!=-1||t.indexOf("&lt",0)!=-1||t.indexOf("&gt",0)!=-1||t.indexOf("'",0)!=-1)?(BAlert("Please remove any of the special characters below from location and resubmit\n\n   <  >  '  &"),!1):(r=$(".autocomplete-suggestion.selected").attr("data-val"),r==undefined?submitHomeSearch(this.value):submitHomeSearch(r),!1):void 0});$("#home-search-bar-input-btn").on("click",function(){var n=$(".autocomplete-suggestion.selected").attr("data-val");if(n==undefined)if($("#home-search-bar-input").val())submitHomeSearch($("#home-search-bar-input").val());else return window.bootbox.alert({message:"please enter city, area or town",size:"small",animate:!1}),!1;else submitHomeSearch(n)});$("#navbar-roommates-search-input").autoComplete({minChars:0,autoFocus:!0,source:function(n,t){if(n.length>0){var i=n,r=i.replace("'","");Site.apiRequest("geodata/getajaxlocations",{term:r},function(n){n.push("Show more locations");t(n)})}},onSelect:function(n,t){t=="Show more locations"?Site.ajaxDialog("/inner/searchroommates","Search for Tenants"):submitRoommatesSearch(t)}})