wpsl-gmap.min.js 26.3 KB
var wpsl=wpsl||{};function initWpslMap(){var e;e=setInterval(function(){"object"==typeof google&&"object"==typeof google.maps&&(clearInterval(e),jQuery(".wpsl-gmap-canvas").each(function(e){var t=jQuery(this).attr("id");wpsl.gmaps.init(t,e)}))},500)}wpsl.gmaps={},jQuery(document).ready(function(e){var t,s,o,n,i,l,a,r,p,c,d,w,g,u,m,f=[],h=[],v=[],S={},b={},C={},y=!1,L=!1,k="undefined"!=typeof wpslSettings?wpslSettings.autoLoad:"",x={},I={enabled:void 0!==wpslSettings.collectStatistics,addressComponents:""};function M(){var e,t,s={};return void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle?(e=wpslSettings.infoBoxClearance.split(","),t=wpslSettings.infoBoxPixelOffset.split(","),s={alignBottom:!0,boxClass:wpslSettings.infoBoxClass,closeBoxMargin:wpslSettings.infoBoxCloseMargin,closeBoxURL:wpslSettings.infoBoxCloseUrl,content:"",disableAutoPan:!!Number(wpslSettings.infoBoxDisableAutoPan),enableEventPropagation:!!Number(wpslSettings.infoBoxEnableEventPropagation),infoBoxClearance:new google.maps.Size(Number(e[0]),Number(e[1])),pixelOffset:new google.maps.Size(Number(t[0]),Number(t[1])),zIndex:Number(wpslSettings.infoBoxZindex)},a=new InfoBox(s)):a=new google.maps.InfoWindow,a}function E(e,t){G(e,0,"",!0,t),W(e,y,k,t)}function N(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function R(t,s){if(navigator.geolocation){var o,n,i=Number(wpslSettings.geoLocationTimeout);o=setInterval(function(){e(".wpsl-icon-direction").toggleClass("wpsl-active-icon")},600),n=setTimeout(function(){O(o),E(t,s)},i),navigator.geolocation.getCurrentPosition(function(i){O(o),clearTimeout(n),X(!1),P(t,i,y,s),e(".wpsl-search").addClass("wpsl-geolocation-run")},function(o){if(e(".wpsl-icon-direction").hasClass("wpsl-user-activated")&&!e(".wpsl-search").hasClass("wpsl-geolocation-run")){switch(o.code){case o.PERMISSION_DENIED:alert(wpslGeolocationErrors.denied);break;case o.POSITION_UNAVAILABLE:alert(wpslGeolocationErrors.unavailable);break;case o.TIMEOUT:alert(wpslGeolocationErrors.timeout);break;default:alert(wpslGeolocationErrors.generalError)}e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}else e(".wpsl-search").hasClass("wpsl-geolocation-run")||(clearTimeout(n),E(t,s))},{maximumAge:6e4,timeout:i,enableHighAccuracy:!0})}else alert(wpslGeolocationErrors.unavailable),E(t,s)}function O(t){clearInterval(t),e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}function P(e,t,o,n){if(void 0===t)E(e,n);else{var i=new google.maps.LatLng(t.coords.latitude,t.coords.longitude);x={position:t,newRequest:!0},s.setCenter(i),G(i,0,"",!0,n),W(i,o,k,n)}}function T(){void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&void 0!==f[0]&&f[0].close()}function z(t,o){e(".wpsl-icon-reset, #wpsl-reset-map").on("click",function(){e(this).hasClass("wpsl-in-progress")||(1==wpslSettings.autoLoad&&(k=1),s.getCenter().lat()===C.centerLatlng.lat()&&s.getCenter().lng()===C.centerLatlng.lng()&&s.getZoom()===C.zoomLevel||(X(!1),e("#wpsl-search-input").val("").removeClass(),e(".wpsl-icon-reset").addClass("wpsl-in-progress"),r&&r.clearMarkers(),U(),function(){var t,s,o,n,i,l,a,r,p=e("#wpsl-wrap").hasClass("wpsl-default-filters"),c=[wpslSettings.searchRadius+" "+wpslSettings.distanceUnit,wpslSettings.maxResults],d=["wpsl-radius","wpsl-results"];for(t=0,s=d.length;t<s;t++)e("#"+d[t]+" select").val(parseInt(c[t])),e("#"+d[t]+" li").removeClass(),"wpsl-radius"==d[t]?o=wpslSettings.searchRadius:"wpsl-results"==d[t]&&(o=wpslSettings.maxResults),e("#"+d[t]+" li").each(function(){e(this).text()===c[t]&&(e(this).addClass("wpsl-selected-dropdown"),e("#"+d[t]+" .wpsl-selected-item").html(c[t]).attr("data-value",o))});e("#wpsl-category").length&&(e("#wpsl-category select").val(0),e("#wpsl-category li").removeClass(),e("#wpsl-category li:first-child").addClass("wpsl-selected-dropdown"),n=e("#wpsl-category li:first-child").text(),e("#wpsl-category .wpsl-selected-item").html(n).attr("data-value",0));e(".wpsl-custom-dropdown").length>0&&e(".wpsl-custom-dropdown").each(function(t){p?e(this).find("option").removeAttr("selected"):(i=e(this).siblings("div"),l=i.find("li:first-child"),a=l.text(),r=l.attr("data-value"),i.find("li").removeClass(),i.prev().html(a).attr("data-value",r))})}(),1==wpslSettings.autoLocate?P(t,x.position,!0,o):E(t,o)),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide())})}function U(){void 0!==p&&""!==p&&(p.setMap(null),p="")}function Z(t){var i,l,a,c,d;for(T(),d=t.parents("li").length>0?t.parents("li").data("store-id"):t.parents(".wpsl-info-window").data("store-id"),void 0!==p&&""!==p&&(l=p.getPosition()),b={centerLatlng:s.getCenter(),zoomLevel:s.getZoom()},i=0,c=h.length;i<c;i++)0!=h[i].storeId||void 0!==l&&""!==l?h[i].storeId==d&&(a=h[i].getPosition()):l=h[i].getPosition();l&&a?(e("#wpsl-direction-details ul").empty(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),function(t,i){var l,a,c,d,w,g,u,m,f,v="";u="km"==wpslSettings.distanceUnit?"METRIC":"IMPERIAL";f={origin:t,destination:i,travelMode:wpslSettings.directionsTravelMode,unitSystem:google.maps.UnitSystem[u]},n.route(f,function(t,n){if(n==google.maps.DirectionsStatus.OK){if(o.setMap(s),o.setDirections(t),t.routes.length>0){for(d=t.routes[0],w=0;w<d.legs.length;w++)for(l=d.legs[w],g=0,a=l.steps.length;g<a;g++)c=l.steps[g],v=v+"<li><div class='wpsl-direction-index'>"+(g+1)+"</div><div class='wpsl-direction-txt'>"+c.instructions+"</div><div class='wpsl-direction-distance'>"+c.distance.text+"</div></li>";for(e("#wpsl-direction-details ul").append(v).before("<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>"+wpslLabels.back+"</a><div><span class='wpsl-total-distance'>"+d.legs[0].distance.text+"</span> - <span class='wpsl-total-durations'>"+d.legs[0].duration.text+"</span></div></div>").after("<p class='wpsl-direction-after'>"+t.routes[0].copyrights+"</p>"),e("#wpsl-direction-details").show(),w=0,a=h.length;w<a;w++)h[w].setMap(null);r&&r.clearMarkers(),void 0!==p&&""!==p&&p.setMap(null),e("#wpsl-stores").hide(),1==wpslSettings.templateId&&(m=e("#wpsl-gmap").offset(),e(window).scrollTop(m.top))}}else!function(e){var t;switch(e){case"NOT_FOUND":case"ZERO_RESULTS":t=wpslLabels.noDirectionsFound;break;case"OVER_QUERY_LIMIT":t=wpslLabels.queryLimit;break;default:t=wpslLabels.generalError}alert(t)}(n)})}(l,a)):alert(wpslLabels.generalError)}function B(e,t){var s,o,n;for(s=0,o=h.length;s<o;s++)h[s].storeId==e&&(n=h[s],"start"==t?n.setAnimation(google.maps.Animation.BOUNCE):n.setAnimation(null))}function $(s){var o={};void 0===wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)?o.address=e("#wpsl-search-input").val():(o.componentRestrictions=wpslSettings.geocodeComponents,void 0!==o.componentRestrictions.postalCode?o.componentRestrictions.postalCode=e("#wpsl-search-input").val():o.address=e("#wpsl-search-input").val()),t.geocode(o,function(e,t){t==google.maps.GeocoderStatus.OK?(I.enabled&&j(e),A(e[0].geometry.location,s)):ee(t)})}function A(e,t){G(e,0,"",!0,t),W(e,y,!1,t)}function V(s,o){var n,i=s.lat().toFixed(5),l=s.lng().toFixed(5);s.lat=function(){return parseFloat(i)},s.lng=function(){return parseFloat(l)},t.geocode({latLng:s},function(t,s){s==google.maps.GeocoderStatus.OK?(1==wpslSettings.autoLocate&&x.newRequest&&(""!==(n=function(e){var t,s,o,n,i,l={},a=e.length;for(t=0;t<a;t++){for(n=e[t].address_components.length,s=0;s<n;s++){if(o=e[t].address_components[s].types,/^postal_code$/.test(o)||/^postal_code,postal_code_prefix$/.test(o)){l.zip=e[t].address_components[s].long_name;break}/^locality,political$/.test(o)&&(l.locality=e[t].address_components[s].long_name)}if(void 0!==l.zip)break}i=void 0===l.zip&&void 0!==l.locality?l.locality:l.zip;return i}(t))&&e("#wpsl-search-input").val(n),x.newRequest=!1),wpslSettings.directionRedirect&&(c=t[0].formatted_address),I.enabled&&e("#wpsl-search-input").val().length>0&&e.isEmptyObject(I.addressComponents)&&j(t),o()):ee(s)})}function j(t){var s,o,n,i,l,a={},r={};for(s="GB"==(i=function(t){var s="";return e.each(t[0].address_components,function(e){if("country,political"==t[0].address_components[e].types.join(","))return s=t[0].address_components[e].short_name,!1}),s}(t))?{city:"postal_town",city_locality:"locality,political",region:"administrative_area_level_2,political",country:"administrative_area_level_1,political"}:{city:"locality,political",region:"administrative_area_level_1,political",country:"country,political"},o=t[0].address_components.length,u=0;u<o;u++)for(var p in n=t[0].address_components[u].types,s)s[p]==n.join(",")&&(t[0].address_components[u].long_name.length>0?r[p]=t[0].address_components[u].long_name:r[p]=t[0].address_components[u].short_name);for(var p in s)void 0===r[p]&&(a[p]=s[p]);if("GB"==i&&void 0!==a.city_locality&&void 0===a.city&&(a={}),Object.keys(a).length>0)for(l=t.length,u=1;u<l;u++)for(o=t[u].address_components.length,m=0;m<o;m++)for(var p in n=t[u].address_components[m].types,a)s[p]==n.join(",")&&(r[p]=t[u].address_components[m].long_name);void 0!==r.city_locality&&r.city_locality.length>0&&(r.city=r.city_locality,delete r.city_locality),I.addressComponents=r}function W(e,t,s,o){1==wpslSettings.directionRedirect||I.enabled?V(e,function(){D(e,t,s,o)}):D(e,t,s,o)}function D(t,o,n,i){var l,a,r="",p=e("#wpsl-listing-template").html(),c=e("#wpsl-stores ul"),d=wpslSettings.url+"img/ajax-loader.gif";a=function(t,s,o){var n,i,l,a,r,p="",c=e("#wpsl-wrap").hasClass("wpsl-mobile"),d=e("#wpsl-wrap").hasClass("wpsl-default-filters"),w={action:"store_search",lat:t.lat(),lng:t.lng()};s?(w.max_results=wpslSettings.maxResults,w.search_radius=wpslSettings.searchRadius):(c||d?(n=parseInt(e("#wpsl-results .wpsl-dropdown").val()),i=parseInt(e("#wpsl-radius .wpsl-dropdown").val())):(n=parseInt(e("#wpsl-results .wpsl-selected-item").attr("data-value")),i=parseInt(e("#wpsl-radius .wpsl-selected-item").attr("data-value"))),isNaN(n)?w.max_results=wpslSettings.maxResults:w.max_results=n,isNaN(i)?w.search_radius=wpslSettings.searchRadius:w.search_radius=i,void 0!==wpslSettings.categoryIds?w.filter=wpslSettings.categoryIds:e("#wpsl-category").length>0?(p=c||d?parseInt(e("#wpsl-category .wpsl-dropdown").val()):parseInt(e("#wpsl-category .wpsl-selected-item").attr("data-value")),isNaN(p)||0===p||(w.filter=p)):e("#wpsl-checkbox-filter").length>0&&e("#wpsl-checkbox-filter input:checked").length>0&&(w.filter=e("#wpsl-checkbox-filter input:checked").map(function(){return e(this).val()}).get().join(",")),e(".wpsl-custom-dropdown").length>0&&e(".wpsl-custom-dropdown").each(function(t){l="",a="",c||d?(l=e(this).attr("name"),a=e(this).val()):(l=e(this).attr("name"),a=e(this).next(".wpsl-selected-item").attr("data-value")),l&&a&&(w[l]=a)}),e(".wpsl-custom-checkboxes").length>0&&e(".wpsl-custom-checkboxes").each(function(t){(r=e(this).attr("data-name"))&&(w[r]=function(t){var s=e("[data-name="+t+"]"),o=[];return e(s).find("input:checked").each(function(t){o.push(e(this).val())}),o.join()}(r))}));1==o&&(void 0!==x.position?w.skip_cache=1:(w.autoload=1,void 0!==wpslSettings.categoryIds&&(w.filter=wpslSettings.categoryIds)));I.enabled&&0==o&&(w.search=e("#wpsl-search-input").val(),w.statistics=I.addressComponents);return w}(t,o,n),c.empty().append("<li class='wpsl-preloader'><img src='"+d+"'/>"+wpslLabels.preloader+"</li>"),e("#wpsl-wrap").removeClass("wpsl-no-results"),e.get(wpslSettings.ajaxurl,a,function(o){e(".wpsl-preloader").remove(),o.length>0&&void 0===o.addon?(e.each(o,function(e){_.extend(o[e],K),G(new google.maps.LatLng(o[e].lat,o[e].lng),o[e].id,o[e],!1,i),r+=_.template(p)(o[e])}),e("#wpsl-result-list").off("click",".wpsl-directions"),c.empty(),c.append(r),e("#wpsl-result-list").on("click",".wpsl-directions",function(){if(1!=wpslSettings.directionRedirect)return Z(e(this)),!1}),F(),e("#wpsl-result-list p:empty").remove()):(G(t,0,"",!0,i),l=function(){var e;e=void 0!==wpslSettings.noResults&&""!==wpslSettings.noResults?wpslSettings.noResults:wpslLabels.noResults;return e}(),e("#wpsl-wrap").addClass("wpsl-no-results"),c.html("<li class='wpsl-no-results-msg'>"+l+"</li>")),1==wpslSettings.runFitBounds?J():(s.setZoom(Number(wpslSettings.zoomLevel)),s.setCenter(h[0].position)),1==wpslSettings.resetMap&&(e.isEmptyObject(C)&&google.maps.event.addListenerOnce(s,"tilesloaded",function(){C={centerLatlng:s.getCenter(),zoomLevel:s.getZoom()},e("#wpsl-map-controls").addClass("wpsl-reset-exists"),e(".wpsl-icon-reset, #wpsl-reset-map").show()}),e(".wpsl-icon-reset").removeClass("wpsl-in-progress"))}),1!=wpslSettings.mouseFocus||N()||e("#wpsl-search-input").focus()}function F(){if(1==wpslSettings.markerClusters){var e,t=Number(wpslSettings.clusterZoom),o=Number(wpslSettings.clusterSize);isNaN(t)&&(t=""),isNaN(o)&&(o=""),void 0!==wpslSettings.excludeStartFromCluster&&1==wpslSettings.excludeStartFromCluster&&(e=h.slice(0)).splice(0,1),r=new MarkerClusterer(s,void 0===e?h:e,{gridSize:o,maxZoom:t})}}function G(t,o,n,i,l){var a,r,p,c;0===o?(n={store:wpslLabels.startPoint},a=S.url+wpslSettings.startMarker):a=void 0!==n.alternateMarkerUrl&&n.alternateMarkerUrl?n.alternateMarkerUrl:void 0!==n.categoryMarkerUrl&&n.categoryMarkerUrl?n.categoryMarkerUrl:S.url+wpslSettings.storeMarker,r={url:a,scaledSize:new google.maps.Size(Number(S.scaledSize[0]),Number(S.scaledSize[1])),origin:new google.maps.Point(Number(S.origin[0]),Number(S.origin[1])),anchor:new google.maps.Point(Number(S.anchor[0]),Number(S.anchor[1]))},p=new google.maps.Marker({position:t,map:s,optimized:!1,title:H(n.store),draggable:i,storeId:o,icon:r}),h.push(p),google.maps.event.addListener(p,"click",(c=s,function(){0!=o?void 0!==wpslSettings.markerStreetView&&1==wpslSettings.markerStreetView?function(e,t){(new google.maps.StreetViewService).getPanoramaByLocation(e,50,function(e,s){L=s==google.maps.StreetViewStatus.OK,t()})}(t,function(){q(p,Y(n),l,c)}):q(p,Y(n),l,c):q(p,wpslLabels.startPoint,l,c),google.maps.event.clearListeners(l,"domready"),google.maps.event.addListener(l,"domready",function(){!function(t,s){e(".wpsl-info-actions a").on("click",function(o){var n=Number(wpslSettings.autoZoomLevel);if(o.stopImmediatePropagation(),e(this).hasClass("wpsl-directions")){if(1==wpslSettings.directionRedirect)return!0;Z(e(this))}else e(this).hasClass("wpsl-streetview")?function(t,s){var o=s.getStreetView();o.setPosition(t.getPosition()),o.setVisible(!0),e("#wpsl-map-controls").hide(),function(t,s){google.maps.event.addListener(t,"visible_changed",function(){if(!t.getVisible()){var o=s.getZoom();e("#wpsl-map-controls").show(),s.setZoom(o-1),s.setZoom(o)}})}(o,s)}(t,s):e(this).hasClass("wpsl-zoom-here")&&(s.setCenter(t.getPosition()),s.setZoom(n));return!1})}(p,c),Q()})})),i&&google.maps.event.addListener(p,"dragend",function(e){X(!0),s.setCenter(e.latLng),V(e.latLng),W(e.latLng,y,k=!1,l)})}function H(e){if(e)return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(t)})}(_.templateSettings={evaluate:/\<\%(.+?)\%\>/g,interpolate:/\<\%=(.+?)\%\>/g,escape:/\<\%-(.+?)\%\>/g},wpsl.gmaps.init=function(l,a){var r,p,c,d,w,g,u,m,f,h,b=Number(wpslSettings.zoomLevel),C=Number(wpslSettings.autoZoomLevel);c=function(e){var t,s,o,n=["zoomLevel","mapType","mapTypeControl","mapStyle","streetView","scrollWheel","controlPosition"],i={zoomLevel:wpslSettings.zoomLevel,mapType:wpslSettings.mapType,mapTypeControl:wpslSettings.mapTypeControl,mapStyle:wpslSettings.mapStyle,streetView:wpslSettings.streetView,scrollWheel:wpslSettings.scrollWheel,controlPosition:wpslSettings.controlPosition,gestureHandling:wpslSettings.gestureHandling};if(void 0!==window["wpslMap_"+e]&&void 0!==window["wpslMap_"+e].shortCode)for(t=0,s=n.length;t<s;t++)void 0!==(o=window["wpslMap_"+e].shortCode[n[t]])&&(i[n[t]]=o);return i.startLatLng=function(e){var t,s,o="";return void 0!==window["wpslMap_"+e]&&void 0!==window["wpslMap_"+e].locations&&(o=window["wpslMap_"+e].locations[0]),void 0!==o&&void 0!==o.lat&&void 0!==o.lng?t=new google.maps.LatLng(o.lat,o.lng):""!==wpslSettings.startLatlng?(s=wpslSettings.startLatlng.split(","),t=new google.maps.LatLng(s[0],s[1])):t=new google.maps.LatLng(0,0),t}(e),i}(a),(m=Number(c.zoomLevel))!==b&&(C=m),d=M(),t=new google.maps.Geocoder,o=new google.maps.DirectionsRenderer,n=new google.maps.DirectionsService,r={zoom:m,center:c.startLatLng,mapTypeId:google.maps.MapTypeId[c.mapType.toUpperCase()],mapTypeControl:!!Number(c.mapTypeControl),streetViewControl:!!Number(c.streetView),gestureHandling:c.gestureHandling,zoomControlOptions:{position:google.maps.ControlPosition[c.controlPosition.toUpperCase()+"_TOP"]}},"cooperative"!==c.gestureHandling&&(r.scrollwheel=!!Number(c.scrollWheel)),S=function(){var e,t=wpslSettings.markerIconProps,s={};void 0!==t.url?s.url=t.url:void 0!==t.categoryMarkerUrl?s.categoryMarkerUrl=t.categoryMarkerUrl:void 0!==t.alternateMarkerUrl?s.alternateMarkerUrl=t.alternateMarkerUrl:s.url=wpslSettings.url+"img/markers/";for(var o in t)t.hasOwnProperty(o)&&2==(e=t[o].split(",")).length&&(s[o]=e);return s}(),s=new google.maps.Map(document.getElementById(l),r),(f=function(e){try{var t=JSON.parse(e);if(t&&"object"==typeof t&&null!==t)return t}catch(e){}return!1}(f=c.mapStyle))&&s.setOptions({styles:f}),void 0!==window["wpslMap_"+a]&&void 0!==window["wpslMap_"+a].locations&&(g=new google.maps.LatLngBounds,u=window["wpslMap_"+a].locations,e.each(u,function(e){G(w=new google.maps.LatLng(u[e].lat,u[e].lng),u[e].id,u[e],!1,d),g.extend(w)}),u.length>1&&(oe(s,C),s.fitBounds(g)),_.isArray(wpslSettings.mapTabAnchor)&&(p={map:s,bounds:g,maxZoom:C},v.push(p))),e("#wpsl-gmap").length&&(1==wpslSettings.autoComplete&&function(){var t,s,o,n={};e("#wpsl-search-input").keypress(function(e){if(13==e.which)return ne(),$(d),!1}),void 0===wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)||(n.componentRestrictions=wpslSettings.geocodeComponents,n.componentRestrictions=_.omit(n.componentRestrictions,"postalCode"));if(void 0!==wpslSettings.autoCompleteOptions&&!e.isEmptyObject(wpslSettings.autoCompleteOptions))for(var l in wpslSettings.autoCompleteOptions)wpslSettings.autoCompleteOptions.hasOwnProperty(l)&&(n[l]=wpslSettings.autoCompleteOptions[l]);t=document.getElementById("wpsl-search-input"),(s=new google.maps.places.Autocomplete(t,n)).addListener("place_changed",function(){(o=s.getPlace()).geometry&&(i=o.geometry.location)})}(),!N()&&e(".wpsl-dropdown").length&&1==wpslSettings.enableStyledDropdowns?(h=Number(wpslSettings.maxDropdownHeight),e(".wpsl-dropdown").each(function(t){var s,o,n=e(this);n.$dropdownWrap=n.wrap("<div class='wpsl-dropdown'></div>").parent(),n.$selectedVal=n.val(),n.$dropdownElem=e("<div><ul/></div>").appendTo(n.$dropdownWrap),n.$dropdown=n.$dropdownElem.find("ul"),n.$options=n.$dropdownWrap.find("option"),n.hide().removeClass("wpsl-dropdown"),e.each(n.$options,function(){s=e(this).val()==n.$selectedVal?'class="wpsl-selected-dropdown"':"",n.$dropdown.append("<li data-value="+e(this).val()+" "+s+">"+e(this).text()+"</li>")}),n.$dropdownElem.before("<span data-value="+n.find(":selected").val()+" class='wpsl-selected-item'>"+n.find(":selected").text()+"</span>"),n.$dropdownItem=n.$dropdownElem.find("li"),n.$dropdownWrap.on("click",function(t){e(this).hasClass("wpsl-active")?e(this).removeClass("wpsl-active"):(te(),e(this).toggleClass("wpsl-active"),o=0,e(this).hasClass("wpsl-active")?(n.$dropdownItem.each(function(t){o+=e(this).outerHeight()}),n.$dropdownElem.css("height",o+2+"px")):n.$dropdownElem.css("height",0),o>h&&(e(this).addClass("wpsl-scroll-required"),n.$dropdownElem.css("height",h+"px")),t.stopPropagation())}),n.$dropdownItem.on("click",function(t){n.$dropdownWrap.find(e(".wpsl-selected-item")).html(e(this).text()).attr("data-value",e(this).attr("data-value")),n.$dropdownItem.removeClass("wpsl-selected-dropdown"),e(this).addClass("wpsl-selected-dropdown"),te(),t.stopPropagation()})}),e(document).click(function(){te()})):(e("#wpsl-search-wrap select").show(),N()?e("#wpsl-wrap").addClass("wpsl-mobile"):e("#wpsl-wrap").addClass("wpsl-default-filters")),e(".wpsl-search").hasClass("wpsl-widget")||(1==wpslSettings.autoLocate?R(c.startLatLng,d):1==wpslSettings.autoLoad&&E(c.startLatLng,d)),1!=wpslSettings.mouseFocus||N()||e("#wpsl-search-input").focus(),function(t){e("#wpsl-search-btn").unbind("click").bind("click",function(s){return e("#wpsl-search-input").removeClass(),e("#wpsl-search-input").val()?(ne(),1==wpslSettings.autoComplete&&void 0!==i?A(i,t):$(t)):e("#wpsl-search-input").addClass("wpsl-error").focus(),!1})}(d),function(t,s,o){google.maps.event.addListenerOnce(s,"tilesloaded",function(){e(".gm-style").append(wpslSettings.mapControls),e(".wpsl-icon-reset, #wpsl-reset-map").length>0&&(z(t.startLatLng,o),e(".wpsl-icon-reset").hide()),e(".wpsl-icon-direction").on("click",function(){e(this).addClass("wpsl-user-activated"),R(t.startLatLng,o)})})}(c,s,d),e(".wpsl-search").hasClass("wpsl-widget")&&(e("#wpsl-search-btn").trigger("click"),e(".wpsl-search").removeClass("wpsl-widget"))),void 0!==wpslSettings.markerZoomTo&&1==wpslSettings.markerZoomTo&&google.maps.event.addListener(s,"zoom_changed",function(){Q()})},e(".wpsl-gmap-canvas").length&&(e("<img />").attr("src",wpslSettings.url+"img/ajax-loader.gif"),e(".wpsl-gmap-canvas").each(function(t){var s=e(this).attr("id");wpsl.gmaps.init(s,t)}),function(){var t,o;if(_.isArray(wpslSettings.mapTabAnchor))for(t=0,o=v.length;t<o;t++)se(v[t],wpslSettings.mapTabAnchor[t],t);else e("a[href='#"+wpslSettings.mapTabAnchor+"']").length&&se(s,wpslSettings.mapTabAnchor)}()),e("#wpsl-result-list").on("click",".wpsl-back",function(){var t,n;for(o.setMap(null),t=0,n=h.length;t<n;t++)h[t].setMap(s);return void 0!==p&&""!==p&&p.setMap(s),r&&F(),s.setCenter(b.centerLatlng),s.setZoom(b.zoomLevel),e(".wpsl-direction-before, .wpsl-direction-after").remove(),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide(),!1}),e("#wpsl-gmap").length&&("bounce"==wpslSettings.markerEffect?(e("#wpsl-stores").on("mouseenter","li",function(){B(e(this).data("store-id"),"start")}),e("#wpsl-stores").on("mouseleave","li",function(){B(e(this).data("store-id"),"stop")})):"info_window"==wpslSettings.markerEffect&&e("#wpsl-stores").on("mouseenter","li",function(){var t,o;for(t=0,o=h.length;t<o;t++)h[t].storeId==e(this).data("store-id")&&(google.maps.event.trigger(h[t],"click"),s.setCenter(h[t].position))})),void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters)&&google.maps.event.addListener(s,"zoom_changed",function(){google.maps.event.addListenerOnce(s,"idle",function(){if(void 0!==r&&(d=r.clusters_).length)for(u=0,w=d.length;u<w;u++)for(m=0,g=d[u].markers_.length;m<g;m++)if(d[u].markers_[m].storeId==l){a.getVisible()&&null===d[u].markers_[m].map?a.setVisible(!1):a.getVisible()||null===d[u].markers_[m].map||a.setVisible(!0);break}})});function q(e,t,s,o){f.length=0,s.setContent(t),s.open(o,e),f.push(s),void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters&&(l=e.storeId,s.setVisible(!0))}function Q(){s.getZoom()>=wpslSettings.autoZoomLevel?e(".wpsl-zoom-here").hide():e(".wpsl-zoom-here").show()}var K={formatPhoneNumber:function(e){return(1==wpslSettings.phoneUrl&&N()||1==wpslSettings.clickableDetails)&&(e="<a href='tel:"+K.formatClickablePhoneNumber(e)+"'>"+e+"</a>"),e},formatClickablePhoneNumber:function(e){return-1!=e.indexOf("+")&&-1!=e.indexOf("(0)")&&(e=e.replace("(0)","")),e.replace(/(-| |\(|\)|\.|)/g,"")},formatEmail:function(e){return 1==wpslSettings.clickableDetails&&(e="<a href='mailto:"+e+"'>"+e+"</a>"),e},createInfoWindowActions:function(t){var s,o="",n="";return e("#wpsl-gmap").length&&(L&&(o="<a class='wpsl-streetview' href='#'>"+wpslLabels.streetView+"</a>"),1==wpslSettings.markerZoomTo&&(n="<a class='wpsl-zoom-here' href='#'>"+wpslLabels.zoomHere+"</a>"),s="<div class='wpsl-info-actions'>"+K.createDirectionUrl(t)+o+n+"</div>"),s},createDirectionUrl:function(t){var s,o,n={};return 1==wpslSettings.directionRedirect?(void 0===c&&(c=""),n.target="target='_blank'",void 0!==t?n.src=e("[data-store-id="+t+"] .wpsl-directions").attr("href"):(o=this.zip?this.zip+", ":"",s=this.address+", "+this.city+", "+o+this.country,n.src="https://www.google.com/maps/dir/?api=1&origin="+K.rfc3986EncodeURIComponent(c)+"&destination="+K.rfc3986EncodeURIComponent(s)+"&travelmode="+wpslSettings.directionsTravelMode.toLowerCase())):n={src:"#",target:""},"<a class='wpsl-directions' "+n.target+" href='"+n.src+"'>"+wpslLabels.directions+"</a>"},rfc3986EncodeURIComponent:function(e){return encodeURIComponent(e).replace(/[!'()*]/g,escape)}};function Y(t){var s;return s=e("#wpsl-base-gmap_0").length?e("#wpsl-cpt-info-window-template").html():e("#wpsl-info-window-template").html(),_.template(s)(t)}function J(){var e,t,o=Number(wpslSettings.autoZoomLevel),n=new google.maps.LatLngBounds;for(oe(s,o),e=0,t=h.length;e<t;e++)n.extend(h[e].position);s.fitBounds(n)}function X(e){var t,s;if(o.setMap(null),h){for(s=0,t=h.length;s<t;s++)e?1!=h[s].draggable?h[s].setMap(null):p=h[s]:h[s].setMap(null);h.length=0}r&&r.clearMarkers()}function ee(e){var t;switch(e){case"ZERO_RESULTS":t=wpslLabels.noResults;break;case"OVER_QUERY_LIMIT":t=wpslLabels.queryLimit;break;default:t=wpslLabels.generalError}alert(t)}function te(){e(".wpsl-dropdown").removeClass("wpsl-active"),e(".wpsl-dropdown div").css("height",0)}function se(t,s,o){var n,i,l,a,r,p=!!Number(wpslSettings.mapTabAnchorReturn),c=e("a[href='#"+s+"']");l=void 0!==t.maxZoom?t.maxZoom:Number(wpslSettings.autoZoomLevel),void 0!==o&&0==o&&c.addClass("wpsl-fitbounds"),c.on("click",function(){return setTimeout(function(){void 0!==t.map?(a=t.bounds,r=t.map):r=t,n=r.getZoom(),i=r.getCenter(),google.maps.event.trigger(r,"resize"),c.hasClass("wpsl-fitbounds")||(oe(r,l),r.setZoom(n),r.setCenter(i),void 0!==a?r.fitBounds(a):J(),c.addClass("wpsl-fitbounds"))},50),p})}function oe(e,t){google.maps.event.addListenerOnce(e,"bounds_changed",function(){google.maps.event.addListenerOnce(e,"idle",function(){this.getZoom()>t&&this.setZoom(t)})})}function ne(){e("#wpsl-result-list ul").empty(),e("#wpsl-stores").show(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),e("#wpsl-direction-details").hide(),y=!1,T(),X(!1),U()}e("#wpsl-stores").on("click",".wpsl-store-details",function(){var t,s,o=e(this).parents("li"),n=o.data("store-id");if("info window"==wpslSettings.moreInfoLocation)for(t=0,s=h.length;t<s;t++)h[t].storeId==n&&google.maps.event.trigger(h[t],"click");else o.find(".wpsl-more-info-listings").is(":visible")?e(this).removeClass("wpsl-active-details"):e(this).addClass("wpsl-active-details"),o.siblings().find(".wpsl-store-details").removeClass("wpsl-active-details"),o.siblings().find(".wpsl-more-info-listings").hide(),o.find(".wpsl-more-info-listings").toggle();if("default"!=wpslSettings.templateId||"store listings"==wpslSettings.moreInfoLocation)return!1})});