(function(n,t,i){var r={init:function(){var r,u,t;this.container=n(".community-map");this.loadedMapCategories=[];this.isLoading=!1;r=this.container.find(".map-category");u={scrollwheel:!1,draggable:!1,zoom:14,mapTypeId:i.maps.MapTypeId.ROADMAP};this.map=new i.maps.Map(document.getElementById("map-canvas"),u);this.bounds=new i.maps.LatLngBounds;this.markers=[];this.geocoder=new i.maps.Geocoder;this.categoryReference={};t=n("body");r.each(n.proxy(this.mapCategories,this)).find(":checkbox").on("change",n.proxy(this.categoryClick,this));this.addCommunity(t.find("[itemprop=name]").text(),t.find("meta[itemprop=url]").attr("content"),t.find("[itemprop=description]").text(),t.find("*[itemprop=geo]").data("pinicon"),t.find("meta[itemprop=latitude]").attr("content"),t.find("meta[itemprop=longitude]").attr("content"));this.zoomToFit()},mapCategories:function(t,i){var r=n(i),u=r.data("pinicon"),f=r.data("categoryid"),e=r.data("categoryname");this.categoryReference[f]={pin:u,name:e}},showMarker:function(n){this.map.setZoom(16);this.map.setCenter(this.markers[n].getPosition())},zoomToFit:function(){this.bounds.isEmpty()||this.map.setCenter(this.bounds.getCenter())},addCommunity:function(n,t,r,u,f,e){if(f&&f!=0){var h=new i.maps.InfoWindow({content:n}),s=new i.maps.LatLng(f,e),c=this.map,o=new i.maps.Marker({map:this.map,position:s,icon:u,title:n});i.maps.event.addListener(o,"click",function(){h.open(c,o)});this.bounds.extend(s);this.markers.push(o);o.setMap(this.map)}},hideCategoryMarkers:function(n){for(var t=0;t<this.markers.length;t++)this.markers[t].category==n&&this.markers[t].setMap(null)},showCategoryMarkers:function(n){for(var t=0;t<this.markers.length;t++)this.markers[t].category==n&&this.markers[t].setMap(this.map)},categoryClick:function(t){var r,i;this.isLoading||(r=n(t.currentTarget).parent(),r.toggleClass("inactive"),i=r.data("categoryid"),r.hasClass("inactive")?this.hideCategoryMarkers(i):this.loadedMapCategories.indexOf(i)>=0?this.showCategoryMarkers(i):(this.retrieveCategoryBusinesses(i),this.loadedMapCategories.push(i)))},retrieveCategoryBusinesses:function(t){this.setLoading(!0);var r=new i.maps.places.PlacesService(this.map);r.nearbySearch({bounds:this.map.getBounds(),types:t.split(",")},n.proxy(this.onPlacesSearchRetrieved,this,t))},onPlacesSearchRetrieved:function(n,t){for(var r,i=0;i<t.length;i++)r=t[i],this.addBusinessToMap(r.name,n,r.geometry.location);this.setLoading(!1)},addBusinessToMap:function(n,t,r){var f=new i.maps.InfoWindow({content:n}),e=this.map,u=new i.maps.Marker({map:this.map,position:r,icon:this.categoryReference[t].pin,title:n});i.maps.event.addListener(u,"click",function(){f.open(e,u)});u.category=t;this.markers.push(u);u.setMap(this.map)},setLoading:function(n){this.isLoading=n;this.isLoading?this.container.addClass("loading"):this.container.removeClass("loading")}};r.init()})(jQuery,window,window.google)