var size_li,allNeighborhoods=[],ajaxCalls=[],recentSearches=[],popularPlaces=[],noResults=[{value:"No Results"}],pageSize=parseInt($("#resultsPerPage").val()),ignoreLocation=!0;function updateRecentSearches(e){if(e){-1===recentSearches.findIndex(t=>t.value===e)&&(recentSearches.unshift({label:e,origin:"searches",value:e}),recentSearches.length>5&&recentSearches.pop(),Cookies.set("recentSearches",JSON.stringify(recentSearches)))}}$(function(){var e=Cookies.get("recentSearches");e&&(recentSearches=JSON.parse(e)).length>5&&(recentSearches=recentSearches.slice(0,5));var t,i=new URLSearchParams(window.location.search);t=""===i.toString()?Cookies.get("n"):i.get("n"),i.get("n")&&(ignoreLocation=!1),t?($("#tags").append("<div class='tag_list'><span>"+t+"</span><a href='javascript:' class='remove' title='"+t+"'>☓</a></div>"),Cookies.set("n",t)):Cookies.remove("n"),size_li=$("#loadlist .listing__item").length;var s=JSON.parse($("#neighborhoods").val()),n=s.map(e=>({value:e.name,label:e.name,origin:"places",location:e.location,coordinates:e.coordinates}));allNeighborhoods=allNeighborhoods.concat(n),$(".search__map").length>0&&updatePolygons(),popularPlaces=s.slice(0,10).map(e=>({value:e.name,label:e.name,origin:"popular-places"})),$.widget("ui.autocomplete",{version:"1.10.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:100,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,t,i,s=this.element[0].nodeName.toLowerCase(),n="textarea"===s,a="input"===s;this.isMultiLine=!!n||!a&&this.element.prop("isContentEditable"),this.valueMethod=this.element[n||a?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(s){if(this.element.prop("readOnly"))return e=!0,i=!0,void(t=!0);e=!1,i=!1,t=!1;var n=$.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:e=!0,this._move("previousPage",s);break;case n.PAGE_DOWN:e=!0,this._move("nextPage",s);break;case n.UP:e=!0,this._keyEvent("previous",s);break;case n.DOWN:e=!0,this._keyEvent("next",s);break;case n.ENTER:case n.NUMPAD_ENTER:this.menu.active&&(e=!0,s.preventDefault(),this.menu.select(s));break;case n.TAB:this.menu.active&&this.menu.select(s);break;case n.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(s),s.preventDefault());break;default:t=!0,this._searchTimeout(s)}},keypress:function(i){if(e)return e=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||i.preventDefault());if(!t){var s=$.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:this._move("previousPage",i);break;case s.PAGE_DOWN:this._move("nextPage",i);break;case s.UP:this._keyEvent("previous",i);break;case s.DOWN:this._keyEvent("next",i)}}},input:function(e){if(i)return i=!1,void e.preventDefault();this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(e),this._change(e))}}),this._initSource(),this.menu=$("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().data("ui-menu"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var t=this.menu.element[0];$(e.target).closest(".ui-menu-item").length||this._delay(function(){var e=this;this.document.one("mousedown",function(i){i.target===e.element[0]||i.target===t||$.contains(t,i.target)||e.close()})})},menufocus:function(e,t){if(this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){$(e.target).trigger(e.originalEvent)});var i=t.item.data("ui-autocomplete-item");!1!==this._trigger("focus",e,{item:i})?e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(i.value):this.liveRegion.text(i.value)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),this._trigger("select",e,{item:i}),this.term="",i&&"searches"===i.origin||this.close(e),this.selectedItem=i}}),this.liveRegion=$("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertBefore(this.element),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?$(e):this.document.find(e).eq(0)),e||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,t,i=this;$.isArray(this.options.source)?(e=this.options.source,this.source=function(t,i){i($.ui.autocomplete.filter(e,t.term))}):"string"==typeof this.options.source?(t=this.options.source,this.source=function(e,s){i.xhr&&i.xhr.abort(),i.xhr=$.ajax({url:t,data:e,dataType:"json",success:function(e){s(e)},error:function(){s([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):!1!==this._trigger("search",t)?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var e=++this.requestIndex;return $.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:$.map(e,function(e){return"string"==typeof e?{label:e,value:e}:$.extend({label:e.label||e.value,value:e.value||e.label},e)})},_suggest:function(e){var t=this.menu.element.empty();this._renderMenu(t,e),this.isNewMenu=!0,this.menu.refresh(),t.show(),this._resizeMenu(),t.position($.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,t){var i=this,s="";$.each(t,function(t,n){var a;n.origin!=s&&("popular-places"==n.origin&&e.append("<li class='ui-autocomplete-category ui-autocomplete-category--popular-places'>Popular Places</li>"),"searches"==n.origin&&e.append("<li class='ui-autocomplete-category ui-autocomplete-category--searches'>Recent Searches</li>"),"properties"==n.origin?e.append("<li class='ui-autocomplete-category ui-autocomplete-category--properties'>"+n.origin+"</li>"):"places"==n.origin&&e.append("<li class='ui-autocomplete-category ui-autocomplete-category--places'>"+n.origin+"</li>"),s=n.origin),a=i._renderItemData(e,n),n.origin&&(a.attr("aria-label",n.origin+" : "+n.label),a.addClass(n.origin))})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(e,t){var i=this.term.split(" ");return t.label=t.value,"properties"!=t.origin&&"places"!=t.origin||i.forEach(e=>{t.label=t.label.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+$.ui.autocomplete.escapeRegex(e)+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")}),"properties"==t.origin?$("<li>").append("<div class='property-listing'><img class='search-img "+t.blur+"' src='"+t.icon+"' /><div>"+t.label+"</div></div>").appendTo(e):$("<li>").append("<div class='property-listing'>"+t.label.replace(/ /g,"&nbsp;")+"</div>").appendTo(e)},_move:function(e,t){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this._value(this.term),void this.menu.blur()):void this.menu[e](t);this.search(null,t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(e,t),t.preventDefault())}}),$("#tag-input").autocomplete({source:function(e,t){var i,s,n=(i=e.term,s=i.toLowerCase(),s=s.replace(/[^A-Za-z0-9] -/g,"")).trim();if(n){$(".loader-block").show();var a=this.term.toLowerCase(),o=[];allNeighborhoods.forEach(e=>{((e,t)=>t.split(" ").every(t=>new RegExp(t,"i").test(e)))(e.value.toLowerCase(),a)&&o.push(e)}),t(o),ajaxCalls.push($.ajax({type:"GET",url:"/autocomplete/listings",data:{q:n},success:function(e){if(ajaxCalls.shift(),0===ajaxCalls.length&&($(".loader-block").hide(),updateRecentSearches(a)),0===e.length&&0===o.length)return t(noResults);t(o.concat(e))},error:function(e){ajaxCalls.shift(),0===ajaxCalls.length&&$(".loader-block").hide(),console.log(e)}}))}else t(recentSearches.concat(popularPlaces))},delay:600,select:function(e,t,i){if($(".loader-block").hide(),updateRecentSearches($("#tag-input").val()),$("#tag-input").val(""),console.log(t.item),t.item){if("searches"==t.item.origin)return $("#tag-input").val(t.item.value).change(),void $("#tag-input").autocomplete("search",t.item.value);if(("places"==t.item.origin||"popular-places"==t.item.origin)&&"/search"!==window.location.pathname){if($("#tag-input").val(t.item.value),$(".tag_list").find("span").text()===t.item.value||"No Results"===t.item.value||!t.item.value)return;$("#tags").empty().append("<div class='tag_list'><span>"+t.item.value+"</span><a href='javascript:' class='remove' title='"+t.item.value+"'>☓</a></div>");const e=$(".tag_list").find("span").text();return Cookies.set("n",e),window.location=`/search?n=${e}`}if("properties"==t.item.origin)return window.location=t.item.url;{if($(this).blur(),$("#tags").css("display","block"),$(".tag_list").find("span").text()===t.item.value)return void updatePolygons();if("No Results"===t.item.value||!t.item.value)return;$("#tags").empty().append("<div class='tag_list'><span>"+t.item.value+"</span><a href='javascript:' class='remove' title='"+t.item.value+"'>☓</a></div>");var s=0,n=$(".search-form__input").width();$(".tag_list").each(function(e){s+=parseInt($(this).width(),10)}),s>n-100&&$("#tags").css("flex-wrap","wrap");const e=$(".tag_list").find("span").text(),i=new URLSearchParams(window.location.search);i.set("n",e);const a=window.location.protocol+"//"+window.location.host+window.location.pathname+"?"+i.toString();window.history.pushState({path:a},"",a),Cookies.set("n",e),updatePolygons()}}else $(this).blur()}}).on("focus",function(){$(this).autocomplete("search"," ")}).on("keyup click",function(){""===$(this).val()&&($(".loader-block").hide(),$(this).autocomplete("search"," "))})});