void 0===window.StoreLocator&&(window.StoreLocator={config:{countryCode:"AT",languageCode:"de",queryString:null,initialPlaceId:null,displayedProduct:"psc",i18n:{}},fetchPosUrl:"/index.php?eID=storeLocator",ratePosUrl:"/index.php?eID=storeLocatorPosFeedback",ratePosCookie:"pscstorelocator",map:null,place:null,placeMarker:null,infoWindow:null,autocompleteService:null,geocoderService:null,geocoderResult:null,userGeoLocation:null,userAddress:null,timer:null,cachedAutocompleteRequests:[],posRequests:[],posMarkers:[],searchRequestInProgress:!1,init:function(e){for(let t in e)this.config[t]=e[t];this.initializeAutocompleteService(),this.initializeGeoLocation();let t=this;this.isTeaser()||(this.getDirectOnlyCheckbox()&&this.getDirectOnlyCheckbox().addEventListener("change",function(){this.getSearchFieldValue()&&this.displayLocation()}.bind(this)),e.queryString&&("mylocation"===e.queryString?this.locateMe():(this.setSearchFieldValue(e.queryString),this.displayLocation())),this.getForm().addEventListener("submit",function(e){e.preventDefault(),this.displayLocation()}.bind(this)),document.getElementById("storelocator-filter-open").addEventListener("change",(function(){t.applyFilters()})),document.getElementById("storelocator-filter-toprated").addEventListener("change",(function(){t.applyFilters()})),document.getElementsByTagName("header")[0].classList.add("bg-white"))},initializeAutocompleteService:function(){this.autocompleteService=new google.maps.places.AutocompleteService,this.geocoderService=new google.maps.Geocoder,this.getSearchField().addEventListener("input",this.debounce(function(e){this.hideNotFoundErrorSection();const t=this.getSearchFieldValue();t.length>=2?this.getAutocompleteSuggestions(this.getAutocompleteOptions(),function(e,o){this.cacheAutocompleteResult(t,e,o),this.searchRequestInProgress||this.autocompletePlacePredictionsDisplayResultsCallback(e,o)}.bind(this)):this.hideAutocompleteSection()}.bind(this),1e3)),document.addEventListener("click",function(e){const t=e.target.closest(".pac-item");if(t){const e=t.getAttribute("data-placeid"),o=t.querySelector(".pac-item-query").innerText;this.setSearchFieldValue(o),this.setPlaceIdHiddenFieldValue(e),this.hideAutocompleteSection(),this.isTeaser()||this.geocoderService.geocode({placeId:e},this.geocoderCallback.bind(this))}}.bind(this))},getAutocompleteOptions:function(){return{input:this.getSearchFieldValue(),types:["geocode"]}},forceAutocomplete:function(){if(this.getSearchFieldValue().length>0){if(this.config.initialPlaceId)return this.geocoderService.geocode({placeId:this.config.initialPlaceId},this.geocoderCallback.bind(this)),void(this.config.initialPlaceId=null);this.getAutocompleteSuggestions(this.getAutocompleteOptions(),function(e,t){if(t===google.maps.places.PlacesServiceStatus.OK){const t=e[0];this.setPlaceIdHiddenFieldValue(t.place_id),this.geocoderService.geocode({placeId:t.place_id},this.geocoderCallback.bind(this))}else this.showNotFoundErrorSection()}.bind(this))}else this.showNotFoundErrorSection()},isTeaser:function(){return!!document.querySelector(".js-storelocator-teaser")},getContainer:function(){return this.isTeaser()?document.querySelector(".js-storelocator-teaser"):document.querySelector(".js-storelocator")},getAutocompleteSuggestions:function(e,t){const o=e.input;if(this.searchRequestInProgress)return void this.hideAutocompleteSection();const s=this.getCachedAutocompleteResult(o);s?t(s.autocompleteResults,s.status):this.autocompleteService.getPlacePredictions(e,t)},autocompletePlacePredictionsDisplayResultsCallback:function(e,t){if(t===google.maps.places.PlacesServiceStatus.OK){let t="";e.forEach((function(e){t+='
'+e.description+"
"})),t.length>0&&(this.getAutocompleteResultsContainer().innerHTML=t,this.showAutocompleteSection(),document.addEventListener("click",function(e){e.target!==this.getAutocompleteSection()&&this.hideAutocompleteSection()}.bind(this)))}else this.showNotFoundErrorSection()},cacheAutocompleteResult:function(e,t,o){this.cachedAutocompleteRequests.push({queryString:e,autocompleteResults:t,status:o})},getCachedAutocompleteResult:function(e){let t;const o=this.cachedAutocompleteRequests.length;for(let s=0;s0?(t.querySelector(".js-pos-rating-amount").innerText=e.feedbackSum,e.feedbackAverage>=1&&(t.querySelector(".js-star-1-empty").style.display="none",t.querySelector(".js-star-1-full").style.display="inline"),e.feedbackAverage>=2&&(t.querySelector(".js-star-2-empty").style.display="none",t.querySelector(".js-star-2-full").style.display="inline"),e.feedbackAverage>=3&&(t.classList.add("filter-toprated"),t.querySelector(".js-star-3-empty").style.display="none",t.querySelector(".js-star-3-full").style.display="inline"),t.querySelector(".js-pos-rating").style.display="flex"):t.classList.add("filter-toprated");let o=e.shopImageUrl?e.shopImageUrl:e.posTypeLogo;"/fileadmin/posicon/_posicon_default_logo.svg"===o?t.querySelector(".js-pos-logo").remove():t.querySelector(".js-pos-logo").setAttribute("src",o),t.querySelector(".js-pos-header").innerText=e.name;let s=null;switch(e.messageType){case"INFO":s="sales-outlet__available";break;case"PROMO":s="sales-outlet__promo";break;case"WARN":s="sales-outlet__warning"}if(null!==s&&e.message&&(t.querySelector(".js-pos-message p").innerText=e.message,t.querySelector(".js-pos-message p").classList.add(s),t.querySelector(".js-pos-message").style.display="flex"),e.products&&(t.querySelector(".js-available-products").innerText=e.products,t.querySelector(".js-available-products-section").style.display="flex"),e.openingHours){for(const o in e.openingHours){let s=[];for(const t in e.openingHours[o].open)s.push(e.openingHours[o].open[t].begin+" - "+e.openingHours[o].open[t].end);s.length>0&&(t.querySelector(".js-open-"+o).innerText=s.join(", "),t.querySelector(".js-open-"+o+"-section").style.display="block",t.querySelector(".js-opening-hours-section").style.display="block")}if(this.isCurrentlyOpen(e.openingHours))t.querySelector(".js-open").style.display="block",t.classList.add("filter-open");else{t.querySelector(".js-closed").style.display="block";let o=this.nextOpeningTime(e.openingHours);o&&(t.querySelector(".js-opens-at").innerText=o,t.querySelector(".js-opens-at-span").style.display="inline")}}else t.classList.add("filter-open");let i=e.address+"
";i+=e.postalCode+" "+e.city,t.querySelector(".js-pos-text").innerHTML=i;let n="https://www.google.com/maps/dir/?api=1&destination="+e.latitude+", "+e.longitude;t.querySelector(".js-button-row-map-view .js-trigger-get-direction").href=n,t.querySelector(".js-button-row-list-view .js-trigger-get-direction").href=n,t.querySelector(".js-trigger-show-on-map").addEventListener("click",function(t){t.preventDefault(),this.highlightPosMarker(e.posId)}.bind(this)),t.querySelector(".js-trigger-rate-pos").addEventListener("click",function(t){t.preventDefault(),this.showRatingForm(e.posId)}.bind(this)),t.getElementsByClassName("js-button-row-list-view")[0].style.display="block",t.getElementsByClassName("js-button-row-map-view")[0].style.display="none",t.querySelector(".sales-outlet__open-collapse").setAttribute("id","openView"+e.posId),t.querySelector(".sales-outlet__open-view").setAttribute("href","#openView"+e.posId),t.querySelector(".sales-outlet__open-view").setAttribute("aria-controls","#openView"+e.posId),this.getPosResultList().prepend(t),this.loadMoreButton()},isCurrentlyOpen:function(e){const t=new Date,o=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"][t.getDay()],s=`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`;if(e[o])for(const t of e[o].open)if(s>=t.begin&&s<=t.end)return!0;return!1},nextOpeningTime:function(e){const t=new Date,o=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];let s=t.getDay();const i=s,n=`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`;for(let t=0;t<7;t++){const t=o[s];if(e[t])for(const o of e[t].open)if(String(i)+n<=String(s)+o.begin)return this.config.i18n[t]+", "+o.begin;s=(s+1)%7}return!1},loadMoreButton:function(){const e=document.querySelector(".js-load-more"),t=document.querySelectorAll(".js-result-list .js-pos-list-entry");e.style.display="block";for(let e=0;e<6;e++)t[e]&&(t[e].style.display="block");e.addEventListener("click",(o=>{o.preventDefault();for(let e=6;e<=t.length;e++)t[e]&&(t[e].style.display="block");e.style.display="none"}))},addPosMarker:function(e){if(e.latitude&&e.longitude){const t=new google.maps.Marker({map:this.map,position:new google.maps.LatLng(e.latitude,e.longitude),icon:e.posMarker,visible:!0,data:e}),o={url:"/fileadmin/posicon/_posicon_default_logo_active.svg",anchor:new google.maps.Point(43,65)};let s=this;google.maps.event.addListener(t,"click",(function(){"psc"===s.config.displayedProduct&&(s.resetMarkerIcons(),t.setIcon(o)),s.infoWindow&&s.infoWindow.close();const e=this.data;let i="";e.feedbackAverage>0&&(i=''+s.displayRatingStars(e.feedbackAverage)+' ('+e.feedbackSum+")
");let n="";if(e.directload&&(n='
'),s.infoWindow=new google.maps.InfoWindow({maxWidth:600,content:''+e.name+''+e.address+"
"+e.postalCode+" "+e.city+n+"
"+i}),document.getElementById("pos-list-entry-mobile").innerHTML=document.getElementById("pos"+t.data.posId).innerHTML,document.getElementById("pos-list-entry-mobile").getElementsByClassName("js-button-row-list-view")[0].style.display="none",document.getElementById("pos-list-entry-mobile").getElementsByClassName("js-button-row-map-view")[0].style.display="block",document.getElementById("pos-list-entry-mobile").querySelector(".js-trigger-rate-pos").addEventListener("click",(function(e){e.preventDefault(),s.showRatingForm(t.data.posId)})),null===document.getElementById("nav-tab").offsetParent){s.infoWindow.open(s.map,t),document.getElementById("pos"+t.data.posId).scrollIntoView({block:"nearest",inline:"nearest"});let e=document.getElementsByClassName("js-pos-list-entry"),o=e.length;for(let t=0;t=o?'':'';return t+="",t},highlightPosMarker:function(e){this.closeInfoWindow(),window.scrollTo(0,0);const t=this.posMarkers.length;for(let o=0;o0){let t=new google.maps.LatLngBounds;this.placeMarker&&t.extend(this.placeMarker.getPosition());for(let o=0;o17&&this.map.setZoom(17)}},showRatingForm:function(e){let t=this.getFirstNonTextChild(this.getPosRatingFormTemplate()).cloneNode(!0);t.setAttribute("data-pos-id",e);let o=this.getPosResultListEntryForPos(e);o.parentNode.insertBefore(t,o.nextSibling),document.getElementById("pos-list-entry-mobile").innerHTML=t.innerHTML,o.style.display="none",t.style.display="block";let s=[t,document.getElementById("pos-list-entry-mobile")];for(let o=0;o div");return e&&e.classList.add("js-search-not-found"),this.getNotFoundErrorSection().style.display="block"},hideNotFoundErrorSection:function(){let e=document.querySelector(".js-storelocator .js-map > div");return e&&e.classList.remove("js-search-not-found"),this.getNotFoundErrorSection().style.display="none"},hidePosResultSection:function(){},getPosResultListEntryTemplate:function(){return this.getContainer().querySelector(".js-pos-list-entry-template")},getPosResultListEntryForPos:function(e){return this.getContainer().querySelector('.js-pos-list-entry[data-pos-id="'+e+'"]')},getPosRatingFormTemplate:function(){return document.querySelector(".js-pos-rating-form-template")},getPosRatingFormForPos:function(e){return this.getContainer().querySelector('.js-pos-rating-form[data-pos-id="'+e+'"]')},getPosRatingDoneTemplate:function(){return document.querySelector(".js-pos-rating-done-template")},getPosRatingDoneForPos:function(e){return this.getContainer().querySelector('.js-pos-rating-done[data-pos-id="'+e+'"]')},getPosResultList:function(){return this.getContainer().querySelector(".js-result-list")},clearPosResultList:function(){const e=this.getPosResultList();for(;e.firstChild;)e.removeChild(e.firstChild)},showMapSection:function(){document.querySelector(".js-storelocator .js-header-text").style.visibility="hidden",document.querySelector(".js-storelocator .js-map-section").classList.add("show-map-section"),document.querySelector(".js-storelocator").classList.add("storelocator__active"),document.querySelector("header").classList.add("map-visible"),document.querySelector("section.breadcrumb-section").style.display="none"},getLocateMeButton:function(){return this.getContainer().querySelector(".js-locate-me-button")},getDirectOnlyCheckbox:function(){return this.getContainer().querySelector("input.js-direct-only-checkbox")},getDirectOnlyValue:function(){return null!==this.getContainer().querySelector("input.js-direct-only-checkbox:checked")},resetMarkerIcons:function(){const e=this.posMarkers.length;for(let t=0;t=0?s=setTimeout(a,t-c):(s=null,o||(l=e.apply(n,i),s||(n=i=null)))};return function(){n=this,i=arguments,r=Date.now();let c=o&&!s;return s||(s=setTimeout(a,t)),c&&(l=e.apply(n,i),n=i=null),l}},getFirstNonTextChild:function(e){let t=e.firstChild;for(;null!=t&&3===t.nodeType;)t=t.nextSibling;return t},scrollToTop:function(){window.scroll({top:0,left:0,behavior:"smooth"})}},window.StoreLocatorInit=window.StoreLocator.init.bind(StoreLocator));