var apiKey=document.getElementById("apiKey").value,storeApp=angular.module("FindAStoreWidget",["ngResource","uiGmapgoogle-maps","google.places",]).config(["uiGmapGoogleMapApiProvider",function(n){n.configure({key:apiKey,v:"3.33",libraries:["places","geometry"]})}]);storeApp.controller("WidgetController",["$scope",function(){}]);storeApp.factory("StoreService",["$q","$timeout","$resource",function(n,t,i){var r={resource:i("/api/Store/AllStores/:homepageId",{homepageId:"1264"},{})};return{getStores:function(n,t){var i={};return n!=null&&(i.homepageId=n),r.resource.query(i,function(n){typeof t=="function"&&t(n)})},reorder:function(n){return n.sort(function(n,t){return n.storeInfo.isGallery?t.storeInfo.isGallery?n.distanceFromCenter!=undefined&&t.distanceFromCenter!=undefined?n.distanceFromCenter-t.distanceFromCenter:0:-1:t.storeInfo.isGallery?n.storeInfo.isGallery?n.distanceFromCenter!=undefined&&t.distanceFromCenter!=undefined?n.distanceFromCenter-t.distanceFromCenter:0:1:n.distanceFromCenter!=undefined&&t.distanceFromCenter!=undefined?n.distanceFromCenter-t.distanceFromCenter:0}),n}}}]);storeApp.factory("MapService",["$timeout","$q",function(n,t){var i={init:function(n,t,i){this.map=n;this.maps=t;switch(parseInt(i)){case 3016:this.icons={gallery:"/img/map-markers/weathermaster/gspot-marker--gallery.png",pin:"/img/map-markers/weathermaster/gspot-marker2.png",cluster:{sm:"/img/map-markers/weathermaster/cluster--sml.png",md:"/img/map-markers/weathermaster/cluster--mid.png",lg:"/img/map-markers/weathermaster/cluster--lrg.png"}};break;default:this.icons={gallery:"/img/map-markers/default/gspot-marker--gallery.png",pin:"/img/map-markers/default/gspot-marker2.png",cluster:{sm:"/img/map-markers/default/cluster--sml.png",md:"/img/map-markers/default/cluster--mid.png",lg:"/img/map-markers/default/cluster--lrg.png"}}}},setCenter:function(n){this.center=n},getClosest:function(n,t){var r,u;return i.distances=[],r=new i.maps.LatLngBounds,r.extend(n),u=0,angular.forEach(t,function(t){t.distanceFromCenter=i.maps.geometry.spherical.computeDistanceBetween(n,t.position);t.distanceFromCenter<5e4&&t.position&&(r.extend(t.position),u++)}),u<1&&(t.sort(function(n,t){return n.distanceFromCenter-t.distanceFromCenter}),r.extend(t[0].position)),r},resetMap:function(n){var t=new i.maps.LatLngBounds;angular.forEach(n,function(n){t.extend(n.position)});i.map.fitBounds(t)},geolocate:function(n){var r=t.defer();return window.navigator&&window.navigator.geolocation&&navigator.geolocation.getCurrentPosition(function(t){var u=new i.maps.LatLng(t.coords.latitude,t.coords.longitude),f=i.getClosest(u,n);r.resolve(f)},function(n){var t={title:"Denied Access to user location.",message:n};r.reject(t)}),r.promise},buildMarker:function(n){var t=n.latLong.split(","),u=new i.maps.LatLng(t[0],t[1]),r={id:n.id,latitude:t[0],longitude:t[1],position:u,visible:!0,closeClick:function(){},storeInfo:n};return r.icon=n.isGallery?this.icons.gallery:this.icons.pin,r},clusterStyles:function(){return[{textColor:"white",url:this.icons.cluster.sm,height:35,width:35},{textColor:"white",url:this.icons.cluster.md,height:41,width:41},{textColor:"white",url:this.icons.cluster.lg,height:45,width:45},]}};return function(n,t,r,u){return i.init(n,t,r),typeof u=="function"&&u(),i}}]);storeApp.controller("MapController",["$scope","uiGmapGoogleMapApi","uiGmapIsReady","StoreService","$timeout","$interval","MapService",function(n,t,i,r,u,f,e){var o=null;n.siteId=document.getElementById("siteNode");n.loading=!0;n.markers=[];n.google={maps:"",place:""};n.autocompleteOptions={componentRestrictions:{country:"nz"},types:["geocode"]};t.then(function(t){n.google.maps=t;var i={center:{latitude:-40.900557,longitude:174.88597100000004},zoom:5,mapControl:{},markersControl:{},winControl:{},events:{bounds_changed:function(){if(o!=null){var t=o.map.getBounds();angular.forEach(n.markers,function(n){t.contains(n.position)?n.visible===!1&&(n.visible=!0):n.visible&&(n.visible=!1)});n.markers=r.reorder(n.markers)}}}};n.map=i});i.promise(1).then(function(){n.siteId==undefined&&(n.siteId={value:null});o=new e(n.map.mapControl.getGMap(),n.google.maps,n.siteId.value,function(){n.mapReady=!0})});n.$watch("mapReady",function(){n.mapReady&&(n.siteId==undefined&&(n.siteId={value:null}),n.storeQuery=r.getStores(n.siteId.value,function(t){n.loading=!1;angular.forEach(t,function(t){if(t.latLong.indexOf(",")>-1){var i=o.buildMarker(t);n.markers.push(i)}});var i=f(function(){var t=n.map.markersControl.getGMarkers(),r;t.length==n.markers.length&&(r={maxZoom:20,styles:o.clusterStyles()},n.markerCluster=new MarkerClusterer(o.map,t,r),f.cancel(i))},1e3);o.geolocate(n.markers).then(function(t){o.map.fitBounds(t);n.geolocated=!0},function(){n.geolocatedBlocked=!0});o.maps.event.trigger(o.map,"bounds_changed")}))});n.$watch("google",function(t){if(t!=undefined&&t.place.geometry!=undefined){var i=t.place.geometry.location,r=o.getClosest(i,n.markers);o.map.fitBounds(r)}},!0);n.geolocate=function(){n.geolocated?o.geolocate(n.markers).then(function(n){o.map.fitBounds(n)}):o.resetMap(n.markers)};n.resetMap=function(t){t?(n.google.place="",o.resetMap(n.markers)):n.google.place==""&&o.resetMap(n.markers)};n.book=function(n){var t=$("#supportModules .neareststore"),u,i,r;t.length>0?(u=-1,t.find("option").each(function(i,r){r.value==n.storeInfo.name&&(u=i,$(r).attr("selected","selected"),t.closest("form").find(".c-field.storeemail").length>0&&t.closest("form").find(".c-field.storeemail").children("input").val(n.storeInfo.storeEmail))}),u>-1&&(i=t.closest("form"),i.length>0&&(r=i.offset().top,$("html, body").animate({scrollTop:r-300},"slow")))):$("#supportModules .storechoice").length>0&&(t=$("#supportModules .storechoice"),t.find("input")[0].value=n.storeInfo.name,i=$("#supportModules form"),r=i.offset().top,$("html, body").animate({scrollTop:r-300},"slow"))}}])