function soGoogleMapInitialize(){jQuery(window.sowb).trigger("sow-google-map-loaded")}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(o,e,a){var t=Number(a.zoom);t||(t=14),window.matchMedia("(max-width: "+a.breakpoint+"px)").matches&&(t=a.mobileZoom);var i={zoom:t,gestureHandling:a.gestureHandling,disableDefaultUI:a.disableUi,zoomControl:a.zoomControl,panControl:a.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[window.google.maps.MapTypeId.ROADMAP,window.google.maps.MapTypeId.SATELLITE,"user_map_style"]}},s=new window.google.maps.Map(o,i),n={name:a.mapName},r=a.mapStyles;if(r){var l=new window.google.maps.StyledMapType(r,n);s.mapTypes.set("user_map_style",l),s.setMapTypeId("user_map_style")}a.markerAtCenter&&(this.centerMarker=new window.google.maps.Marker({position:e,map:s,draggable:a.markersDraggable,icon:a.markerIcon,title:""}),s.centerMarker=this.centerMarker),this.linkAutocompleteField(a.autocomplete,a.autocompleteElement,s,a),this.showMarkers(a.markerPositions,s,a),this.showDirections(a.directions,s,a),sowb.SiteOriginGoogleMapInstances.push(s)},linkAutocompleteField:function(e,a,t,i){if(e&&a){var s=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){t.setZoom(15),t.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=o(a);e.addListener("place_changed",function(){var o=e.getPlace();t.setZoom(15),o.geometry&&(t.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),window.google.maps.event.addListener(a,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),n.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),a=e.find(".pac-item-query").text(),t=e.find("span").not("[class]").text(),i=a+(t?", "+t:"");i&&s(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,a){if(a===window.google.maps.GeocoderStatus.OK&&e.length>0){var t=e[0].formatted_address;n.val(t),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(t))}}.bind(this))}.bind(this);t.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},showMarkers:function(o,e,a){if(o&&o.length){this.infoWindows=[];for(var t=[],i=0;i0){var n=s.data("options");n.autocomplete=i,n.autocompleteElement=t,this.getLocation(n.address).done(function(o){this.showMap(s.get(0),o,n),s.data("initialized",!0),a.resolve()}.bind(this)).fail((function(){s.append("

"+soWidgetsGoogleMap.geocode.noResults+"

"),a.reject()}))}}else a.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),a.always(function(){o(".sow-google-map-canvas").each(function(e,a){var t=o(a);if(t.data("initialized"))return!0;var i=t.data("options"),s=i.address;if(!s){var n=i.markerPositions;n&&n.length&&(s=n[0].place)}this.getLocation(s).done(function(o){this.showMap(t.get(0),o,i),t.data("initialized",!0)}.bind(this)).fail((function(){t.append("

"+soWidgetsGoogleMap.geocode.noResults+"

")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new window.google.maps.Geocoder),this._geocoder},getLocation:function(e){var a,t=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var s=e.replace(/[\(\)]/g,"").split(",");s&&2===s.length&&(a=new window.google.maps.LatLng(s[0],s[1]),isNaN(a.lat())||isNaN(a.lng())||(i={location:{lat:a.lat(),lng:a.lng()}}))}if(i.hasOwnProperty("location"))t.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var n=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[n]}var r=0,l=function(o,e){e===window.google.maps.GeocoderStatus.OK?t.resolve(o[0].geometry.location):e===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):t.reject(e):e!==window.google.maps.GeocoderStatus.ZERO_RESULTS&&e!==window.google.maps.GeocoderStatus.OVER_DAILY_LIMIT||t.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return t}}},jQuery(window.sowb).on("sow-google-map-loaded",(function(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()})),jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=[],sowb.setupGoogleMaps=function(e,a=!1){var t=o(".sow-google-map-canvas");t.length&&(o("body.wp-admin").length&&sowb.googleMapsData.libraries.push("places"),t.each((function(e,a){var t=o(a);if(t.data("apiInitialized"))return t;var i=t.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),t.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),(a||void 0===window.google.maps)&&(o("body.wp-admin").length&&o("#sow-google-maps-js").length?setTimeout((function(){soGoogleMapInitialize()}),250):(sowb.loadGoogleMapsAPI(a),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250))))},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&(e||void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError)&&o("#sow-google-maps-js").remove(),sowb.googleMapsData.apiKey||console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.");var a="https://maps.googleapis.com/maps/api/js?key="+sowb.googleMapsData.apiKey+"&callback=soGoogleMapInitialize";if(sowb.googleMapsData.libraries&&sowb.googleMapsData.libraries.length&&(a+="&libraries="+sowb.googleMapsData.libraries.join(",")),window.console&&window.console.error){var t=window.console.error;sowb.googleMapsData.ApiError=!1,sowb.onLoadMapsApiError=function(e){var a;"string"==typeof e&&(a=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),a&&a.length&&a[0]&&(o(".sow-google-map-canvas").each((function(e,a){var t=o(a);if(t.data("fallbackImage")){var i=t.data("fallbackImage");i.hasOwnProperty("img")&&t.append(i.img)}})),sowb.googleMapsData.ApiError=!0),t.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?(e&&o(".sow-google-map-consent button").off("click"),o(".sow-google-map-consent button").on("click",(function(){o(".sow-google-map-consent").remove(),o(".sow-google-map-canvas").show(),sowb.mapsApiInitialized||(o("body").append('