let DealerLocatorWidget=function(n,t){if(n){this.config=Object.assign({rootElementQuerySelector:".dealer-locator-widget",dealersResultsContainerSelector:".dealer-locator-widget__results-container",formSelector:'form[name="DealerLocatorWidgetForm"]',userLocationFieldSelector:'input[name="q"]',submitButtonSelector:"button[type=submit]",useMyLocationButtonSelector:"button[name=UseMyLocation]",restartSearchButtonSelector:"button[name=RestartLocatorSearch]",handlebarsContainerQuerySelector:"#DealerLocatorWidgetResult",dataProductFeedContainer:"#productFeedContainer",dataTemplate:"data-template",dataTotal:"data-total",dataCurrent:"data-current",dataContainer:"data-container",dataPageSize:"data-page-size",pageSizeParam:"dealersPageSize",pageNumParam:"dealersPageNum",counterParam:"counter"},t);let i=document.querySelector(n);i&&(this.rootElement=i.querySelector(this.config.rootElementQuerySelector),this.rootElement)&&(this.disableAutoSearch=this.rootElement.getAttribute("data-disable-auto-search")==="true",this.init())}};DealerLocatorWidget.prototype.init=function(){let n=this;n.ConfigureFormInputListeners();n.GetDefaultLocation();n.ConfigureHandlebarsListeners();n.ConfigureWindowResizeListeners()};DealerLocatorWidget.prototype.GetDefaultLocation=function(){let n=this,t=n.rootElement.querySelector(n.config.formSelector);LocationService.getUserLocationInfo(function(i,r){if(!i){const u=t.querySelector(n.config.userLocationFieldSelector),f=t.querySelector(n.config.submitButtonSelector);u.value=r.zipPostalCode;n.disableAutoSearch||f.click()}})};DealerLocatorWidget.prototype.ConfigureFormInputListeners=function(){let n=this,t=n.rootElement.querySelector(n.config.formSelector);const r=t.querySelector(n.config.submitButtonSelector);r.addEventListener("click",function(t){t.preventDefault();n.GetDealers()});const u=t.querySelector(n.config.useMyLocationButtonSelector);u.addEventListener("click",function(t){t.preventDefault();n.GetDefaultLocation()});const i=n.rootElement.querySelector(n.config.restartSearchButtonSelector);i&&i.addEventListener("click",function(t){t.preventDefault();n.RestartSearch()})};DealerLocatorWidget.prototype.ConfigureHandlebarsListeners=function(){let n=this,t=n.rootElement.querySelector(n.config.handlebarsContainerQuerySelector);t.addEventListener("itemsCreatedFromJson",function(){let t=n.rootElement.querySelector(n.config.dealersResultsContainerSelector);showElement(t);addLoader(!1);n.SetCollapsedCardsMaxHeight()})};DealerLocatorWidget.prototype.ConfigureWindowResizeListeners=function(){let n=this;window.addEventListener("resize",function(){debounce(function(){n.SetCollapsedCardsMaxHeight()},500)()})};DealerLocatorWidget.prototype.SetCollapsedCardsMaxHeight=function(){let n=this,t=n.rootElement.querySelector(n.config.dealersResultsContainerSelector);if(t){let i=[].slice.call(t.querySelectorAll(".dealer-info .js-collapsed-result"));i.map(function(n){if(!isElementHidden(n))return{card:n};let t=n.parentElement.querySelector(".js-expanded-result");return hideElement(t),showElement(n),{card:n,expandedCard:t}}).map(function(n){let t=n.card,i=n.expandedCard;return t.style.maxHeight="none",t.style.maxHeight=t.getBoundingClientRect().height+"px",{card:t,expandedCard:i}}).map(function(n){let i=n.card,t=n.expandedCard;return t?(hideElement(i),showElement(t),{card:i,expandedCard:t}):{card:i,expandedCard:t}})}};DealerLocatorWidget.prototype.GetDealers=function(n){function e(n){n[0].Users.map(function(t){return t.distance=LocationService.distance(n[0].searchLatitude,n[0].searchLongitude,t.latitude,t.longitude).toFixed(2),t});let i=t.rootElement.querySelector(t.config.handlebarsContainerQuerySelector);elementIsNotNull(i)&&HandlebarsBolt.CreateItemsFromJson(n,i.id)}function o(n){console.log(n);addLoader(!1)}const t=this;n=n||{};let r=t.rootElement.querySelector(t.config.formSelector),f=r.getAttribute("data-dealers-feed"),i=new URLSearchParams(new FormData(r));for(let t in n)i.set(t,n[t]);let u=r.querySelector(t.config.userLocationFieldSelector);(i.get("q")&&(u.value=i.get("q")),u.value!=="")&&(addLoader(!0),Request.Fetch().get(f+"&"+i.toString(),e,o,!0))};DealerLocatorWidget.prototype.RestartSearch=function(){let n=this,i=n.rootElement.querySelector(n.config.dealersResultsContainerSelector),r=n.rootElement.querySelector(n.config.formSelector),t=r.querySelector(n.config.userLocationFieldSelector);hideElement(i);t.value="";t.focus()};DealerLocatorWidget.GetProductsById=function(n){let t=Array.from(n.split(","));return classesAndModels.reduce(function(n,i){let r=i.products.filter(function(n){return t.includes(n.Model)});return r&&r.forEach(function(t){n.push({name:t.Name,path:t.URL,primaryGroupId:t.PrimaryGroupId})}),n},[])};DealerLocatorWidget.RenderProductLinks=function(){const n=this;document.querySelectorAll("[data-load-product-names]").forEach(function(t){if(elementIsNotNull(t)){const i=n.GetProductsById(t.getAttribute("data-load-product-names"));n.MakeAnchorsFromCollection(i,t)}})};DealerLocatorWidget.MakeAnchorsFromCollection=function(n,t){let i=[];n.forEach(function(n){let t='<a href="'+n.path+'" class="u-no-padding u-ta-underline" target="_blank">'+n.name+"<\/a>";i.push(t)});t.innerHTML=i.join(", ")};DealerLocatorWidget.userInputZipCodeListener=function(){let n=document.querySelector(".dealer-locator-widget"),t="UserSuppliedLocation";n.addEventListener("change",function(n){if(n.target.classList.contains(t)){let t=n.target.value;LocationService.clearUserCache;LocationService.getUserLocationInfoAsync({zip:t}).then(n=>{window.sessionStorage.setItem(LocationService.locationSessionStorageKey,JSON.stringify(n))}).catch(()=>etc)}})};document.addEventListener("DOMContentLoaded",function(){elementIsNotNullOrEmpty(document.querySelector("#productFeedContainer"))&&(classesAndModels=getClassesAndModels(document.querySelector("#productFeedContainer").getAttribute("data-product-feed"),function(){}));DealerLocatorWidget.userInputZipCodeListener()})