{"version":3,"sources":["typeaheadComponent.js","jquery.price_format.1.8.min.js","jQuery.LazyLoad.js","homepage.js","priceGaEvents.js"],"names":["LocalStorageSuggestionsCacheManager","SearchSuggestion","a","this","id","name","type","marketId","marketName","latitude","longitude","city","state","cssClass","icon","HttpRequest","url","method","body","latest","dataHandler","responseHandler","dataAttributes","SearchSuggestionsCacheManager","call","AutocompleteSearchHttpRequest","useBaseUrl","document","baseURI","indexOf","location","protocol","replace","baseUrl","HttpClient","_xhr","XMLHttpRequest","httpRequest","SuggestionsEngine","b","c","_suggestionsEngineConfig","_httpClient","_suggestionsCacheManager","resetCache","removeAll","SearchSuggestionsEngine","SuggestionsComponent","targetInput","htmlElement","_suggestions","_initDomEvents","onSelect","SearchSuggestionsComponent","form","closest","list","querySelector","createRange","createContextualFragment","SuggestionsEngineConfig","caseSensitive","useCache","cacheExpire","_staleWhileRevalidate","Object","defineProperty","get","set","AutocompleteComponent","d","_observable","_searchField","field","_engine","_suggestionsComponent","_context","suggestions","getSelectedSuggestion","bind","add","_initEvents","SearchFieldObservable","_observers","_debounceTimer","_lastValue","value","SearchAutocompleteComponent","dependeciesRequested","includeCurrentLocation","hasAttribute","includeCurrentLocationIcon","includeHighlightInSuggestion","_currentLocationSuggestion","e","fn","priceFormat","t","extend","prefix","suffix","centsSeparator","thousandsSeparator","limit","centsLimit","clearPrefix","clearSufix","allowNegative","insertPlusSign","clearOnEmpty","each","m","n","is","val","html","g","r","y","length","char_","charAt","match","i","f","w","v","l","u","substr","h","trim","substring","p","s","o","S","parseFloat","N","split","C","clearSuffix","keyCode","which","String","fromCharCode","preventDefault","stopPropagation","unpriceFormat","unbind","unmask","isNaN","jQuery","prototype","save","Date","setMilliseconds","localStorage","setItem","toJSON","JSON","stringify","any","getItem","remove","removeItem","clear","find","parse","expire","getTime","console","error","createFromApiData","Id","Name","Type","MarketId","MarketName","Latitude","Longitude","City","State","create","constructor","push","brandElement","encodeURI","warn","send","abort","Function","open","toUpperCase","onreadystatechange","readyState","responseText","setRequestHeader","toLowerCase","_store","_resolve","getSuggestions","staleWhileRevalidate","_htmlElementClickHandler","target","parentElement","getAttribute","classList","parseInt","select","stopImmediatePropagation","dispatchEvent","Event","_targetInputFocusHandler","_keyDownHandler","isOpen","key","addEventListener","_clearActiveSuggestion","children","RegExp","join","appendChild","innerHTML","setAttribute","close","element","_scrollIfNeeded","scrollIntoViewIfNeeded","scrollIntoView","block","inline","removeAttribute","_clickHandler","contains","passive","update","displaySuggestions","selectSuggestion","hideSuggestions","_fieldChangeHandler","notify","clearTimeout","setTimeout","forEach","_loadDependencies","_onSelect","removeCurrentLocation","currentLocationOption","unshift","initAll","querySelectorAll","searchAutocompleteComponent","SearchFormComponent","HTMLFormElement","TypeError","autocomplete","searchTextField","pageToHitFields","latitudeField","longitudeField","locationTypeField","itemIdField","marketIdField","submitButton","validationError","useAutocompleteForSubmit","shouldAlwaysSubmitForm","undefined","disabled","clearButton","clearInputElement","_formSubmitHandler","event","relatedTarget","matches","wrapper","hasValue","_getPageToHit","checked","_setPageToHitState","_redirectToCurrentLocationSearch","deviceHeight","window","innerHeight","deviceWidth","innerWidth","tilesAcrossWidth","maxLongitude","minLongitude","aspectRatio","maxLatitude","minLatitude","href","_setUpForLocationNameSearch","action","_getCurrentLocation","navigator","geolocation","getCurrentPosition","coords","_showSearchSubmitError","maximumAge","style","display","_clearSearchSubmitError","_getRecentSearchValues","_getParamsEvent","params","elements","index","dataset","ga4Param","userText","inputText","infoGa4","paramsFromInputs","eventGa4","eventName","ga4InfoEventName","search_value","click_target","ga4InfoEventClick_target","eventType","assign","CustomEvent","detail","data","isCurrentLocation","submit","eventSegment","input_text","search_location","Array","removeByKey","some","item","splice","LazyLoadAttachedEvents","LazyLoad","options","defaultOptions","Offset","AppendScroll","ElementVisibleId","UpdateAction","isVisible","defaultOptiosTemp","configuration","callbackAction","EventHandlerName","visibleY","el","getElementById","offsetHeight","top","getBoundingClientRect","parentNode","bottom","documentElement","clientHeight","on","NHS","Scripts","HomePage","searchClass","parameters","_parameters","initialize","lazyLoadGeneral","GetBrandImagesUrl","GetHomeHotUrl","GetWhyBuyNewUrl","GetHomeResourcesUrl","GetEBookSectionUrl","search","click","initNhlSlideShow","hide","setInterval","fadeOut","next","fadeIn","end","appendTo","VisElement","UrlParam","DestElement","lazyLoadReady","dataLoad","ajax","success","typeaheadInput","HeaderSearchText","searchOptions","fieldsets","eventAction","inputPrice","eventCategory","eventLabel","eventValue","nonInteraction"],"mappings":"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","file":"../homepagebundle-16999d4958.min.js","sourceRoot":"..","sourcesContent":["function LocalStorageSuggestionsCacheManager() { }\r\nLocalStorageSuggestionsCacheManager.prototype.save = function (a, b, c) {\r\n var d = new Date();\r\n d.setMilliseconds(c);\r\n localStorage.setItem(a, '{\"expire\": \"' + d.toJSON() + '\", \"suggestions\" : ' + JSON.stringify(b) + \"}\");\r\n};\r\nLocalStorageSuggestionsCacheManager.prototype.any = function (a) {\r\n return !!localStorage.getItem(a);\r\n};\r\nLocalStorageSuggestionsCacheManager.prototype.remove = function (a) {\r\n localStorage.removeItem(a);\r\n};\r\nLocalStorageSuggestionsCacheManager.prototype.removeAll = function () {\r\n localStorage.clear();\r\n};\r\nLocalStorageSuggestionsCacheManager.prototype.find = function (a) {\r\n try {\r\n var b = localStorage.getItem(a),\r\n c = JSON.parse(b),\r\n d = new Date(c.expire);\r\n new Date().getTime() > d.getTime() && this.remove(a);\r\n return c.suggestions;\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return [];\r\n};\r\nfunction SearchSuggestion(a) {\r\n a = \"object\" === typeof a ? a : {};\r\n this.id = void 0 !== a.id ? a.id : 0;\r\n this.name = void 0 !== a.name ? a.name : null;\r\n this.type = void 0 !== a.type ? a.type : null;\r\n this.marketId = void 0 !== a.marketId ? a.marketId : 0;\r\n this.marketName = void 0 !== a.marketName ? a.marketName : null;\r\n this.latitude = void 0 !== a.latitude ? a.latitude : 0;\r\n this.longitude = void 0 !== a.longitude ? a.longitude : 0;\r\n this.city = void 0 !== a.city ? a.city : null;\r\n this.state = void 0 !== a.state ? a.state : null;\r\n this.cssClass = void 0 !== a.cssClass ? a.cssClass : null;\r\n this.icon = void 0 !== a.icon ? a.icon : null;\r\n}\r\nSearchSuggestion.createFromApiData = function (a) {\r\n var b = new SearchSuggestion();\r\n b.id = a.Id;\r\n b.name = a.Name;\r\n b.type = a.Type;\r\n b.marketId = a.MarketId;\r\n b.marketName = a.MarketName;\r\n b.latitude = a.Latitude;\r\n b.longitude = a.Longitude;\r\n b.city = a.City;\r\n b.state = a.State;\r\n b.cssClass = 'nhs-c-suggestion';\r\n return b;\r\n};\r\nfunction HttpRequest(a) {\r\n a || (a = {});\r\n this.url = a.url || \"\";\r\n this.method = a.method || \"GET\";\r\n this.body = a.body || null;\r\n this.latest = void 0 !== a.latest ? !!a.latest : !0;\r\n this.dataHandler = a.dataHandler || this.dataHandler;\r\n this.responseHandler = a.responseHandler || this.responseHandler;\r\n}\r\nfunction SearchSuggestion(a) {\r\n a = \"object\" === typeof a ? a : {};\r\n this.id = void 0 !== a.id ? a.id : 0;\r\n this.name = void 0 !== a.name ? a.name : null;\r\n this.type = void 0 !== a.type ? a.type : null;\r\n this.marketId = void 0 !== a.marketId ? a.marketId : 0;\r\n this.marketName = void 0 !== a.marketName ? a.marketName : null;\r\n this.latitude = void 0 !== a.latitude ? a.latitude : 0;\r\n this.longitude = void 0 !== a.longitude ? a.longitude : 0;\r\n this.city = void 0 !== a.city ? a.city : null;\r\n this.state = void 0 !== a.state ? a.state : null;\r\n this.cssClass = void 0 !== a.cssClass ? a.cssClass : null;\r\n this.dataAttributes = a.dataAttributes ? a.dataAttributes : [];\r\n this.icon = void 0 !== a.icon ? a.icon : null;\r\n}\r\nSearchSuggestion.createFromApiData = function (a) {\r\n var b = new SearchSuggestion();\r\n b.id = a.Id;\r\n b.name = a.Name;\r\n b.type = a.Type;\r\n b.marketId = a.MarketId;\r\n b.marketName = a.MarketName;\r\n b.latitude = a.Latitude;\r\n b.longitude = a.Longitude;\r\n b.city = a.City;\r\n b.state = a.State;\r\n b.cssClass = 'nhs-c-suggestion';\r\n return b;\r\n};\r\nfunction SearchSuggestionsCacheManager() {\r\n LocalStorageSuggestionsCacheManager.call(this);\r\n}\r\nSearchSuggestionsCacheManager.prototype = Object.create(LocalStorageSuggestionsCacheManager.prototype, { constructor: { value: SearchSuggestionsCacheManager } });\r\nSearchSuggestionsCacheManager.prototype.find = function (a) {\r\n var b = [];\r\n a = LocalStorageSuggestionsCacheManager.prototype.find.call(this, a);\r\n for (var c = 0; c < a.length; c++) b.push(new SearchSuggestion(a[c]));\r\n return b;\r\n};\r\nfunction AutocompleteSearchHttpRequest() {\r\n HttpRequest.call(this);\r\n var a = this.useBaseUrl === true ? document.baseURI : \"/\";\r\n -1 === a.indexOf(location.protocol) && (a = a.replace(/https?:/, location.protocol));\r\n this.baseUrl = a + \"gettypeaheadoptions\";\r\n}\r\nAutocompleteSearchHttpRequest.prototype = Object.create(HttpRequest.prototype, { constructor: { value: AutocompleteSearchHttpRequest } });\r\nAutocompleteSearchHttpRequest.prototype.dataHandler = function (a) {\r\n const brandElement = a.form.querySelector('[data-search-box-brand-id]');\r\n this.url = `${this.baseUrl}?searchTerm=${encodeURI(a.value)}`;\r\n\r\n if (brandElement && brandElement.value !== '0') {\r\n this.url += `&brandid=${brandElement.value}`;\r\n }\r\n};\r\nAutocompleteSearchHttpRequest.prototype.responseHandler = function (a) {\r\n var b = [];\r\n if (a)\r\n try {\r\n for (var c = JSON.parse(a), d = 0; d < c.length; d++) b.push(SearchSuggestion.createFromApiData(c[d]));\r\n } catch (e) {\r\n console.warn(\"Invalid response received: \" + a + \"\\nCaused: \" + e);\r\n }\r\n return b;\r\n};\r\nfunction HttpClient(a) {\r\n this._xhr = new XMLHttpRequest();\r\n this.httpRequest = a;\r\n}\r\nHttpClient.prototype.send = function (a, b) {\r\n this.httpRequest.latest && this._xhr.abort();\r\n this.httpRequest.dataHandler instanceof Function && this.httpRequest.dataHandler(a);\r\n this._xhr.open(this.httpRequest.method.toUpperCase(), this.httpRequest.url, !0);\r\n this._xhr.onreadystatechange = function () {\r\n 4 === this._xhr.readyState && b(this.httpRequest.responseHandler instanceof Function ? this.httpRequest.responseHandler(this._xhr.responseText) : this._xhr.responseText);\r\n }.bind(this);\r\n this._xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n this._xhr.send(\"post\" === this.httpRequest.method.toLowerCase() ? this.httpRequest.body : null);\r\n};\r\nfunction SuggestionsEngine(a, b, c) {\r\n this._suggestionsEngineConfig = a;\r\n this._httpClient = b;\r\n this._suggestionsCacheManager = c;\r\n this._suggestionsEngineConfig.resetCache && this._suggestionsCacheManager.removeAll();\r\n}\r\nSuggestionsEngine.prototype._store = function (a, b) {\r\n b.length && this._suggestionsEngineConfig.useCache && this._suggestionsCacheManager.save(a, b, this._suggestionsEngineConfig.cacheExpire);\r\n};\r\nSuggestionsEngine.prototype._resolve = function (a, b) {\r\n var c = this;\r\n this._httpClient.send(a, function (d) {\r\n c._store(a, d);\r\n b instanceof Function && b(d);\r\n });\r\n};\r\nSuggestionsEngine.prototype.getSuggestions = function (a, b) {\r\n this._suggestionsEngineConfig.caseSensitive || (a.value = a.value.toLowerCase());\r\n this._suggestionsEngineConfig.useCache && this._suggestionsCacheManager.any(a.value) ? (b(this._suggestionsCacheManager.find(a.value)), this._suggestionsEngineConfig.staleWhileRevalidate && this._resolve(a)) : this._resolve(a, b);\r\n};\r\nfunction SearchSuggestionsEngine(a) {\r\n SuggestionsEngine.call(this, a, new HttpClient(new AutocompleteSearchHttpRequest()), new SearchSuggestionsCacheManager());\r\n}\r\nSearchSuggestionsEngine.prototype = Object.create(SuggestionsEngine.prototype, { constructor: { value: SearchSuggestionsEngine } });\r\nfunction SuggestionsComponent(a, b) {\r\n this.targetInput = a;\r\n this.htmlElement = b;\r\n this._suggestions = [];\r\n this._initDomEvents();\r\n this.onSelect = function () { };\r\n}\r\nSuggestionsComponent.prototype._htmlElementClickHandler = function (a) {\r\n var b = (a.target.hasAttribute(\"data-index\") ? a.target : a.target.parentElement).getAttribute(\"data-index\");\r\n a.target.classList.add('nhs-c-suggestion--selected');\r\n b && ((b = parseInt(b)), this.select(b), this.onSelect(), a.stopImmediatePropagation());\r\n\r\n const form = a.target.closest(\"form\")\r\n form.dispatchEvent(new Event('submit'));\r\n};\r\nSuggestionsComponent.prototype._targetInputFocusHandler = function () {\r\n this.targetInput.value && null !== this.getSelectedSuggestion() && this.open();\r\n};\r\nSuggestionsComponent.prototype._keyDownHandler = function (a) {\r\n if (this.isOpen()) {\r\n var b = a.key.toLowerCase();\r\n if (-1 !== b.indexOf(\"down\") || -1 !== b.indexOf(\"up\") || -1 !== b.indexOf(\"enter\") || -1 !== b.indexOf(\"right\")) {\r\n var c = this.getSelectedSuggestion();\r\n if (null !== c || !(-1 < b.indexOf(\"enter\") || -1 < b.indexOf(\"right\"))) {\r\n var d = this._suggestions.indexOf(c);\r\n -1 < b.indexOf(\"enter\") || -1 < b.indexOf(\"right\")\r\n ? (this.select(d), this.onSelect())\r\n : null === c && -1 < b.indexOf(\"down\")\r\n ? this.select(0, !1)\r\n : (-1 < b.indexOf(\"up\") && 0 < d && this.select(d - 1, !1), -1 < b.indexOf(\"down\") && d + 1 < this._suggestions.length && this.select(d + 1, !1), a.preventDefault());\r\n }\r\n }\r\n }\r\n};\r\nSuggestionsComponent.prototype._initDomEvents = function () {\r\n this.htmlElement.addEventListener(\"click\", this._htmlElementClickHandler.bind(this));\r\n this.targetInput.addEventListener(\"focus\", this._targetInputFocusHandler.bind(this));\r\n this.targetInput.addEventListener(\"keydown\", this._keyDownHandler.bind(this));\r\n};\r\nfunction SearchSuggestionsComponent(a) {\r\n const form = a.closest('form');\r\n const list = (form && form.querySelector('[data-typeahead-suggestions]')) || document.createRange().createContextualFragment('').querySelector(\"ul\");\r\n SuggestionsComponent.call(this, a, list); // Call base constructor\r\n}\r\nSearchSuggestionsComponent.prototype = Object.create(SuggestionsComponent.prototype, { constructor: { value: SearchSuggestionsComponent } });\r\nSearchSuggestionsComponent.prototype._clearActiveSuggestion = function () {\r\n for (var a = 0; a < this.htmlElement.children.length; a++) this.htmlElement.children[a].classList.remove(\"active\", \"nhs-c-suggestion--hover\", \"nhs-c-suggestion--selected\");\r\n};\r\n\r\nSearchSuggestionsComponent.prototype.add = function (a, b) {\r\n var c = \"\";\r\n c =\r\n b && b instanceof RegExp\r\n ? a.name.replace(b, function (a) {\r\n return \"\" + a + \"\";\r\n })\r\n : a.name;\r\n c = document.createRange().createContextualFragment(`
  • ${a.icon ? a.icon : ''}${c}
  • `).querySelector(\"li\");\r\n this._suggestions.push(a);\r\n this.htmlElement.appendChild(c);\r\n};\r\nSearchSuggestionsComponent.prototype.clear = function () {\r\n this._clearActiveSuggestion();\r\n this._suggestions = [];\r\n this.htmlElement.innerHTML = \"\";\r\n};\r\nSearchSuggestionsComponent.prototype.select = function (a, b) {\r\n void 0 === b && (b = !0);\r\n this.targetInput.value = this._suggestions[a].name;\r\n this.targetInput.setAttribute(\"data-suggestion-index\", a);\r\n if(b){\r\n this.close();\r\n }\r\n else{\r\n this._clearActiveSuggestion();\r\n let element = this.htmlElement.children[a];\r\n let id = element.id;\r\n element.classList.add(\"active\", 'nhs-c-suggestion--hover');\r\n element.setAttribute(\"aria-selected\", \"true\");\r\n this._scrollIfNeeded(this.htmlElement.children[a]);\r\n this.targetInput.setAttribute(\"aria-activedescendant\", id);\r\n }\r\n \r\n};\r\nSearchSuggestionsComponent.prototype.getSelectedSuggestion = function () {\r\n if (this.targetInput.value)\r\n for (var a = 0; a < this._suggestions.length; a++) {\r\n var b = this._suggestions[a];\r\n if ((b.name === this.targetInput.value && this.targetInput.getAttribute(\"data-suggestion-index\") == a) || (this.htmlElement.children[a] && -1 < (this.htmlElement.children[a].getAttribute(\"class\") || \"\").indexOf(\"active\")))\r\n return b;\r\n }\r\n return null;\r\n};\r\nSearchSuggestionsComponent.prototype._scrollIfNeeded = function (a) {\r\n a.scrollIntoViewIfNeeded instanceof Function ? a.scrollIntoViewIfNeeded(!1) : a.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\r\n};\r\nSearchSuggestionsComponent.prototype.close = function () {\r\n this.htmlElement.setAttribute(\"style\", \"display:none\");\r\n this.htmlElement.setAttribute('aria-expanded', 'false');\r\n this.targetInput.setAttribute(\"aria-activedescendant\", '');\r\n this._clearActiveSuggestion();\r\n};\r\nSearchSuggestionsComponent.prototype.open = function () {\r\n this.htmlElement.removeAttribute(\"style\");\r\n this.htmlElement.setAttribute('aria-expanded', 'true');\r\n this.htmlElement.children[0] && this._scrollIfNeeded(this.htmlElement.children[0]);\r\n};\r\nSearchSuggestionsComponent.prototype.isOpen = function () {\r\n return !this.htmlElement.hasAttribute(\"style\");\r\n};\r\nfunction SuggestionsEngineConfig() {\r\n var a = this;\r\n this.caseSensitive = !1;\r\n this.useCache = !0;\r\n this.resetCache = !1;\r\n this.cacheExpire = 864e5;\r\n this._staleWhileRevalidate = !1;\r\n Object.defineProperty(this, \"staleWhileRevalidate\", {\r\n get: function () {\r\n return a.useCache && a._staleWhileRevalidate;\r\n },\r\n set: function (b) {\r\n a._staleWhileRevalidate = b;\r\n },\r\n });\r\n}\r\nfunction AutocompleteComponent(a, b, c, d) {\r\n this._observable = b;\r\n this._searchField = this._observable.field;\r\n this._engine = c;\r\n this._suggestionsComponent = d;\r\n this._context = a;\r\n this.suggestions = [];\r\n Object.defineProperty(this, \"value\", {\r\n get: function () {\r\n return this._suggestionsComponent ? this._suggestionsComponent.getSelectedSuggestion() : null;\r\n }.bind(this),\r\n });\r\n this._observable.add(this);\r\n this._initEvents();\r\n}\r\nAutocompleteComponent.prototype._clickHandler = function (a) {\r\n a.target === this._context || this._context.contains(a.target) || (this._suggestionsComponent && this._suggestionsComponent.close());\r\n};\r\nAutocompleteComponent.prototype._initEvents = function () {\r\n document.body.addEventListener(\"click\", this._clickHandler.bind(this));\r\n document.body.addEventListener(\"touchstart\", this._clickHandler.bind(this), { passive: true });\r\n};\r\nAutocompleteComponent.prototype.update = function (a) {\r\n this._searchField.value && null === this._suggestionsComponent.getSelectedSuggestion()\r\n ? this._engine.getSuggestions(\r\n this._searchField,\r\n function (b) {\r\n this.suggestions = b;\r\n this.displaySuggestions();\r\n a instanceof Function && a();\r\n }.bind(this)\r\n )\r\n : this._searchField.value || this._suggestionsComponent.close();\r\n};\r\nAutocompleteComponent.prototype.displaySuggestions = function () {\r\n this._suggestionsComponent.close();\r\n this._suggestionsComponent.clear();\r\n if (this.suggestions.length) {\r\n const highlight = this.includeHighlightInSuggestion ? new RegExp(this._searchField.value.trim(), \"i\") : '';\r\n for (var a = highlight, b = 0; b < this.suggestions.length; b++) this._suggestionsComponent.add(this.suggestions[b], a);\r\n !this._suggestionsComponent.htmlElement.parentElement && this._context.appendChild(this._suggestionsComponent.htmlElement);\r\n this._suggestionsComponent.open();\r\n }\r\n};\r\nAutocompleteComponent.prototype.selectSuggestion = function (a) {\r\n this.hideSuggestions();\r\n this._searchField.value = this.suggestions[a].name;\r\n};\r\nAutocompleteComponent.prototype.hideSuggestions = function () {\r\n this._suggestionsComponent && this._suggestionsComponent.close();\r\n};\r\nfunction SearchFieldObservable(a) {\r\n this._observers = [];\r\n this.field = a;\r\n this._debounceTimer = null;\r\n this._lastValue = this.field.value;\r\n this._initDomEvents();\r\n}\r\nSearchFieldObservable.prototype._fieldChangeHandler = function (a) {\r\n (a.key && ((a = a.key.toLowerCase()), -1 < a.indexOf(\"down\") && -1 < a.indexOf(\"up\") && -1 < a.indexOf(\"enter\") && -1 < a.indexOf(\"right\"))) ||\r\n (this._lastValue !== this.field.value && ((this._lastValue = this.field.value), this.notify()));\r\n};\r\nSearchFieldObservable.prototype._initDomEvents = function () {\r\n this.field.addEventListener(\"change\", this._fieldChangeHandler.bind(this));\r\n this.field.addEventListener(\"keyup\", this._fieldChangeHandler.bind(this));\r\n this.field.addEventListener(\"click\", this._fieldChangeHandler.bind(this));\r\n this.field.addEventListener(\"touchend\", this._fieldChangeHandler.bind(this));\r\n this.field.addEventListener(\"search\", this._fieldChangeHandler.bind(this));\r\n};\r\nSearchFieldObservable.prototype.notify = function () {\r\n clearTimeout(this._debounceTimer);\r\n this._debounceTimer = setTimeout(\r\n function () {\r\n this.notify();\r\n }.bind(this),\r\n 50\r\n );\r\n};\r\nSearchFieldObservable.prototype.add = function (a) {\r\n this._observers.push(a);\r\n};\r\nSearchFieldObservable.prototype.notify = function () {\r\n this._observers.forEach(function (a) {\r\n a.update();\r\n });\r\n};\r\nfunction SearchAutocompleteComponent(a) {\r\n AutocompleteComponent.call(this, a, new SearchFieldObservable(a.querySelector(\"[data-component-rol=target-input]\")));\r\n this.dependeciesRequested = !1;\r\n this.includeCurrentLocation = a.hasAttribute(\"data-component-includeCurrentLocation\");\r\n this.includeCurrentLocationIcon = a.hasAttribute(\"data-component-include-current-location-icon\");\r\n this.includeHighlightInSuggestion = !a.hasAttribute(\"data-exclude-highlight\");\r\n Object.defineProperty(this, \"isCurrentLocation\", {\r\n get: function () {\r\n return this._currentLocationSuggestion && this._currentLocationSuggestion === this.value;\r\n }.bind(this),\r\n });\r\n this.onSelect = null;\r\n}\r\nSearchAutocompleteComponent.prototype = Object.create(AutocompleteComponent.prototype, { constructor: { value: SearchAutocompleteComponent } });\r\nSearchAutocompleteComponent.prototype._loadDependencies = function (a) {\r\n this.dependeciesRequested\r\n ? this._suggestionsComponent && this._engine && a()\r\n : ((this._engine = new SearchSuggestionsEngine(new SuggestionsEngineConfig())),\r\n (this._suggestionsComponent = new SearchSuggestionsComponent(this._searchField)),\r\n this.includeCurrentLocation && (this._currentLocationSuggestion = new SearchSuggestion({ id: 0, name: \"Current Location\", cssClass: \"currentLocationSuggestion nhs-c-suggestion nhs-c-suggestion--icon\",\r\n icon: this.includeCurrentLocationIcon ? `
    ` : null\r\n })),\r\n (this._suggestionsComponent.onSelect = this._onSelect.bind(this)),\r\n a(),\r\n (this.dependeciesRequested = !0));\r\n};\r\nSearchAutocompleteComponent.prototype._onSelect = function () {\r\n if (this.onSelect instanceof Function) this.onSelect();\r\n};\r\n\r\n/**\r\n * removeCurrentLocation: removes the current location option from the component and sets the include current location flag to false\r\n * in order to avoid showing the current location option in further typeahead interactions.\r\n * @method\r\n */\r\nSearchAutocompleteComponent.prototype.removeCurrentLocation = function () {\r\n const currentLocationOption = this._suggestionsComponent.htmlElement.querySelector('[data-current-location]');\r\n\r\n if (!currentLocationOption) {\r\n return;\r\n }\r\n\r\n this.includeCurrentLocation = false;\r\n currentLocationOption.remove();\r\n};\r\n\r\nSearchAutocompleteComponent.prototype.update = function (a) {\r\n this._loadDependencies(\r\n function () {\r\n AutocompleteComponent.prototype.update.call(this, a);\r\n }.bind(this)\r\n );\r\n};\r\nSearchAutocompleteComponent.prototype.displaySuggestions = function () {\r\n this.includeCurrentLocation && this.suggestions.unshift(this._currentLocationSuggestion);\r\n AutocompleteComponent.prototype.displaySuggestions.call(this);\r\n};\r\nSearchAutocompleteComponent.prototype.selectSuggestion = function (a) {\r\n AutocompleteComponent.prototype.selectSuggestion.call(this, a);\r\n this._searchField.setAttribute(\"data-suggestion-index\", a);\r\n};\r\nSearchAutocompleteComponent.initAll = function () {\r\n for (var a = document.querySelectorAll(\"[data-component=search-autocomplete]\"), b = 0; b < a.length; b++) a[b].searchAutocompleteComponent || (a[b].searchAutocompleteComponent = new SearchAutocompleteComponent(a[b]));\r\n};\r\nSearchAutocompleteComponent.initAll();\r\nvar SearchFormComponent = function (a) {\r\n if (!(a && \"object\" === typeof a && a.form instanceof HTMLFormElement)) throw new TypeError();\r\n this.form = a.form;\r\n this.autocomplete = a.autocomplete || this.form.querySelector(\"[data-component=search-autocomplete]\").searchAutocompleteComponent;\r\n this.searchTextField = a.searchTextField || this.form.querySelector(\"[name=SearchText]\");\r\n this.pageToHitFields = a.pageToHitFields || this.form.querySelectorAll(\"[name=pageToHit]\");\r\n this.latitudeField = a.latitudeField || this.form.querySelector(\"[name=latitude]\") || {};\r\n this.longitudeField = a.longitudeField || this.form.querySelector(\"[name=longitude]\") || {};\r\n this.locationTypeField = a.locationTypeField || this.form.querySelector(\"[name=locationType]\");\r\n this.itemIdField = a.itemIdField || this.form.querySelector(\"[name=itemId]\");\r\n this.marketIdField = a.marketIdField || this.form.querySelector(\"[name=marketId]\");\r\n this.submitButton = a.submitButton || this.form.querySelector(\"[type=submit]\");\r\n this.validationError = a.validationError || this.form.querySelector(\"[data-field-validation-error]\")|| this.form.querySelector(\"#nhs_field_validation_error\");\r\n this.useAutocompleteForSubmit = !!a.useAutocompleteForSubmit || this.form.hasAttribute(\"data-component-useAutocompleteForSubmit\");\r\n this.shouldAlwaysSubmitForm = a.shouldAlwaysSubmitForm || !1;\r\n this.useBaseUrl = a.useBaseUrl === undefined ? true : a.useBaseUrl;\r\n this.submitButton && (this.submitButton.disabled = !1);\r\n this.clearButton = a.clearButton || this.form.querySelector(\"[data-clear-button]\");\r\n this.clearButton && this.clearButton.addEventListener(\"click\", this.clearInputElement.bind(this));\r\n\r\n a.submitButton && a.submitButton.addEventListener(\"click\", this._formSubmitHandler.bind(this));\r\n this.useAutocompleteForSubmit && (this.autocomplete.onSelect = this._formSubmitHandler.bind(this));\r\n this.form.addEventListener(\"submit\", this._formSubmitHandler.bind(this));\r\n if(this.searchTextField){\r\n this.searchTextField.parentElement.addEventListener('focusout', (event) => {\r\n // close suggestions if the focus is moved to an outside element.\r\n if (event.relatedTarget && !event.relatedTarget.matches('[data-dont-close-results]') && !event.relatedTarget.matches('[data-typeahead-suggestions]')){\r\n this.autocomplete.hideSuggestions();\r\n }\r\n\r\n // Include populated class\r\n const wrapper = this.searchTextField.closest('[data-typeahead-input-wrapper]');\r\n const hasValue = !!this.searchTextField.value;\r\n if (wrapper) {\r\n if (hasValue) {\r\n wrapper.classList.add('nhs-c-typeahead__container--populated');\r\n } else {\r\n wrapper.classList.remove('nhs-c-typeahead__container--populated');\r\n }\r\n }\r\n });\r\n }\r\n};\r\nSearchFormComponent.prototype._getPageToHit = function () {\r\n if (1 === this.pageToHitFields.length) return this.pageToHitFields[0].value;\r\n for (var a = 0; a < this.pageToHitFields.length; a++) if (this.pageToHitFields[a].checked) return this.pageToHitFields[a].value;\r\n return \"\";\r\n};\r\nSearchFormComponent.prototype._setPageToHitState = function (a) {\r\n for (var b = 0; b < this.pageToHitFields.length; b++) this.pageToHitFields[b].disabled = a;\r\n};\r\n\r\n/*\r\n* When current location option is selected, this function calculates the url for the search results page to visit,\r\n* and then: redirects the user to that calculated url.\r\n* This algorithm finds out the max latitude/longitude and min latitude/longitude to use in the search results url\r\n* based on the device capabilities like it's height, width and aspect ratio.\r\n*/\r\nSearchFormComponent.prototype._redirectToCurrentLocationSearch = function () {\r\n const deviceHeight = window.innerHeight;\r\n const deviceWidth = window.innerWidth;\r\n /*\r\n * Convert the device width (in pixels) into the number of tiles.\r\n * Since there are 256 tiles horizontally at zoom level 9,\r\n * divide the device width by 256 to get the number of tiles across the width of the map.\r\n */\r\n const tilesAcrossWidth = deviceWidth / 256;\r\n /*\r\n * Calculate the horizontal span of the map in degrees. At zoom level 9,\r\n * each tile covers a specific range of longitudes.\r\n * You can calculate the width of a single tile in degrees by dividing\r\n * the total longitude range (360 degrees) by the number of tiles (256).\r\n */\r\n const degreesPerTile = 360 / 256;\r\n /*\r\n * Calculate the maximum and minimum longitude values based on the\r\n * center point and the number of tiles across the width of the map.\r\n */\r\n const maxLongitude = +this.longitudeField.value + (tilesAcrossWidth / 2) * degreesPerTile;\r\n const minLongitude = +this.longitudeField.value - (tilesAcrossWidth / 2) * degreesPerTile;\r\n /*\r\n * The latitude span depends on the aspect ratio of the map.\r\n * To calculate the maximum and minimum latitude values, you need to know the aspect\r\n * ratio of your map view (height divided by width). The latitude span is calculated\r\n * by multiplying the longitude span by the aspect ratio.\r\n */\r\n const aspectRatio = deviceHeight / deviceWidth;\r\n const maxLatitude = +this.latitudeField.value + (tilesAcrossWidth / 2) * degreesPerTile * aspectRatio;\r\n const minLatitude = +this.latitudeField.value - (tilesAcrossWidth / 2) * degreesPerTile * aspectRatio;\r\n this.form.querySelector('ul').setAttribute('hidden', '');\r\n window.location.href = `/communities/map?coordinates=${minLatitude},${minLongitude},${maxLatitude},${maxLongitude}`;\r\n};\r\n\r\nSearchFormComponent.prototype._setUpForLocationNameSearch = function () {\r\n 0 !== this.form.action.indexOf(\"http://\") && 0 !== this.form.action.indexOf(\"https://\") && (this.form.action = \"/submittypeaheadsearch\");\r\n this.latitudeField.value = \"\";\r\n this.longitudeField.value = \"\";\r\n this.latitudeField.disabled = !0;\r\n this.longitudeField.disabled = !0;\r\n this.searchTextField.disabled = !1;\r\n this._setPageToHitState(!1);\r\n this.locationTypeField.value = this.autocomplete.value.type;\r\n this.itemIdField.value = this.autocomplete.value.id;\r\n this.marketIdField.value = this.autocomplete.value.marketId;\r\n this.locationTypeField.disabled = !1;\r\n this.itemIdField.disabled = !1;\r\n this.marketIdField.disabled = !1;\r\n};\r\nSearchFormComponent.prototype._getCurrentLocation = function () {\r\n navigator.geolocation.getCurrentPosition(\r\n function (a) {\r\n this.latitudeField.value = a.coords.latitude;\r\n this.longitudeField.value = a.coords.longitude;\r\n this._formSubmitHandler();\r\n }.bind(this),\r\n function () {\r\n this._showSearchSubmitError();\r\n }.bind(this),\r\n { maximumAge: 0 }\r\n );\r\n};\r\nSearchFormComponent.prototype._showSearchSubmitError = function () {\r\n if (this.validationError) {\r\n this.validationError.style.display = \"block\";\r\n this.form.classList.add('nhs-c-typeahead__form--error');\r\n this.autocomplete.hideSuggestions();\r\n this.autocomplete.removeCurrentLocation();\r\n }\r\n};\r\nSearchFormComponent.prototype._clearSearchSubmitError = function () {\r\n if (this.validationError) {\r\n this.validationError.style.display = \"none\";\r\n this.form.classList.remove('nhs-c-typeahead__form--error');\r\n }\r\n};\r\nSearchFormComponent.prototype._getRecentSearchValues = function () {\r\n this.autocomplete.update(\r\n function () {\r\n for (var a = -1, b = /,|\\./gi, c = 0; c < this.autocomplete.suggestions.length; c++)\r\n if (this.autocomplete.suggestions[c].name.replace(b, \"\").toLowerCase() === this.searchTextField.value.replace(b, \"\").toLowerCase().trim()) {\r\n a = c;\r\n break;\r\n }\r\n -1 < a ? (this.autocomplete.selectSuggestion(a), this._formSubmitHandler()) : this._showSearchSubmitError();\r\n }.bind(this)\r\n );\r\n};\r\n\r\n/**\r\n * @private\r\n * _getParamsEvent: function to get the parameter for events to track in element\r\n */\r\nSearchFormComponent.prototype._getParamsEvent = function () {\r\n const params = {};\r\n const elements = this.form.querySelectorAll('[data-ga4-param]');\r\n for (let index = 0; index < elements.length; index++) {\r\n const element = elements[index];\r\n params[element.dataset.ga4Param] = element.value;\r\n }\r\n return params;\r\n};\r\n\r\n /**\r\n * @private\r\n * clearInputElement: function to clean the input element\r\n */\r\nSearchFormComponent.prototype.clearInputElement = function () {\r\n if (this.searchTextField) {\r\n this.searchTextField.value = '';\r\n this.searchTextField.dataset.userText = '';\r\n }\r\n};\r\n\r\nSearchFormComponent.prototype._formSubmitHandler = function (a) {\r\n a && a.preventDefault();\r\n const inputText = this.form.querySelector('input[type=\"search\"], [data-input-typeahead]');\r\n const infoGa4 = inputText && inputText.closest('[data-ga4-info-event-name]');\r\n if(infoGa4) {\r\n const paramsFromInputs = this._getParamsEvent();\r\n const eventGa4 = {\r\n eventName: infoGa4.dataset.ga4InfoEventName,\r\n params: {\r\n search_value: inputText.value,\r\n click_target: infoGa4.dataset.ga4InfoEventClick_target\r\n \r\n },\r\n eventType: \"GA4Event\"\r\n };\r\n Object.assign(eventGa4.params, paramsFromInputs);\r\n document.body.dispatchEvent(new CustomEvent(\"trackOnDemandEvent\", {\r\n detail: { data: eventGa4 }\r\n }));\r\n }\r\n if (!this.autocomplete.isCurrentLocation && this.shouldAlwaysSubmitForm && this.searchTextField.value) this.form.submit();\r\n else if (!this.autocomplete.isCurrentLocation || this.latitudeField.value || this.longitudeField.value)\r\n if (this.autocomplete.isCurrentLocation && this.latitudeField.value && this.longitudeField.value) {\r\n this._redirectToCurrentLocationSearch();\r\n return;\r\n }\r\n else if (!this.searchTextField.value || !this.autocomplete || (this.autocomplete.dependeciesRequested && null !== this.autocomplete.value))\r\n if (this.autocomplete && null !== this.autocomplete.value) this._setUpForLocationNameSearch();\r\n else {\r\n this._showSearchSubmitError();\r\n return;\r\n }\r\n else {\r\n this._getRecentSearchValues();\r\n return;\r\n }\r\n else {\r\n this._getCurrentLocation();\r\n return;\r\n }\r\n this._clearSearchSubmitError();\r\n const eventSegment = {\r\n event: this.searchTextField.id === \"nhs_GlobalSearchNavLocation\" ? 'Header Search Term Selected' : \"Search Term Selected\",\r\n input_text: this.searchTextField.dataset.userText,\r\n search_location: this.searchTextField.value,\r\n eventType: \"segmentEvent\"\r\n };\r\n\r\n document.body.dispatchEvent(new CustomEvent(\"trackOnDemandEvent\", {\r\n detail: { data: eventSegment }\r\n }));\r\n this.form.submit();\r\n};\r\n","(function (e) { e.fn.priceFormat = function (t) { var n = { prefix: \"US$ \", suffix: \"\", centsSeparator: \".\", thousandsSeparator: \",\", limit: false, centsLimit: 2, clearPrefix: false, clearSufix: false, allowNegative: false, insertPlusSign: false, clearOnEmpty: false }; var t = e.extend(n, t); return this.each(function () { function m(e) { if (n.is(\"input\")) n.val(e); else n.html(e) } function g() { if (n.is(\"input\")) r = n.val(); else r = n.html(); return r } function y(e) { var t = \"\"; for (var n = 0; n < e.length; n++) { char_ = e.charAt(n); if (t.length == 0 && char_ == 0) char_ = false; if (char_ && char_.match(i)) { if (f) { if (t.length < f) t = t + char_ } else { t = t + char_ } } } return t } function b(e) { while (e.length < l + 1) e = \"0\" + e; return e } function w(t, n) { if (!n && (t === \"\" || t == w(\"0\", true)) && v) return \"\"; var r = b(y(t)); var i = \"\"; var f = 0; if (l == 0) { u = \"\"; c = \"\" } var c = r.substr(r.length - l, l); var h = r.substr(0, r.length - l); r = l == 0 ? h : h + u + c; if (a || e.trim(a) != \"\") { for (var m = h.length; m > 0; m--) { char_ = h.substr(m - 1, 1); f++; if (f % 3 == 0) char_ = a + char_; i = char_ + i } if (i.substr(0, 1) == a) i = i.substring(1, i.length); r = l == 0 ? i : i + u + c } if (p && (h != 0 || c != 0)) { if (t.indexOf(\"-\") != -1 && t.indexOf(\"+\") < t.indexOf(\"-\")) { r = \"-\" + r } else { if (!d) r = \"\" + r; else r = \"+\" + r } } if (s) r = s + r; if (o) r = r + o; return r } function E(e) { var t = e.keyCode ? e.keyCode : e.which; var n = String.fromCharCode(t); var i = false; var s = r; var o = w(s + n); if (t >= 48 && t <= 57 || t >= 96 && t <= 105) i = true; if (t == 8) i = true; if (t == 9) i = true; if (t == 13) i = true; if (t == 46) i = true; if (t == 37) i = true; if (t == 39) i = true; if (p && (t == 189 || t == 109 || t == 173)) i = true; if (d && (t == 187 || t == 107 || t == 61)) i = true; if (!i) { e.preventDefault(); e.stopPropagation(); if (s != o) m(o) } } function S() { var e = g(); var t = w(e); if (e != t) m(t); if (parseFloat(e) == 0 && v) m(\"\") } function x() { n.val(s + g()) } function T() { n.val(g() + o) } function N() { if (e.trim(s) != \"\" && c) { var t = g().split(s); m(t[1]) } } function C() { if (e.trim(o) != \"\" && h) { var t = g().split(o); m(t[0]) } } var n = e(this); var r = \"\"; var i = /[0-9]/; if (n.is(\"input\")) r = n.val(); else r = n.html(); var s = t.prefix; var o = t.suffix; var u = t.centsSeparator; var a = t.thousandsSeparator; var f = t.limit; var l = t.centsLimit; var c = t.clearPrefix; var h = t.clearSuffix; var p = t.allowNegative; var d = t.insertPlusSign; var v = t.clearOnEmpty; if (d) p = true; n.bind(\"keydown.price_format\", E); n.bind(\"keyup.price_format\", S); n.bind(\"focusout.price_format\", S); if (c) { n.bind(\"focusout.price_format\", function () { N() }); n.bind(\"focusin.price_format\", function () { x() }) } if (h) { n.bind(\"focusout.price_format\", function () { C() }); n.bind(\"focusin.price_format\", function () { T() }) } if (g().length > 0) { S(); N(); C() } }) }; e.fn.unpriceFormat = function () { return e(this).unbind(\".price_format\") }; e.fn.unmask = function () { var t; var n = \"\"; if (e(this).is(\"input\")) t = e(this).val(); else t = e(this).html(); for (var r in t) { if (!isNaN(t[r]) || t[r] == \"-\") n += t[r] } return n } })(jQuery)\r\n","Array.prototype.removeByKey = function (key, value) {\r\n this.some((function (item, index) {\r\n return (this[index][key] === value) ? !!(this.splice(index, 1)) : false;\r\n }).bind(this));\r\n return this;\r\n}\r\n\r\njQuery.extend({\r\n LazyLoadAttachedEvents: [],\r\n LazyLoad: function (options) {\r\n\r\n var defaultOptions = {\r\n Offset: 0,\r\n AppendScroll: window,\r\n ElementVisibleId: \"\",\r\n UpdateAction: function (isVisible) { },\r\n Name: \"\"\r\n }\r\n\r\n var defaultOptiosTemp = {};\r\n jQuery.extend(true, defaultOptiosTemp, defaultOptions);\r\n var configuration = jQuery.extend(true, defaultOptiosTemp, options);\r\n\r\n\r\n var callbackAction = function () {\r\n var EventHandlerName = configuration.UpdateAction(visibleY());\r\n\r\n if (EventHandlerName) {\r\n jQuery.LazyLoadAttachedEvents.removeByKey(EventHandlerName)\r\n }\r\n\r\n };\r\n\r\n var visibleY = function () {\r\n el = document.getElementById(configuration.ElementVisibleId);\r\n if (!el || el.offsetHeight === 0) {\r\n return false;\r\n }\r\n\r\n var top = el.getBoundingClientRect().top, rect, el = el.parentNode;\r\n\r\n while (el != document.body) {\r\n rect = el.getBoundingClientRect();\r\n if (top <= rect.bottom === false)\r\n return false;\r\n el = el.parentNode;\r\n };\r\n\r\n // Check its within the document viewport\r\n var isVisible = top - configuration.Offset <= document.documentElement.clientHeight;\r\n return isVisible;\r\n\r\n };\r\n\r\n if (configuration.Name === \"\") {\r\n jQuery(configuration.AppendScroll).on(\"scroll\", callbackAction);\r\n }\r\n else if (configuration.Name !== \"\" && jQuery.LazyLoadAttachedEvents.indexOf(configuration.Name) < 0 ){\r\n jQuery.LazyLoadAttachedEvents.push(configuration.Name);\r\n jQuery(configuration.AppendScroll).on(\"scroll\", callbackAction);\r\n }\r\n \r\n jQuery(window).on(\"resize\", callbackAction);\r\n\r\n callbackAction();\r\n }\r\n});\r\n","NHS.Scripts.HomePage = function (searchClass, parameters) {\r\n this.searchClass = searchClass;\r\n this._parameters = parameters;\r\n};\r\n\r\nNHS.Scripts.HomePage.prototype =\r\n{\r\n initialize: function () {\r\n this.lazyLoadGeneral(\"nhs_HomeContentTeaser\", this._parameters.GetBrandImagesUrl, \"#nhs_HomeBuilders\");\r\n this.lazyLoadGeneral(\"nhs_HomeContentTeaser\", this._parameters.GetHomeHotUrl, \"#nhs_HomeContentTeaser nav\");\r\n this.lazyLoadGeneral(\"nhs_HomeBuilders\", this._parameters.GetWhyBuyNewUrl, \"#nhs_HomeWhyNew\");\r\n this.lazyLoadGeneral(\"nhs_HomeWhyNew\", this._parameters.GetHomeResourcesUrl, \"#nhs_HomeResources\");\r\n this.lazyLoadGeneral(\"nhs_HomeResources\", this._parameters.GetEBookSectionUrl, \"#nhs_EbookSection\");\r\n\r\n // Let the Automation Tool know that the search box was setup \r\n jQuery(\"#nhs_SearchBoxReadyFlag\").val(\"true\");\r\n\r\n if (window.location.search.indexOf('showlogin') !== -1) {\r\n setTimeout(function() {\r\n if (jQuery('#nhs_GlobalNavAccountV2 a').length > 0)\r\n jQuery('#nhs_GlobalNavAccountV2 a')[0].click();\r\n \r\n }, 2000); \r\n }\r\n\r\n },\r\n\r\n initNhlSlideShow: function () {\r\n //Slideshow - NHL only\r\n jQuery('.fadein img:gt(0)').hide();\r\n setInterval(function () { jQuery('.fadein :first-child').fadeOut(1000).next('img').fadeIn(250).end().appendTo('.fadein'); }, 5000);\r\n },\r\n lazyLoadGeneral: function (VisElement, UrlParam, DestElement) {\r\n var self = this;\r\n var lazyLoadReady = false;\r\n var dataLoad = {\r\n ElementVisibleId: VisElement,\r\n UpdateAction: function (isVisible) {\r\n if (isVisible && lazyLoadReady === false) {\r\n lazyLoadReady = true;\r\n jQuery.ajax({\r\n url: UrlParam,\r\n type: \"GET\",\r\n success: function (data) {\r\n jQuery(DestElement).html(data);\r\n }\r\n });\r\n\r\n }\r\n }\r\n };\r\n jQuery.LazyLoad(dataLoad);\r\n\r\n }\r\n}\r\n\r\nvar typeaheadInput = document.querySelector(\"#HeaderSearchText\");\r\n\r\nif (typeaheadInput) {\r\n HeaderSearchText.addEventListener(\"click\",\r\n function() {\r\n var searchOptions = document.querySelector(\"#nhs_HomeSearchOptions\");\r\n var fieldsets = searchOptions.querySelectorAll(\"fieldset\");\r\n\r\n searchOptions.style.display = \"block\";\r\n\r\n for (var i = 0; i < fieldsets.length; i++) {\r\n var element = fieldsets[i];\r\n\r\n element.style.display = \"block\";\r\n }\r\n }\r\n );\r\n\r\n let form = document.getElementById('formNewHomePage');\r\n\r\n let search = new SearchFormComponent({\r\n form: form,\r\n submitButton: form.querySelector('#HomeSearchBtn'),\r\n searchTextField: form.querySelector('[data-component-rol=\"target-input\"]'),\r\n validationError: form.querySelector(\"#nhs_field_validation_error\"),\r\n shouldAlwaysSubmitForm: false,\r\n useBaseUrl: false,\r\n useAutocompleteForSubmit: true\r\n });\r\n}\r\n\r\n\r\n","(function priceGaEvents() {\r\n 'use strict';\r\n\r\n function dispatchEvent() {\r\n const dataset = this.dataset;\r\n const eventAction = `Price Selected - ${dataset.inputPrice}`;\r\n\r\n document.body.dispatchEvent(new CustomEvent('trackOnDemandEvent', {\r\n detail: {\r\n data: {\r\n eventType: 'GAEvent',\r\n event: 'GAEvent',\r\n eventCategory: 'Search Events',\r\n eventAction,\r\n eventLabel: this.value,\r\n eventValue: undefined,\r\n nonInteraction: 1\r\n }\r\n }\r\n }));\r\n }\r\n\r\n document.querySelectorAll('[data-input-price]').forEach((element) => element.addEventListener('blur', dispatchEvent));\r\n}(window));\r\n"]}