{"version":3,"sources":["favoritesIcon.js","jQueryExtend.js","Datepicker.js","favorites.js","CommResults.LazyLoad.js","Auth0DomEventHandler.js","pixelTracker.js","scriptComponent.js","homePageTypeahead.js"],"names":["removeFromCookie","items","id","itemIndex","map","item","JSON","parse","indexOf","splice","cookie","stringify","window","location","host","toString","join","document","saveToFavorites","pendingItems","match","RegExp","favoriteItems","querySelectorAll","length","index","favoriteString","favoriteObject","xhr","XMLHttpRequest","data","Type","type","Id","FavoriteUrl","url","Title","name","open","setRequestHeader","send","cookieFavorites","isLoggedIn","querySelector","addEventListener","jQuery","extend","ShowLoading","loadingContainerSelector","control","overlay","loading","containerForLoading","appendChild","append","show","HideLoading","overlayElement","loadingElement","remove","fn","ScrollTo","targetOffset","this","offset","top","ScrollToPosLess","value","ScrollToFast","ScrollClickTo","self","click","mozEvent","ev","event","cancelBubble","returnValue","stopPropagation","preventDefault","fast","callBak","scrollElem","scrollableElement","scrollTop","isFunction","animate","els","j","el","$scrollElement","isScrollable","root","factory","define","amd","Datepicker","parameters","element","queryElement","alertText","prototype","attachEventsToNotAvailableDay","anchorElements","i","removeAttribute","showNotAvailableDateAlert","bind","hiddenNotAvailableDateAlert","drawNotAvailableDateAlert","alert","createElement","setAttribute","innerText","getElementById","style","display","NHS","Scripts","Favorites","params","isMailFavoriteRun","setUpFullImageViewerSaveOption","template","mainSaveOption","fullImageViewerSaveOption","dataset","favid","firstElementChild","lastElementChild","classList","add","init","[object Object]","favoriteElements","pendingItemsFromMail","mailFavorites","topSaveElement","showLogInForSaveToFavorites","push","forEach","updateStylesToSaved","category","matches","saveToFavs","unSaveOptions","onclick","saveElement","saveOptions","unSaveElement","nearByUnSaveOptions","nearBySaveOptions","favoriteElement","removeEventListener","handleLoggedOutFavorites","href","alt","modalUrl","NewHomeSource","ModalLoader","showModal","temporalSavedItems","wasPropertyUnsaved","saveButton","target","closest","auth0Dom","signIn","link","itemId","contains","urlBase","onreadystatechange","readyState","status","response","Saved","body","dispatchEvent","CustomEvent","detail","updateStylesToUnsaved","logSegmentEvent","logInfo","marketId","partnerId","planId","specificationId","communityId","logEvents","parentElement","gaEvent","eventType","eventCategory","eventAction","eventLabel","log","logger","googlepush","logEventWithParameters","homeLogInfo","Object","assign","specId","SetDataLayerPair","segmentEvent","commonProperties","eventForSegment","home_id","spec_id","community_id","elementToSave","elementToUnsave","replace","unSavedFavs","savedItem","saveItem","nextElement","savedElements","unsaveElements","heartElements","removeLocalStorage","previousElementSibling","targetNode","parameter","urlparts","split","shift","queryString","prefix","encodeURIComponent","pars","lastIndexOf","history","pushState","title","LazyLoad","LazyLoadImages","error","mainImage","cardSrpType","parentClass","currentTarget","getAttribute","isMainImage","parentNode","leftSideImage","rightSideImage","setOnErrorSrcAttribute","NoPhotoBig","removeChild","sizes","NoPhotoSmall","_parameters","builderNoImageRoute","removeClass","image","tagName","source","onerror","LazyLoadImagesGroup","elements","IsThreeImageContainer","FitImageInContainer","isBigCardContainer","naturalWidth","naturalHeight","OnloadImage","isSmallContainer","heightForBigContainer","imgRatio","boxRatio","width","height","maxWidth","maxHeight","global","options","require","loadAuth0","load","script","loadJs","auth0LockWebLogIn","Show","AjaxHelper","extendHelper","auth0Params","eventsProperties","click_target","keyCode","initialScreen","nextPage","container","pixelsImages","loadPixels","src","ScriptComponent","HTMLElement","defer","setTimeout","loadScript","call","strategy","customElements","homeSearchBtn","inputText","infoGa4","eventGa4","eventName","ga4InfoEventName","search_value","ga4InfoEventClick_target"],"mappings":"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","file":"../nhsshell2014bottombundle-20e6bee4ab.min.js","sourceRoot":"..","sourcesContent":["(function () {\r\n function removeFromCookie(items, id) {\r\n const itemIndex = items.map(function (item) { return JSON.parse(item).id; }).indexOf(id);\r\n\r\n if (itemIndex >= 0) {\r\n items.splice(itemIndex, 1);\r\n const cookie = [\"pendingSaveItem\", '=', JSON.stringify(items), '; domain=.', window.location.host.toString(), '; path=/;'].join('');\r\n document.cookie = cookie;\r\n }\r\n\r\n return itemIndex >= 0;\r\n }\r\n\r\n function saveToFavorites() {\r\n const pendingItems = document.cookie.match(new RegExp(\"pendingSaveItem=([^;]+)\"));\r\n const favoriteItems = pendingItems ? JSON.parse(pendingItems[1]) : [];\r\n const hasSaveToFavoritesScript = document.querySelectorAll(\".nhs_favUnsave, .nhs_favSaved, .nhs_nbyFavUnsave, .nhs_nbyFavUnsaved\").length > 0;\r\n\r\n if (hasSaveToFavoritesScript) {\r\n return;\r\n }\r\n\r\n for (let index = favoriteItems.length - 1; index >= 0; index -= 1) {\r\n const favoriteString = favoriteItems[index];\r\n const favoriteObject = JSON.parse(favoriteString);\r\n const xhr = new XMLHttpRequest();\r\n const data = {\r\n Type: favoriteObject.type,\r\n Id: favoriteObject.id,\r\n FavoriteUrl: favoriteObject.url,\r\n Title: favoriteObject.name\r\n }\r\n\r\n xhr.open(\"POST\", \"/favorites/save\", true);\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n xhr.send(JSON.stringify(data));\r\n removeFromCookie(favoriteItems, favoriteObject.id);\r\n }\r\n }\r\n\r\n const pendingItems = document.cookie.match(new RegExp(\"pendingSaveItem=([^;]+)\"));\r\n const cookieFavorites = pendingItems ? JSON.parse(pendingItems[1]) : [];\r\n const isLoggedIn = document.querySelector('[data-isloggedin=\"True\"]');\r\n const isMobile = !!document.querySelector('[data-ismobiledevice=\"true\"]');\r\n\r\n if (cookieFavorites.length === 0) {\r\n return;\r\n }\r\n\r\n isLoggedIn && saveToFavorites(cookieFavorites);\r\n\r\n document.addEventListener(\"updateSavesWhenLoggedIn\", saveToFavorites);\r\n}());","jQuery.extend({\r\n ShowLoading: function (loadingContainerSelector) {\r\n var control = jQuery(\"#nhs_Loading,#nhs_Overlay\");\r\n if (control.length === 0) {\r\n var overlay = jQuery('
');\r\n var loading = jQuery('

Updating

');\r\n const containerForLoading = document.querySelector(loadingContainerSelector);\r\n if (containerForLoading) {\r\n containerForLoading.appendChild(overlay[0]);\r\n containerForLoading.appendChild(loading[0]);\r\n } else {\r\n jQuery(\"body\").append(overlay);\r\n jQuery(\"body\").append(loading);\r\n }\r\n loading.show();\r\n overlay.show();\r\n } else {\r\n control.show();\r\n }\r\n },\r\n\r\n HideLoading: function (loadingContainerSelector) {\r\n let overlayElement = null;\r\n let loadingElement = null;\r\n if (loadingContainerSelector) {\r\n overlayElement = document.querySelector(`${loadingContainerSelector} #nhs_Overlay:not([data-role=\"map-overlay\"])`);\r\n loadingElement = document.querySelector(`${loadingContainerSelector} #nhs_Loading:not([data-role=\"map-overlay\"])`);\r\n } else {\r\n overlayElement = document.querySelector('#nhs_Overlay:not([data-role=\"map-overlay\"])');\r\n loadingElement = document.querySelector('#nhs_Loading:not([data-role=\"map-loading\"])');\r\n }\r\n\r\n if (overlayElement) {\r\n overlayElement.remove();\r\n }\r\n\r\n if (loadingElement) {\r\n loadingElement.remove();\r\n }\r\n }\r\n});\r\n\r\njQuery.fn.extend({\r\n ScrollTo: function (targetOffset) {\r\n if (typeof targetOffset == \"undefined\")\r\n targetOffset = this.offset().top;\r\n jQuery.ScrollTo(targetOffset, false);\r\n },\r\n ScrollToPosLess: function (value) {\r\n var targetOffset = this.offset().top;\r\n jQuery.ScrollTo(targetOffset - value, false);\r\n },\r\n ScrollToFast: function (targetOffset) {\r\n if (typeof targetOffset == \"undefined\")\r\n targetOffset = this.offset().top;\r\n jQuery.ScrollTo(targetOffset, true);\r\n },\r\n ScrollClickTo: function (targetOffset) {\r\n var self = this;\r\n this.click(function (mozEvent) {\r\n var ev = mozEvent ? mozEvent : window.event; //Moz support requires passing the event argument manually \r\n //Cancel the event \r\n ev.cancelBubble = true;\r\n ev.returnValue = false;\r\n if (ev.stopPropagation) ev.stopPropagation();\r\n if (ev.preventDefault) ev.preventDefault();\r\n self.ScrollTo(targetOffset);\r\n });\r\n return this;\r\n }\r\n});\r\n\r\njQuery.extend({\r\n ScrollToFast: function (targetOffset) {\r\n if (typeof targetOffset === \"undefined\")\r\n targetOffset = this.offset().top;\r\n this.ScrollTo(targetOffset, true);\r\n },\r\n ScrollTo: function (targetOffset, fast, callBak) {\r\n var scrollElem = jQuery.scrollableElement(['html', 'body']);\r\n if (fast) {\r\n jQuery(scrollElem).scrollTop(targetOffset);\r\n if (jQuery.isFunction(callBak))\r\n callBak();\r\n } else {\r\n jQuery(scrollElem).animate({ scrollTop: targetOffset }, \"slow\", callBak);\r\n }\r\n },\r\n \r\n scrollableElement: function (els) {\r\n for (var j = 0; j < els.length; j++) {\r\n var el = els[j];\r\n var $scrollElement = jQuery(el);\r\n if ($scrollElement.scrollTop() > 0) {\r\n return el;\r\n } else {\r\n $scrollElement.scrollTop(1);\r\n var isScrollable = $scrollElement.scrollTop() > 0;\r\n $scrollElement.scrollTop(0);\r\n if (isScrollable) {\r\n return el;\r\n }\r\n }\r\n }\r\n return [];\r\n }\r\n});","(function(root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n define([],\r\n function() {\r\n return (root.Datepicker = factory());\r\n });\r\n } else {\r\n root.Datepicker = factory();\r\n }\r\n})(window, function() {\r\n \"use strict\";\r\n\r\n var Datepicker = function(parameters) {\r\n this.element = null;\r\n this.queryElement = parameters.queryElement;\r\n this.alertText = parameters.alertText;\r\n }\r\n\r\n Datepicker.prototype = {\r\n attachEventsToNotAvailableDay: function () {\r\n var anchorElements = document.querySelectorAll(\".ui-datepicker-calendar a\");\r\n for (var i = 0; i < anchorElements.length; i++) {\r\n anchorElements[i].removeAttribute(\"href\");\r\n }\r\n\r\n this.element = document.querySelector(this.queryElement);\r\n if (this.element) {\r\n this.element.addEventListener(\"mouseenter\", this.showNotAvailableDateAlert.bind(this));\r\n this.element.addEventListener(\"click\", this.showNotAvailableDateAlert.bind(this));\r\n this.element.addEventListener(\"mouseleave\", this.hiddenNotAvailableDateAlert.bind(this));\r\n }\r\n },\r\n\r\n drawNotAvailableDateAlert: function () {\r\n var alert;\r\n alert = document.createElement(\"p\");\r\n alert.setAttribute(\"id\", \"alertNotAvailable\");\r\n alert.innerText = this.alertText;\r\n alert.setAttribute(\"class\", \"tooltip__container\");\r\n this.element.appendChild(alert);\r\n return alert;\r\n },\r\n\r\n showNotAvailableDateAlert: function () {\r\n var alert = document.getElementById(\"alertNotAvailable\");\r\n if (!alert) {\r\n alert = this.drawNotAvailableDateAlert();\r\n }\r\n alert.style.display = \"block\";\r\n },\r\n\r\n hiddenNotAvailableDateAlert: function () {\r\n var alert = document.getElementById(\"alertNotAvailable\");\r\n alert.style.display = \"none\";\r\n }\r\n }\r\n\r\n return Datepicker;\r\n});","window.NHS.Scripts.Favorites = function (parameters) {\r\n 'use strict';\r\n\r\n const self = this;\r\n this.params = parameters;\r\n this.isMailFavoriteRun = true;\r\n this.setUpFullImageViewerSaveOption = function () {\r\n const template = document.querySelector('section.viewer');\r\n const mainSaveOption = document.querySelector('.nhs_favSaved');\r\n const fullImageViewerSaveOption = template.querySelectorAll(\"[data-component='full-image-viewer-favorites']\");\r\n\r\n if (mainSaveOption && mainSaveOption.dataset.favid) {\r\n for (let index = 0; index < fullImageViewerSaveOption.length; index += 1) {\r\n fullImageViewerSaveOption[index].setAttribute('data-remove-local-storage', 'True');\r\n fullImageViewerSaveOption[index].firstElementChild.lastElementChild.style.display = 'block';\r\n fullImageViewerSaveOption[index].firstElementChild.firstElementChild.style.display = 'none';\r\n fullImageViewerSaveOption[index].dataset.favid = mainSaveOption.dataset.favid;\r\n fullImageViewerSaveOption[index].dataset.element = mainSaveOption.dataset.element;\r\n fullImageViewerSaveOption[index].classList.add('nhs_favSaved');\r\n fullImageViewerSaveOption[index].classList.remove('nhs_favUnsave');\r\n }\r\n }\r\n\r\n self.init();\r\n };\r\n};\r\n\r\nwindow.NHS.Scripts.Favorites.prototype =\r\n {\r\n init() {\r\n 'use strict';\r\n\r\n const self = this;\r\n const pendingItems = document.cookie.match(/pendingSaveItem=([^;]+)/);\r\n const cookieFavorites = pendingItems ? JSON.parse(pendingItems[1]) : [];\r\n const favoriteElements = document.querySelectorAll('.nhs_favLogin');\r\n const isLoggedIn = favoriteElements.length === 0;\r\n const pendingItemsFromMail = document.cookie.match(/TemporalFavoritesCookie_[0-9]=([^;]+)/);\r\n const mailFavorites = pendingItemsFromMail ? pendingItemsFromMail[1] : null;\r\n\r\n if (mailFavorites && self.isMailFavoriteRun && cookieFavorites.indexOf(JSON.parse(mailFavorites).id) === -1) {\r\n const topSaveElement = document.querySelector('[data-main-gallery-container] [data-favorite-trigger]');\r\n\r\n if (cookieFavorites.length > 0) {\r\n window.NHS.Scripts.Favorites.prototype.showLogInForSaveToFavorites(topSaveElement);\r\n } else {\r\n cookieFavorites.push(mailFavorites);\r\n const cookie = [\r\n 'pendingSaveItem',\r\n '=',\r\n JSON.stringify(cookieFavorites),\r\n '; domain=.',\r\n window.location.host.toString(),\r\n '; path=/;'\r\n ].join('');\r\n document.cookie = cookie;\r\n }\r\n\r\n self.isMailFavoriteRun = false;\r\n }\r\n\r\n if (cookieFavorites) {\r\n for (let index = cookieFavorites.length - 1; index >= 0; index -= 1) {\r\n const favoriteString = cookieFavorites[index];\r\n const favoriteObject = JSON.parse(favoriteString);\r\n\r\n if (isLoggedIn) {\r\n const saveElements = document.querySelectorAll(`#${favoriteObject.element}`);\r\n\r\n saveElements.forEach((element) => {\r\n window.NHS.Scripts.Favorites.prototype.updateStylesToSaved(\r\n element.dataset.category,\r\n favoriteObject.id,\r\n 0,\r\n element\r\n );\r\n\r\n if (element.matches('[data-full-image-viewer-save-button]')) {\r\n element.removeAttribute('data-event');\r\n }\r\n });\r\n\r\n let element = document.querySelector('#' + favoriteObject.element);\r\n if (!element) {\r\n element = {\r\n dataset: favoriteObject.dataset\r\n };\r\n }\r\n self.removeFromCookie(cookieFavorites, favoriteObject.id);\r\n self.saveToFavs(\r\n element,\r\n favoriteObject.category,\r\n favoriteObject.type,\r\n favoriteObject.id,\r\n favoriteObject.url,\r\n favoriteObject.name,\r\n self\r\n );\r\n }\r\n }\r\n }\r\n\r\n // On Click Save to Favorites\r\n const unSaveOptions = document.querySelectorAll('.nhs_favUnsave:not([data-favorite-unclick])');\r\n for (let i = 0; i < unSaveOptions.length; i += 1) {\r\n unSaveOptions[i].onclick = function () {\r\n self.saveElement(this, self);\r\n };\r\n }\r\n\r\n // On Click un Save to Favorites\r\n const saveOptions = document.querySelectorAll('.nhs_favSaved:not([data-favorite-unclick])');\r\n for (let i = 0; i < saveOptions.length; i += 1) {\r\n saveOptions[i].onclick = function () {\r\n self.unSaveElement(this, self);\r\n };\r\n }\r\n\r\n // On Click Save to Nearby Communities Favorites\r\n const nearByUnSaveOptions = document.querySelectorAll('.nhs_nbyFavUnsave');\r\n for (let i = 0; i < nearByUnSaveOptions.length; i += 1) {\r\n nearByUnSaveOptions[i].onclick = function () {\r\n self.saveElement(this, self);\r\n };\r\n }\r\n\r\n // On Click un Save to Nearby Communities Favorites\r\n const nearBySaveOptions = document.querySelectorAll('.nhs_nbyFavUnsaved');\r\n for (let i = 0; i < nearBySaveOptions.length; i += 1) {\r\n nearBySaveOptions[i].onclick = function () {\r\n self.unSaveElement(this, self);\r\n };\r\n }\r\n\r\n for (const favoriteElement of favoriteElements) {\r\n favoriteElement.removeEventListener('click', self.handleLoggedOutFavorites);\r\n favoriteElement.addEventListener('click', self.handleLoggedOutFavorites);\r\n }\r\n },\r\n\r\n /**\r\n * @private\r\n * showLogInForSaveToFavorites: propmts a modal asking the user to log in in order to save more favorites.\r\n *\r\n * @param {HTML} element with the url for login\r\n */\r\n showLogInForSaveToFavorites(element) {\r\n 'use strict';\r\n\r\n if (element === null) {\r\n return;\r\n }\r\n const url = element.href || element.alt || element.dataset.modalUrl;\r\n window.NewHomeSource.ModalLoader.showModal(url);\r\n },\r\n\r\n handleLoggedOutFavorites(event) {\r\n 'use strict';\r\n\r\n // Get the pendingSaveItem cookie to check for pending favorites to be saved.\r\n const pendingItems = document.cookie.match(/pendingSaveItem=([^;]+)/);\r\n const temporalSavedItems = pendingItems ? JSON.parse(pendingItems[1]) : [];\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const wasPropertyUnsaved =\r\n window.NHS.Scripts.Favorites.prototype.removeFromCookie(temporalSavedItems, this.dataset.id);\r\n const saveButton = event.target.closest('[data-full-image-viewer-save-button]');\r\n\r\n if (wasPropertyUnsaved) {\r\n if (saveButton) {\r\n saveButton.setAttribute('data-event', 'true');\r\n }\r\n return;\r\n }\r\n\r\n if (saveButton) {\r\n saveButton.removeAttribute('data-event');\r\n }\r\n\r\n // add the new pending favorite to the list of pending items.\r\n temporalSavedItems.push(JSON.stringify({\r\n element: this.id,\r\n category: this.dataset.category,\r\n type: this.dataset.type,\r\n id: this.dataset.id,\r\n url: this.dataset.url,\r\n name: this.dataset.name,\r\n dataset: this.dataset\r\n }));\r\n\r\n // add the new pending favorite to the cookie.\r\n const cookie = [\r\n 'pendingSaveItem',\r\n '=',\r\n JSON.stringify(temporalSavedItems),\r\n '; domain=.',\r\n window.location.host.toString(),\r\n '; path=/;'\r\n ].join('');\r\n\r\n document.cookie = cookie;\r\n\r\n // If the user is not logged in, show the login modal.\r\n if (window.auth0Dom) {\r\n window.auth0Dom.signIn({});\r\n }\r\n },\r\n\r\n removeFromCookie(items, id) {\r\n 'use strict';\r\n\r\n const itemIndex = items.map((item) => JSON.parse(item).id).indexOf(id);\r\n\r\n if (itemIndex >= 0) {\r\n items.splice(itemIndex, 1);\r\n const cookie =\r\n ['pendingSaveItem',\r\n '=',\r\n JSON.stringify(items),\r\n '; domain=.',\r\n window.location.host.toString(),\r\n '; path=/;'\r\n ].join('');\r\n document.cookie = cookie;\r\n }\r\n\r\n return itemIndex >= 0;\r\n },\r\n // link is a dom element\r\n unSavedFavs(link, category, itemId, id) {\r\n 'use strict';\r\n\r\n const self = this;\r\n\r\n if (link.classList.contains('nhs_favLogin')) {\r\n return;\r\n }\r\n\r\n const data = {\r\n Id: id\r\n };\r\n\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('POST', self.params.urlBase + '/favorites/delete', true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.send(JSON.stringify(data));\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState !== 4) {\r\n return;\r\n }\r\n\r\n if (xhr.status === 200) {\r\n const response = JSON.parse(xhr.response);\r\n\r\n if (response.Saved) {\r\n document.body.dispatchEvent &&\r\n document.body.dispatchEvent(new CustomEvent('trackIdentifySaveItems', {\r\n detail: { data: link }\r\n }));\r\n\r\n self.updateStylesToUnsaved(category, itemId, link);\r\n }\r\n }\r\n };\r\n },\r\n // link is a dom element\r\n saveToFavs(link, category, type, id, url, name) {\r\n 'use strict';\r\n\r\n const self = this;\r\n const itemId = id;\r\n\r\n self.logSegmentEvent((type === 'HomePlan' || type === 'HomeSpec')\r\n ? 'Home Favorited'\r\n : 'Community Favorited', type, id);\r\n\r\n if (self.params && typeof (self.params.logInfo) === 'undefined') {\r\n self.params.logInfo = { marketId: self.params.marketId, partnerId: self.params.partnerId };\r\n\r\n if (category === 'homeresults' && type === 'HomePlan') {\r\n self.params.logInfo.planId = id;\r\n } else if (category === 'homeresults' && type === 'HomeSpec') {\r\n self.params.logInfo.specificationId = id;\r\n } else {\r\n self.params.logInfo.communityId = id;\r\n }\r\n }\r\n\r\n self.logEvents(category, type, id, self);\r\n\r\n const data = {\r\n Type: type,\r\n Id: id,\r\n FavoriteUrl: url,\r\n Title: name\r\n };\r\n\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('POST', self.params.urlBase + '/favorites/save', true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.send(JSON.stringify(data));\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState !== 4) {\r\n return;\r\n }\r\n\r\n if (xhr.status === 200) {\r\n const response = JSON.parse(xhr.response);\r\n\r\n if (response.Saved) {\r\n self.logSegmentEvent((type === 'HomePlan' || type === 'HomeSpec') ? 'Home Saved'\r\n : 'Community Saved', type, id);\r\n\r\n document.body.dispatchEvent &&\r\n document.body.dispatchEvent(new CustomEvent('trackIdentifySaveItems', {\r\n detail: { data: link }\r\n }));\r\n\r\n // send this event only to manufactured listings\r\n const isManufactured = link.parentElement.querySelector('[data-display-mf-events]');\r\n if (isManufactured) {\r\n const gaEvent = {\r\n event: 'GAEvent',\r\n eventType: 'GAEvent',\r\n eventCategory: 'TDV Event',\r\n eventAction: 'Listing Saved',\r\n eventLabel: 'homes-srp-mfgcard-fav',\r\n };\r\n document.body.dispatchEvent &&\r\n document.body.dispatchEvent(new CustomEvent('trackOnDemandEvent', {\r\n detail: { data: gaEvent }\r\n }));\r\n }\r\n\r\n self.updateStylesToSaved(category, itemId, response, link);\r\n }\r\n }\r\n };\r\n },\r\n\r\n logEvents(category, type, id) {\r\n 'use strict';\r\n\r\n const self = this;\r\n\r\n if (typeof self.params.logInfo === 'undefined') {\r\n return;\r\n }\r\n\r\n const log = logger || self.params.logInfo;\r\n\r\n if (category === 'commheader') {\r\n log.googlepush('Community Detail Events', 'Community - Gallery', 'Save to favorites');\r\n } else if (category === 'commfooter') {\r\n log.googlepush('Community Detail Events', 'Community - Next Steps', 'Save to favorites');\r\n } else if (category === 'mpcheader') {\r\n log.googlepush('Community Detail Events', 'Master Plan Community - Header', 'Save to favorites');\r\n } else if (category === 'mpcfooter') {\r\n log.googlepush('Community Detail Events', 'Master Plan Community - Next Steps', 'Save to favorites');\r\n } else if (category === 'homeheader') {\r\n log.googlepush('Home Detail Events', 'Home - Gallery', 'Save to favorites');\r\n } else if (category === 'homefooter') {\r\n log.googlepush('Home Detail Events', 'Home - Next Steps', 'Save to favorites');\r\n } else if (category === 'mainviewer') {\r\n log.googlepush('Gallery Detail Pages', 'Favorite', 'Favorite Heart Icon clicks');\r\n\r\n if (type === 'Community') {\r\n log.logEventWithParameters('CDSTC', self.params.logInfo);\r\n } else {\r\n log.logEventWithParameters('HOMSTC', self.params.logInfo);\r\n }\r\n } else if (category === 'homesgrid') {\r\n const homeLogInfo = Object.assign(self.params.logInfo);\r\n\r\n log.googlepush('Image Viewer', 'Image Viewer', 'Image Viewer - Homes Favorite');\r\n\r\n if (type === 'HomePlan') {\r\n homeLogInfo.planId = id;\r\n } else if (type === 'HomeSpec') {\r\n homeLogInfo.specId = id;\r\n }\r\n\r\n log.logEventWithParameters('HOMSTC', homeLogInfo);\r\n } else if (category === 'commresults') {\r\n log.googlepush('Community Results Events', 'Community Item', 'Save to favorites');\r\n log.googlepush('Search Events', 'Search Results', 'Favorite Community');\r\n log.SetDataLayerPair('favoriteSaved');\r\n log.logEventWithParameters('SAVETOFAV_CR', self.params.logInfo);\r\n } else if (category === 'homeresults') {\r\n log.googlepush('Community Results Events', 'Home Item', 'Save to favorites');\r\n log.logEventWithParameters('SAVETOFAV_HR', self.params.logInfo);\r\n } else if (category === 'builder') {\r\n log.googlepush('Builder Showcase Events', 'Builder Showcase', 'Save to favorites');\r\n log.logEventWithParameters('SAVETOFAV_BSC', self.params.logInfo);\r\n } else if (category === 'nbyCommheader') {\r\n log.googlepush('Community Detail Events', 'Community - Gallery', 'Save to favorites');\r\n }\r\n },\r\n\r\n logSegmentEvent(segmentEvent, type, id) {\r\n 'use strict';\r\n\r\n const commonProperties = document.querySelector('#data-commonProperties_' + id);\r\n\r\n let eventForSegment = {\r\n event: segmentEvent,\r\n eventType: 'segmentEvent',\r\n home_id: type === 'HomePlan' ? id : null,\r\n spec_id: type === 'HomeSpec' ? id : null,\r\n };\r\n\r\n if (type === 'Community') {\r\n eventForSegment.community_id = id;\r\n }\r\n\r\n if (commonProperties && commonProperties.dataset) {\r\n eventForSegment = Object.assign(eventForSegment, commonProperties.dataset);\r\n }\r\n\r\n document.body.dispatchEvent && document.body.dispatchEvent(new CustomEvent('trackOnDemandEvent', {\r\n detail: { data: eventForSegment }\r\n }));\r\n },\r\n\r\n saveElement: function saveElement(elementToSave) {\r\n 'use strict';\r\n\r\n const self = this;\r\n\r\n self.saveToFavs(\r\n elementToSave,\r\n elementToSave.dataset.category,\r\n elementToSave.dataset.type,\r\n elementToSave.dataset.id,\r\n elementToSave.dataset.url,\r\n elementToSave.dataset.name,\r\n self\r\n );\r\n },\r\n\r\n unSaveElement(elementToUnsave) {\r\n 'use strict';\r\n\r\n const self = this;\r\n const itemId = elementToUnsave.dataset.element.replace('nhs_SaveItem', '');\r\n const id = elementToUnsave.dataset.favid;\r\n\r\n self.unSavedFavs(\r\n elementToUnsave,\r\n elementToUnsave.dataset.category,\r\n itemId,\r\n id,\r\n self\r\n );\r\n },\r\n\r\n updateStylesToSaved(category, itemId, response, link) {\r\n 'use strict';\r\n\r\n const self = this;\r\n if (category === '' ||\r\n category === 'mainviewer' ||\r\n category === 'homefooter' ||\r\n category === 'commheader' ||\r\n category === 'commfooter' ||\r\n category === 'commresults' ||\r\n category === 'homeresults' ||\r\n !link) {\r\n const savedElements =\r\n document.querySelectorAll(\r\n `.nhs_favSaved[data-element='nhs_SaveItem${itemId}']:not([data-component='full-image-viewer-favorites'])`\r\n );\r\n\r\n for (let i = 0; i < savedElements.length; i += 1) {\r\n savedElements[i].dataset.favid = response.Id;\r\n savedElements[i].style.display = 'block';\r\n }\r\n\r\n const unsaveElements =\r\n document.querySelectorAll(\r\n `.nhs_favUnsave[data-element='nhs_SavedItem${itemId}']:not([data-component='full-image-viewer-favorites']), [data-favorites-save]`\r\n );\r\n\r\n for (let i = 0; i < unsaveElements.length; i += 1) {\r\n unsaveElements[i].style.display = 'none';\r\n }\r\n\r\n if (category === 'mainviewer') {\r\n const heartElements = document.querySelectorAll(\"[data-component='full-image-viewer-favorites']\");\r\n for (let index = 0; index < heartElements.length; index += 1) {\r\n heartElements[index].dataset.favid = response.Id;\r\n heartElements[index].setAttribute('data-remove-local-storage', 'True');\r\n heartElements[index].firstElementChild.firstElementChild.style.display = 'none';\r\n heartElements[index].firstElementChild.lastElementChild.style.display = 'block';\r\n heartElements[index].classList.remove('nhs_favUnsave');\r\n heartElements[index].classList.add('nhs_favSaved');\r\n\r\n heartElements[index].onclick = function () {\r\n self.unSaveElement(heartElements[0], self);\r\n };\r\n }\r\n }\r\n } else if (category === 'nbyCommheader') {\r\n const savedItem = document.getElementById('nhs_SavedItem' + itemId);\r\n if (savedItem) {\r\n savedItem.style.display = 'block';\r\n savedItem.dataset.favid = response.Id;\r\n }\r\n\r\n const saveItem = document.getElementById('nhs_SaveItem' + itemId);\r\n if (saveItem) {\r\n saveItem.style.display = 'none';\r\n }\r\n } else if (link && link.parentElement) { // results pages\r\n const nextElement = link.parentElement.querySelector('[data-favorite-unsave]');\r\n\r\n if (nextElement) {\r\n nextElement.dataset.favid = response.Id;\r\n nextElement.style.display = 'block';\r\n }\r\n\r\n link.style.display = 'none';\r\n }\r\n },\r\n\r\n updateStylesToUnsaved(category, itemId, link) {\r\n 'use strict';\r\n\r\n const self = this;\r\n if (category === '' ||\r\n category === 'mainviewer' ||\r\n category === 'commheader' ||\r\n category === 'commfooter' ||\r\n category === 'commresults' ||\r\n category === 'homeresults') {\r\n const savedElements =\r\n document.querySelectorAll(`.nhs_favSaved[data-element='nhs_SaveItem${itemId}']:not([data-component='full-image-viewer-favorites'])`);\r\n\r\n for (let i = 0; i < savedElements.length; i += 1) {\r\n delete savedElements[i].dataset.favid;\r\n savedElements[i].style.display = 'none';\r\n }\r\n\r\n const unsaveElements =\r\n document.querySelectorAll(`.nhs_favUnsave[data-element='nhs_SavedItem${itemId}']:not([data-component='full-image-viewer-favorites']), [data-favorites-save]`);\r\n\r\n for (let i = 0; i < unsaveElements.length; i += 1) {\r\n unsaveElements[i].style.display = 'block';\r\n }\r\n\r\n if (category === 'mainviewer') {\r\n const heartElements = document.querySelectorAll(\"[data-component='full-image-viewer-favorites']\");\r\n for (let index = 0; index < heartElements.length; index += 1) {\r\n delete heartElements[index].dataset.favid;\r\n delete heartElements[index].dataset.removeLocalStorage;\r\n heartElements[index].firstElementChild.lastElementChild.style.display = 'none';\r\n heartElements[index].firstElementChild.firstElementChild.style.display = 'block';\r\n heartElements[index].classList.add('nhs_favUnsave');\r\n heartElements[index].classList.remove('nhs_favSaved');\r\n\r\n heartElements[index].onclick = function () {\r\n self.saveElement(heartElements[0], self);\r\n };\r\n }\r\n }\r\n } else if (category === 'nbyCommheader') {\r\n const saveItem = document.getElementById('nhs_SaveItem' + itemId);\r\n if (saveItem) {\r\n saveItem.style.display = 'block';\r\n delete saveItem.dataset.favid;\r\n }\r\n\r\n const savedItem = document.getElementById('nhs_SavedItem' + itemId);\r\n if (savedItem) {\r\n savedItem.style.display = 'none';\r\n }\r\n } else if (link) {\r\n link.style.display = 'none';\r\n delete link.dataset.favid;\r\n link.previousElementSibling.style.display = 'block';\r\n }\r\n },\r\n\r\n cancelEventAndStopPropagation(event) {\r\n 'use strict';\r\n\r\n const ev = event || window.event;\r\n ev.cancelBubble = true;\r\n ev.returnValue = false;\r\n\r\n if (ev.targetNode) {\r\n if (ev.stopPropagation) {\r\n ev.stopPropagation();\r\n }\r\n }\r\n\r\n if (ev.preventDefault) {\r\n ev.preventDefault();\r\n }\r\n },\r\n\r\n removeParam(parameter) {\r\n 'use strict';\r\n\r\n let url = document.location.href;\r\n const urlparts = url.split('?');\r\n\r\n if (urlparts.length >= 2) {\r\n const urlBase = urlparts.shift();\r\n const queryString = urlparts.join('?');\r\n\r\n const prefix = encodeURIComponent(parameter) + '=';\r\n const pars = queryString.split(/[&;]/g);\r\n\r\n for (let i = pars.length; i-- > 0;) {\r\n if (pars[i].lastIndexOf(prefix, 0) !== -1) {\r\n pars.splice(i, 1);\r\n }\r\n }\r\n\r\n url = urlBase + '?' + pars.join('&');\r\n window.history.pushState('', document.title, url);\r\n }\r\n return url;\r\n }\r\n };\r\n","NHS.Scripts.LazyLoad = function (parameters) {\r\n this.parameters = parameters;\r\n};\r\n\r\nNHS.Scripts.LazyLoad.prototype =\r\n {\r\n LazyLoadImages: function() {\r\n var self = this;\r\n\r\n jQuery(\"img.async\").error(function(element) {\r\n var parentElement = null;\r\n var mainImage = null;\r\n var cardSrpType = document.querySelector(\"[data-srp-card-type]\");\r\n\r\n var parentClass = element.currentTarget.parentElement.parentElement.getAttribute(\"class\");\r\n\r\n if (parentClass) {\r\n\r\n parentElement = element.currentTarget.parentElement.parentElement.parentElement;\r\n\r\n if (cardSrpType &&\r\n cardSrpType.getAttribute(\"data-srp-card-type\") === \"comm\" &&\r\n parentElement &&\r\n parentElement.querySelector(\".imgbox\")) {\r\n\r\n var isMainImage = !element.currentTarget.parentNode.parentNode.classList.contains(\"imgbox--sm\");\r\n var leftSideImage = parentElement.querySelector(\".imgbox--sm\");\r\n var rightSideImage = parentElement.querySelectorAll(\".imgbox--sm\")[1];\r\n\r\n mainImage = parentElement.querySelector(\".imgbox img\");\r\n parentElement.classList.remove(\"imgboxes--3\");\r\n\r\n if (isMainImage && mainImage) {\r\n self.setOnErrorSrcAttribute(mainImage, self.parameters.NoPhotoBig);\r\n }\r\n\r\n if (leftSideImage && rightSideImage) {\r\n leftSideImage.parentNode.removeChild(leftSideImage);\r\n rightSideImage.parentNode.removeChild(rightSideImage);\r\n mainImage.sizes = \"100vw\";\r\n // self.FitImageInContainer(mainImage, true);\r\n }\r\n\r\n } else if (cardSrpType &&\r\n cardSrpType.getAttribute(\"data-srp-card-type\") === \"home\" &&\r\n parentElement &&\r\n parentElement.querySelector(\".imgbox\")) {\r\n\r\n mainImage = parentElement.querySelector(\".imgbox img\");\r\n\r\n if (mainImage) {\r\n self.setOnErrorSrcAttribute(mainImage, self.parameters.NoPhotoBig);\r\n }\r\n\r\n } else if (self.parameters && (parentClass === \"mainImage\" || parentClass === \"nhs_ItemImages\")) {\r\n self.setOnErrorSrcAttribute(element.currentTarget, self.parameters.NoPhotoBig);\r\n } else if (self.parameters &&\r\n !(parentClass.indexOf(\" nhs_BrandImage \") > 0 || parentClass.indexOf(\"ad-thumb\") >= 0)) {\r\n self.setOnErrorSrcAttribute(element.currentTarget, self.parameters.NoPhotoSmall);\r\n } else {\r\n self.setOnErrorSrcAttribute(element.currentTarget, self._parameters.builderNoImageRoute);\r\n }\r\n }\r\n jQuery(element).removeClass(\"async\");\r\n });\r\n },\r\n\r\n setOnErrorSrcAttribute: function (image, url) {\r\n const parentElement = image.parentElement;\r\n if (parentElement.tagName === 'PICTURE') {\r\n const sources = parentElement.querySelectorAll('source');\r\n sources.forEach(function(source) {\r\n source.remove();\r\n });\r\n }\r\n image.onerror = null;\r\n image.setAttribute(\"src\", url);\r\n },\r\n\r\n LazyLoadImagesGroup: function (elements) {\r\n var self = this;\r\n jQuery(elements).error(function (element) {\r\n var parentClass = element.currentTarget.parentElement.getAttribute(\"class\");\r\n if (parentClass) {\r\n if (self.parameters && (parentClass === \"mainImage\" || parentClass === \"nhs_ItemImages\")) {\r\n element.currentTarget.setAttribute(\"src\", self.parameters.NoPhotoBig);\r\n } else if (self.parameters && !(parentClass.indexOf(\" nhs_BrandImage \") > 0 || parentClass.indexOf(\"ad-thumb\") >= 0)) {\r\n element.currentTarget.setAttribute(\"src\", self.parameters.NoPhotoSmall);\r\n } else {\r\n element.currentTarget.setAttribute(\"src\", \"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\");\r\n }\r\n }\r\n jQuery(element).removeClass(\"async\");\r\n });\r\n },\r\n\r\n IsThreeImageContainer: function (element) {\r\n if (element.parentElement &&\r\n element.parentElement.parentElement &&\r\n element.parentElement.parentElement.classList.contains(\"imgboxes--3\")) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n FitImageInContainer: function (image, isBigCardContainer) {\r\n var self = this;\r\n if (image.naturalWidth > 1 && image.naturalHeight > 1) {\r\n self.OnloadImage(image, isBigCardContainer);\r\n } else {\r\n image.addEventListener(\"load\", function () {\r\n self.OnloadImage(image, isBigCardContainer);\r\n });\r\n }\r\n },\r\n\r\n OnloadImage: function (image, isBigCardContainer) {\r\n var self = this;\r\n var parentElement = image.parentNode;\r\n\r\n var isSmallContainer = parentElement.classList.contains(\"imgbox--sm\");\r\n // constants for the comm box sizes, we were calculating offsetWidth|offsetHeight before, causing reflows and bottle necks\r\n // with this change the goal is to have faster cards in the new SRP design. Refer to: BDXNHS-4658 | BDXNHS-4665\r\n var heightForBigContainer = isBigCardContainer ? 178 : 128;\r\n var widthForBigContainer = 208;\r\n var heightForSmallContainer = 64;\r\n var widthForSmallContainer = 103;\r\n\r\n var imgWidth = image.naturalWidth;\r\n var imgHeight = image.naturalHeight;\r\n var boxWidth = isSmallContainer ? widthForSmallContainer : widthForBigContainer;\r\n var boxHeight = isSmallContainer ? heightForSmallContainer : heightForBigContainer;\r\n var imgRatio = imgWidth / imgHeight;\r\n var boxRatio = boxWidth / boxHeight;\r\n\r\n image.style.width = 'auto';\r\n image.style.height = 'auto';\r\n\r\n if (imgRatio > boxRatio) {\r\n image.classList.add(\"img--wider\");\r\n image.style.maxWidth = 'none';\r\n image.style.maxHeight = '100%';\r\n\r\n } else if (imgRatio < boxRatio) {\r\n image.classList.add(\"img--taller\");\r\n image.style.maxWidth = '100%';\r\n image.style.maxHeight = 'none';\r\n\r\n } else {\r\n image.classList.add(\"img--same\");\r\n image.style.maxWidth = '100%';\r\n image.style.maxHeight = 'none';\r\n }\r\n }\r\n };","// Set all the click events to show the modal\r\n(function auth0DomEventHandler(global) {\r\n 'use strict';\r\n\r\n // This method will display the modal, common method all the pages\r\n function signIn(options) {\r\n if (typeof (require) !== 'undefined') {\r\n require(['loadAuth0'], (loadAuth0) => {\r\n loadAuth0.load(options);\r\n });\r\n } else {\r\n const script = document.querySelector('#Auth0LockWebLogInJs');\r\n global.NHS.loadJs(script.value, 'nhs_Auth0LockWebLogInJs', () => {\r\n global.auth0LockWebLogIn.Show(global.AjaxHelper, global.extendHelper, options);\r\n });\r\n }\r\n }\r\n\r\n if (!global.auth0Params) {\r\n return;\r\n }\r\n\r\n // Set Listener for the click event data sign in\r\n document.querySelectorAll('[data-sign-in]').forEach((element) => {\r\n element.addEventListener('click', () => {\r\n signIn({\r\n eventsProperties: {\r\n click_target: 'Global Header - Sign In'\r\n }\r\n });\r\n });\r\n\r\n element.addEventListener('keyup', (event) => {\r\n if (event.keyCode === 13) {\r\n // Cancel the default action, if needed\r\n event.preventDefault();\r\n // Trigger the button element with a click\r\n signIn({});\r\n }\r\n });\r\n });\r\n\r\n // Set Listener for the click event data sign up\r\n document.querySelectorAll('[data-sign-up]').forEach((element) => {\r\n element.addEventListener('click', () => {\r\n signIn({ initialScreen: 'signUp' });\r\n });\r\n\r\n element.addEventListener('keyup', (event) => {\r\n if (event.keyCode === 13) {\r\n // Cancel the default action, if needed\r\n event.preventDefault();\r\n // Trigger the button element with a click\r\n signIn({ initialScreen: 'signUp' });\r\n }\r\n });\r\n });\r\n\r\n // The modal will automatic show if the nextpage is present\r\n if (global.auth0Params.nextPage) {\r\n signIn({ container: 'Auth0Login' });\r\n }\r\n\r\n global.auth0Dom = {\r\n signIn(options) {\r\n signIn(options);\r\n }\r\n };\r\n}(window));\r\n","/**\r\n * This module is to track pixel images.\r\n * This pixel images aren't visible in the DOM\r\n * For this reason we can not use intersection observer to lazy load.\r\n * To learn more read https://en.ryte.com/wiki/Tracking_Pixel\r\n */\r\n(function pixelTracker(global) {\r\n 'use strict';\r\n\r\n const pixelsImages = document.querySelectorAll('[data-pixel-image]');\r\n\r\n /**\r\n * @private\r\n *\r\n * loadPixels: load pixels need to track on NHS.\r\n */\r\n const loadPixels = () => {\r\n pixelsImages.forEach((element) => {\r\n const image = element;\r\n image.src = image.dataset.src;\r\n });\r\n };\r\n\r\n if (global.document.readyState === 'complete') {\r\n loadPixels();\r\n } else {\r\n global.addEventListener('load', loadPixels);\r\n }\r\n}(window));\r\n","/**\r\n * This module is to load scripts in NHS site.\r\n * The idea is to use the tag to download this resource.\r\n *\r\n * The attributes supported are:\r\n * src: where the resource URL is downloaded.\r\n * strategy: when to load your.\r\n *\r\n * Strategies that can be used:\r\n * lazyOnload: Load during idle time\r\n *\r\n * Example:\r\n * \r\n *\r\n */\r\n(function scriptComponent(global) {\r\n 'use strict';\r\n\r\n /**\r\n * Class represeting a script tag.\r\n */\r\n class ScriptComponent extends HTMLElement {\r\n /**\r\n * loadScript: fetch the script to download.\r\n */\r\n loadScript() {\r\n const script = document.createElement('script');\r\n script.src = this.getAttribute('src');\r\n script.defer = true;\r\n document.body.appendChild(script);\r\n script.remove();\r\n }\r\n\r\n /**\r\n * lazyOnload: download the script after document is complete.\r\n */\r\n lazyOnload() {\r\n if (document.readyState === 'complete') {\r\n setTimeout(() => {\r\n this.loadScript.call(this);\r\n }, 0);\r\n } else {\r\n global.addEventListener('load', () => {\r\n setTimeout(() => {\r\n this.loadScript.call(this);\r\n }, 0);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * connectedCallback: Executed each time the tag is inserted.\r\n */\r\n connectedCallback() {\r\n const strategy = this.getAttribute('strategy');\r\n if (this[strategy]) {\r\n this[strategy]();\r\n return;\r\n }\r\n\r\n this.loadScript();\r\n }\r\n }\r\n\r\n customElements.define('script-component', ScriptComponent);\r\n}(window));\r\n","(function homePageTypeahead() {\r\n 'use strict';\r\n\r\n const homeSearchBtn = document.querySelector('[data-search-typeahead]');\r\n\r\n function triggerTypeaheadEvent() {\r\n const form = this.closest('form');\r\n const inputText = form.querySelector('#SearchText');\r\n const infoGa4 = inputText.closest('[data-ga4-info-event-name]');\r\n if (infoGa4) {\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\r\n document.body.dispatchEvent(new CustomEvent('trackOnDemandEvent', {\r\n detail: { data: eventGa4 }\r\n }));\r\n }\r\n }\r\n\r\n if (homeSearchBtn) {\r\n homeSearchBtn.addEventListener('click', triggerTypeaheadEvent);\r\n }\r\n}());\r\n"]}