document.addEventListener("DOMContentLoaded",function(){const locationButton=document.getElementById('useCurrentLocationSearch');if(!navigator.geolocation){locationButton.textContent="Geolocation not supported";locationButton.disabled=true;return;}
navigator.geolocation.getCurrentPosition(success,error);function success(position){locationButton.textContent="Use My Current Location";locationButton.disabled=false;}
function error(err){switch(err.code){case err.PERMISSION_DENIED:locationButton.textContent="Enable Location Services to search by your current location";locationButton.disabled=true;locationButton.className="buttonDisabled";break;default:locationButton.textContent="Location Services Error";locationButton.disabled=true;break;}}});;;
var homePageModule=(function(){$(document).on("keydown","form",function(event){return event.key!="Enter";});var findLocationsByCoordinatesLink=document.getElementById('useCurrentLocationSearch');if(findLocationsByCoordinatesLink){findLocationsByCoordinatesLink.addEventListener('click',useCurrentLocationSearch);}
function locationSearchSuccessCallback(position){let lat=position.coords.latitude;let lon=position.coords.longitude;document.location.href="/location/?"+new URLSearchParams({lat:lat,lon:lon,});}
function locationSearchErrorCallback(error){document.body.style.cursor="auto";document.getElementById('find-locations-message').classList.remove('d-none');}
function useCurrentLocationSearch(){document.body.style.cursor="wait";document.getElementById('find-locations-message').classList.add('d-none');navigator.geolocation.getCurrentPosition(locationSearchSuccessCallback,locationSearchErrorCallback);}
async function initAutocomplete(){var latHidden=document.getElementById('latHidden');var lonHidden=document.getElementById('lonHidden');var stateHidden=document.getElementById('stateHidden');var autoCompleteInput=document.getElementById('autoCompleteInput');var searchButton=document.getElementById('search-button');autoCompleteInput.addEventListener("keyup",()=>{searchButton.setAttribute("disabled","disabled")})
if(typeof taGoogleMapsApiKey==='undefined'||taGoogleMapsApiKey===null){return;}
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await(a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})
({key:taGoogleMapsApiKey,v:"weekly",libraries:'places'});const{Map}=await google.maps.importLibrary("maps");const acOptions={fields:["geometry","type","address_components.short_name"],strictBounds:false,types:["geocode"],componentRestrictions:{country:"us"}};const autocomplete=new google.maps.places.Autocomplete(autoCompleteInput,acOptions);autocomplete.addListener("place_changed",()=>{const place=autocomplete.getPlace();searchButton.removeAttribute("disabled");if(place.types.includes("administrative_area_level_1")){stateHidden.value=place.address_components[0].short_name;latHidden.value="";lonHidden.value="";}else{latHidden.value=place.geometry.location.lat();lonHidden.value=place.geometry.location.lng();stateHidden.value="";}});}
return{initAutocomplete:initAutocomplete};})();document.onload=homePageModule.initAutocomplete();;;
var locationAwareModule=(function(){var resultsDiv=document.getElementById('nearestLocationsSearchResults');var loadingDiv=document.getElementById('nearestLocationsLoading');function successCallback(position){let lat=position.coords.latitude;let lon=position.coords.longitude;fetch('/api/locations/coordinates/?'+new URLSearchParams({lat:lat,lon:lon,})).then((response)=>{if(!response.ok)throw new Error(response.status);resultsDiv.style.display="block";loadingDiv.style.display="none";response.text().then((text)=>{resultsDiv.innerHTML+=text;SetupAccordian();})}).catch(error=>errorCallback());}
function errorCallback(error){resultsDiv.remove();loadingDiv.remove();}
function SetupAccordian(){var acc=document.getElementById('nearestLocationsAccordion');acc.addEventListener("click",function(){var panel=document.getElementById('nearestLocationsPanel');if(panel.style.display==="block"){panel.style.display="none";}else{panel.style.display="block";}});}
return{nearestLocationSearch:function(){navigator.geolocation.getCurrentPosition(successCallback,errorCallback);}}})();document.addEventListener("DOMContentLoaded",function(){locationAwareModule.nearestLocationSearch();});;;
