!function(){var moduleFactory=function($){var module=this,exports=function(){if(window.google&&window.google.maps)var GMaps=function(global){"use strict";var doc=document,getElementById=function(id,context){var ele;return ele="jQuery"in global&&context?$("#"+id.replace("#",""),context)[0]:doc.getElementById(id.replace("#",""))},GMaps=function(options){var self=this;window.context_menu={},this.div="string"==typeof options.div?getElementById(options.div,options.context):options.div,this.div.style.width=options.width||this.div.scrollWidth||this.div.offsetWidth,this.div.style.height=options.height||this.div.scrollHeight||this.div.offsetHeight,this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_div=null,this.zoom=options.zoom||15;
var mapType;mapType=options.mapType?google.maps.MapTypeId[options.mapType.toUpperCase()]:google.maps.MapTypeId.ROADMAP;var map_center=new google.maps.LatLng(options.lat,options.lng);delete options.div,delete options.lat,delete options.lng,delete options.mapType,delete options.width,delete options.height;var zoomControlOpt=options.zoomControlOpt||{style:"DEFAULT",position:"TOP_LEFT"},zoomControl=options.zoomControl||!0,zoomControlStyle=zoomControlOpt.style||"DEFAULT",zoomControlPosition=zoomControlOpt.position||"TOP_LEFT",panControl=options.panControl||!0,mapTypeControl=options.mapTypeControl||!0,scaleControl=options.scaleControl||!0,streetViewControl=options.streetViewControl||!0,overviewMapControl=overviewMapControl||!0,map_base_options={zoom:this.zoom,center:map_center,mapTypeId:mapType,panControl:panControl,zoomControl:zoomControl,zoomControlOptions:{style:google.maps.ZoomControlStyle[zoomControlStyle],position:google.maps.ControlPosition[zoomControlPosition]},mapTypeControl:mapTypeControl,scaleControl:scaleControl,streetViewControl:streetViewControl,overviewMapControl:overviewMapControl},map_options=extend_object(map_base_options,options);
this.map=new google.maps.Map(this.div,map_options);var buildContextMenuHTML=function(control,e){var html="",options=window.context_menu[control];for(var i in options)if(options.hasOwnProperty(i)){var option=options[i];html+='<li><a id="'+control+"_"+i+'" href="#">'+option.title+"</a></li>"}if(getElementById("gmaps_context_menu")){var context_menu_element=getElementById("gmaps_context_menu");context_menu_element.innerHTML=html;for(var context_menu_items=context_menu_element.getElementsByTagName("a"),context_menu_items_count=context_menu_items.length,i=0;context_menu_items_count>i;i++){var context_menu_item=context_menu_items[i],assign_menu_item_action=function(ev){ev.preventDefault(),options[this.id.replace(control+"_","")].action.call(self,e),self.hideContextMenu()
};google.maps.event.clearListeners(context_menu_item,"click"),google.maps.event.addDomListenerOnce(context_menu_item,"click",assign_menu_item_action,!1)}var left=self.div.offsetLeft+e.pixel.x-15,top=self.div.offsetTop+e.pixel.y-15;context_menu_element.style.left=left+"px",context_menu_element.style.top=top+"px",context_menu_element.style.display="block"}},buildContextMenu=function(control,e){if("marker"===control){e.pixel={};var overlay=new google.maps.OverlayView;overlay.setMap(self.map),overlay.draw=function(){var projection=overlay.getProjection(),position=e.marker.getPosition();
e.pixel=projection.fromLatLngToContainerPixel(position),buildContextMenuHTML(control,e)}}else buildContextMenuHTML(control,e)};this.setContextMenu=function(options){window.context_menu[options.control]={};for(var i in options.options)if(options.options.hasOwnProperty(i)){var option=options.options[i];window.context_menu[options.control][option.name]={title:option.title,action:option.action}}var ul=doc.createElement("ul");ul.id="gmaps_context_menu",ul.style.display="none",ul.style.position="absolute",ul.style.minWidth="100px",ul.style.background="white",ul.style.listStyle="none",ul.style.padding="8px",ul.style.boxShadow="2px 2px 6px #ccc",doc.body.appendChild(ul);
var context_menu_element=getElementById("gmaps_context_menu");google.maps.event.addDomListener(context_menu_element,"mouseout",function(ev){ev.relatedTarget&&this.contains(ev.relatedTarget)||window.setTimeout(function(){context_menu_element.style.display="none"},400)},!1)},this.hideContextMenu=function(){var context_menu_element=getElementById("gmaps_context_menu");context_menu_element&&(context_menu_element.style.display="none")};for(var events_that_hide_context_menu=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],events_that_doesnt_hide_context_menu=["mousemove","mouseout","mouseover"],ev=0;ev<events_that_hide_context_menu.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){void 0==e&&(e=this),options[name]&&options[name].apply(this,[e]),self.hideContextMenu()
})}(this.map,events_that_hide_context_menu[ev]);for(var ev=0;ev<events_that_doesnt_hide_context_menu.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){void 0==e&&(e=this),options[name]&&options[name].apply(this,[e])})}(this.map,events_that_doesnt_hide_context_menu[ev]);google.maps.event.addListener(this.map,"rightclick",function(e){options.rightclick&&options.rightclick.apply(this,[e]),buildContextMenu("map",e)}),this.refresh=function(){google.maps.event.trigger(this.map,"resize")
},this.fitZoom=function(){for(var latLngs=[],markers_length=this.markers.length,i=0;markers_length>i;i++)latLngs.push(this.markers[i].getPosition());this.fitBounds(latLngs)},this.fitBounds=function(latLngs){for(var total=latLngs.length,bounds=new google.maps.LatLngBounds,i=0;total>i;i++)bounds.extend(latLngs[i]);this.map.fitBounds(bounds)},this.setCenter=function(lat,lng,callback){this.map.panTo(new google.maps.LatLng(lat,lng)),callback&&callback()},this.getDiv=function(){return this.div},this.zoomIn=function(value){this.zoom=this.map.getZoom()+value,this.map.setZoom(this.zoom)
},this.zoomOut=function(value){this.zoom=this.map.getZoom()-value,this.map.setZoom(this.zoom)};var native_methods=[];for(var method in this.map)"function"!=typeof this.map[method]||this[method]||native_methods.push(method);for(var i=0;i<native_methods.length;i++)!function(gmaps,scope,method_name){gmaps[method_name]=function(){return scope[method_name].apply(scope,arguments)}}(this,this.map,native_methods[i]);this.createControl=function(options){var control=doc.createElement("div");control.style.cursor="pointer",control.style.fontFamily="Arial, sans-serif",control.style.fontSize="13px",control.style.boxShadow="rgba(0, 0, 0, 0.398438) 0px 2px 4px";
for(var option in options.style)control.style[option]=options.style[option];control.textContent=options.text;for(var ev in options.events)!function(object,name){google.maps.event.addDomListener(object,name,function(){options.events[name].apply(this,[this])})}(control,ev);return control.index=1,control},this.addControl=function(options){var position=google.maps.ControlPosition[options.position.toUpperCase()];delete options.position;var control=this.createControl(options);return this.controls.push(control),this.map.controls[position].push(control),control
},this.createMarker=function(options){if(options.lat&&options.lng||options.position){var self=this,details=options.details,fences=options.fences,outside=options.outside,base_options={position:new google.maps.LatLng(options.lat,options.lng),map:null};delete options.lat,delete options.lng,delete options.fences,delete options.outside;var marker_options=extend_object(base_options,options),marker=new google.maps.Marker(marker_options);if(marker.fences=fences,options.infoWindow){marker.infoWindow=new google.maps.InfoWindow(options.infoWindow);
for(var info_window_events=["closeclick","content_changed","domready","position_changed","zindex_changed"],ev=0;ev<info_window_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){options.infoWindow[name]&&options.infoWindow[name].apply(this,[e])})}(marker.infoWindow,info_window_events[ev])}for(var marker_events=["animation_changed","clickable_changed","cursor_changed","draggable_changed","flat_changed","icon_changed","position_changed","shadow_changed","shape_changed","title_changed","visible_changed","zindex_changed"],marker_events_with_mouse=["dblclick","drag","dragend","dragstart","mousedown","mouseout","mouseover","mouseup"],ev=0;ev<marker_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(){options[name]&&options[name].apply(this,[this])
})}(marker,marker_events[ev]);for(var ev=0;ev<marker_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(me){me.pixel||(me.pixel=this.map.getProjection().fromLatLngToPoint(me.latLng)),options[name]&&options[name].apply(this,[me])})}(marker,marker_events_with_mouse[ev]);return google.maps.event.addListener(marker,"click",function(){this.details=details,options.click&&options.click.apply(this,[this]),marker.infoWindow&&(self.hideInfoWindows(),marker.infoWindow.open(self.map,marker))
}),(options.dragend||marker.fences)&&google.maps.event.addListener(marker,"dragend",function(){marker.fences&&self.checkMarkerGeofence(marker,function(m,f){outside(m,f)})}),marker}throw"No latitude or longitude defined"},this.addMarker=function(options){if(options.lat&&options.lng||options.position){var marker=this.createMarker(options);return marker.setMap(this.map),this.markers.push(marker),marker}throw"No latitude or longitude defined"},this.addMarkers=function(array){for(var marker,i=0;marker=array[i];i++)this.addMarker(marker);
return this.markers},this.hideInfoWindows=function(){for(var marker,i=0;marker=this.markers[i];i++)marker.infoWindow&&marker.infoWindow.close()},this.removeMarkers=function(collection){for(var collection=collection||this.markers,i=0;i<this.markers.length;i++)this.markers[i]===collection[i]&&this.markers[i].setMap(null);for(var new_markers=[],i=0;i<this.markers.length;i++)null!=this.markers[i].getMap()&&new_markers.push(this.markers[i]);this.markers=new_markers},this.drawOverlay=function(options){var overlay=new google.maps.OverlayView;
overlay.setMap(self.map);var auto_show=!0;return null!=options.auto_show&&(auto_show=options.auto_show),overlay.onAdd=function(){var div=doc.createElement("div");div.style.borderStyle="none",div.style.borderWidth="0px",div.style.position="absolute",div.style.zIndex=100,div.innerHTML=options.content,overlay.div=div;var panes=this.getPanes();options.layer||(options.layer="overlayLayer");var overlayLayer=panes[options.layer];overlayLayer.appendChild(div);for(var stop_overlay_events=["contextmenu","DOMMouseScroll","dblclick","mousedown"],ev=0;ev<stop_overlay_events.length;ev++)!function(object,name){google.maps.event.addDomListener(object,name,function(e){-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&document.all?(e.cancelBubble=!0,e.returnValue=!1):e.stopPropagation()
})}(div,stop_overlay_events[ev]);google.maps.event.trigger(this,"ready")},overlay.draw=function(){var projection=this.getProjection(),pixel=projection.fromLatLngToDivPixel(new google.maps.LatLng(options.lat,options.lng));options.horizontalOffset=options.horizontalOffset||0,options.verticalOffset=options.verticalOffset||0;var div=overlay.div,content=div.children[0],content_height=content.clientHeight,content_width=content.clientWidth;switch(options.verticalAlign){case"top":div.style.top=pixel.y-content_height+options.verticalOffset+"px";
break;default:case"middle":div.style.top=pixel.y-content_height/2+options.verticalOffset+"px";break;case"bottom":div.style.top=pixel.y+options.verticalOffset+"px"}switch(options.horizontalAlign){case"left":div.style.left=pixel.x-content_width+options.horizontalOffset+"px";break;default:case"center":div.style.left=pixel.x-content_width/2+options.horizontalOffset+"px";break;case"right":div.style.left=pixel.x+options.horizontalOffset+"px"}div.style.display=auto_show?"block":"none",auto_show||options.show.apply(this,[div])
},overlay.onRemove=function(){var div=overlay.div;options.remove?options.remove.apply(this,[div]):(overlay.div.parentNode.removeChild(overlay.div),overlay.div=null)},self.overlays.push(overlay),overlay},this.removeOverlay=function(overlay){overlay.setMap(null)},this.removeOverlays=function(){for(var item,i=0;item=self.overlays[i];i++)item.setMap(null);self.overlays=[]},this.removePolylines=function(){for(var item,i=0;item=self.polylines[i];i++)item.setMap(null);self.polylines=[]},this.drawPolyline=function(options){var path=[],points=options.path;
if(points.length)if(void 0===points[0][0])path=points;else for(var latlng,i=0;latlng=points[i];i++)path.push(new google.maps.LatLng(latlng[0],latlng[1]));for(var polyline=new google.maps.Polyline({map:this.map,path:path,strokeColor:options.strokeColor,strokeOpacity:options.strokeOpacity,strokeWeight:options.strokeWeight}),polyline_events=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],ev=0;ev<polyline_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){options[name]&&options[name].apply(this,[e])
})}(polyline,polyline_events[ev]);return this.polylines.push(polyline),polyline},this.drawCircle=function(options){options=extend_object({map:this.map,center:new google.maps.LatLng(options.lat,options.lng)},options),delete options.lat,delete options.lng;for(var polygon=new google.maps.Circle(options),polygon_events=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],ev=0;ev<polygon_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){options[name]&&options[name].apply(this,[e])
})}(polygon,polygon_events[ev]);return this.polygons.push(polygon),polygon},this.drawRectangle=function(options){options=extend_object({map:this.map},options);var latLngBounds=new google.maps.LatLngBounds(new google.maps.LatLng(options.bounds[0][0],options.bounds[0][1]),new google.maps.LatLng(options.bounds[1][0],options.bounds[1][1]));options.bounds=latLngBounds;for(var polygon=new google.maps.Rectangle(options),polygon_events=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],ev=0;ev<polygon_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){options[name]&&options[name].apply(this,[e])
})}(polygon,polygon_events[ev]);return this.polygons.push(polygon),polygon},this.drawPolygon=function(options){options=extend_object({map:this.map},options),options.paths.length>0&&options.paths[0].length>0&&(options.paths=array_map(options.paths,arrayToLatLng));for(var polygon=new google.maps.Polygon(options),polygon_events=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],ev=0;ev<polygon_events.length;ev++)!function(object,name){google.maps.event.addListener(object,name,function(e){options[name]&&options[name].apply(this,[e])
})}(polygon,polygon_events[ev]);return this.polygons.push(polygon),polygon},this.removePolygon=this.removeOverlay,this.removePolygons=function(){for(var item,i=0;item=self.polygons[i];i++)item.setMap(null);self.polygons=[]},this.getFromFusionTables=function(options){var events=options.events;delete options.events;var fusion_tables_options=options,layer=new google.maps.FusionTablesLayer(fusion_tables_options);for(var ev in events)!function(object,name){google.maps.event.addListener(object,name,function(e){events[name].apply(this,[e])
})}(layer,ev);return this.layers.push(layer),layer},this.loadFromFusionTables=function(options){var layer=this.getFromFusionTables(options);return layer.setMap(this.map),layer},this.getFromKML=function(options){var url=options.url,events=options.events;delete options.url,delete options.events;var kml_options=options,layer=new google.maps.KmlLayer(url,kml_options);for(var ev in events)!function(object,name){google.maps.event.addListener(object,name,function(e){events[name].apply(this,[e])})}(layer,ev);return this.layers.push(layer),layer
},this.loadFromKML=function(options){var layer=this.getFromKML(options);return layer.setMap(this.map),layer};var travelMode,unitSystem;this.getRoutes=function(options){switch(options.travelMode){case"bicycling":travelMode=google.maps.TravelMode.BICYCLING;break;case"driving":travelMode=google.maps.TravelMode.DRIVING;break;default:travelMode=google.maps.TravelMode.WALKING}unitSystem="imperial"===options.unitSystem?google.maps.UnitSystem.IMPERIAL:google.maps.UnitSystem.METRIC;var base_options={avoidHighways:!1,avoidTolls:!1,optimizeWaypoints:!1,waypoints:[]},request_options=extend_object(base_options,options);
request_options.origin=new google.maps.LatLng(options.origin[0],options.origin[1]),request_options.destination=new google.maps.LatLng(options.destination[0],options.destination[1]),request_options.travelMode=travelMode,request_options.unitSystem=unitSystem,delete request_options.callback;var self=this,service=new google.maps.DirectionsService;service.route(request_options,function(result,status){if(status===google.maps.DirectionsStatus.OK)for(var r in result.routes)result.routes.hasOwnProperty(r)&&self.routes.push(result.routes[r]);
options.callback&&options.callback(self.routes)})},this.removeRoutes=function(){this.routes=[]},this.getElevations=function(options){options=extend_object({locations:[],path:!1,samples:256},options),options.locations.length>0&&options.locations[0].length>0&&(options.locations=array_map(options.locations,arrayToLatLng));var callback=options.callback;delete options.callback;var service=new google.maps.ElevationService;if(options.path){var pathRequest={path:options.locations,samples:options.samples};service.getElevationAlongPath(pathRequest,function(result,status){callback&&"function"==typeof callback&&callback(result,status)
})}else delete options.path,delete options.samples,service.getElevationForLocations(options,function(result,status){callback&&"function"==typeof callback&&callback(result,status)})},this.cleanRoute=this.removePolylines,this.drawRoute=function(options){var self=this;this.getRoutes({origin:options.origin,destination:options.destination,travelMode:options.travelMode,waypoints:options.waypoints,callback:function(e){e.length>0&&(self.drawPolyline({path:e[e.length-1].overview_path,strokeColor:options.strokeColor,strokeOpacity:options.strokeOpacity,strokeWeight:options.strokeWeight}),options.callback&&options.callback(e[e.length-1]))
}})},this.travelRoute=function(options){if(options.origin&&options.destination)this.getRoutes({origin:options.origin,destination:options.destination,travelMode:options.travelMode,waypoints:options.waypoints,callback:function(e){if(e.length>0&&options.start&&options.start(e[e.length-1]),e.length>0&&options.step){var route=e[e.length-1];if(route.legs.length>0)for(var step,steps=route.legs[0].steps,i=0;step=steps[i];i++)step.step_number=i,options.step(step,route.legs[0].steps.length-1)}e.length>0&&options.end&&options.end(e[e.length-1])
}});else if(options.route&&options.route.legs.length>0)for(var step,steps=options.route.legs[0].steps,i=0;step=steps[i];i++)step.step_number=i,options.step(step)},this.drawSteppedRoute=function(options){if(options.origin&&options.destination)this.getRoutes({origin:options.origin,destination:options.destination,travelMode:options.travelMode,waypoints:options.waypoints,callback:function(e){if(e.length>0&&options.start&&options.start(e[e.length-1]),e.length>0&&options.step){var route=e[e.length-1];if(route.legs.length>0)for(var step,steps=route.legs[0].steps,i=0;step=steps[i];i++)step.step_number=i,self.drawPolyline({path:step.path,strokeColor:options.strokeColor,strokeOpacity:options.strokeOpacity,strokeWeight:options.strokeWeight}),options.step(step,route.legs[0].steps.length-1)
}e.length>0&&options.end&&options.end(e[e.length-1])}});else if(options.route&&options.route.legs.length>0)for(var step,steps=options.route.legs[0].steps,i=0;step=steps[i];i++)step.step_number=i,self.drawPolyline({path:step.path,strokeColor:options.strokeColor,strokeOpacity:options.strokeOpacity,strokeWeight:options.strokeWeight}),options.step(step)},this.checkGeofence=function(lat,lng,fence){return fence.containsLatLng(new google.maps.LatLng(lat,lng))},this.checkMarkerGeofence=function(marker,outside_callback){if(marker.fences)for(var fence,i=0;fence=marker.fences[i];i++){var pos=marker.getPosition();
self.checkGeofence(pos.lat(),pos.lng(),fence)||outside_callback(marker,fence)}},this.addLayer=function(layerName,options){options=options||{};var layer;switch(layerName){case"weather":this.singleLayers.weather=layer=new google.maps.weather.WeatherLayer;break;case"clouds":this.singleLayers.clouds=layer=new google.maps.weather.CloudLayer;break;case"traffic":this.singleLayers.traffic=layer=new google.maps.TrafficLayer;break;case"transit":this.singleLayers.transit=layer=new google.maps.TransitLayer;break;case"bicycling":this.singleLayers.bicycling=layer=new google.maps.BicyclingLayer;
break;case"panoramio":this.singleLayers.panoramio=layer=new google.maps.panoramio.PanoramioLayer,layer.setTag(options.filter),delete options.filter,options.click&&google.maps.event.addListener(layer,"click",function(event){options.click(event),delete options.click})}void 0!==layer&&(layer.setOptions(options),layer.setMap(this.map))},this.removeLayer=function(layerName){void 0!==this.singleLayers[layerName]&&(this.singleLayers[layerName].setMap(null),delete this.singleLayers[layerName])},this.toImage=function(options){var options=options||{},static_map_options={};
if(static_map_options.size=options.size||[this.div.clientWidth,this.div.clientHeight],static_map_options.lat=this.getCenter().lat(),static_map_options.lng=this.getCenter().lng(),this.markers.length>0){static_map_options.markers=[];for(var i=0;i<this.markers.length;i++)static_map_options.markers.push({lat:this.markers[i].getPosition().lat(),lng:this.markers[i].getPosition().lng()})}if(this.polylines.length>0){var polyline=this.polylines[0];static_map_options.polyline={},static_map_options.polyline.path=google.maps.geometry.encoding.encodePath(polyline.getPath()),static_map_options.polyline.strokeColor=polyline.strokeColor,static_map_options.polyline.strokeOpacity=polyline.strokeOpacity,static_map_options.polyline.strokeWeight=polyline.strokeWeight
}return GMaps.staticMapURL(static_map_options)}};return GMaps.Route=function(options){this.map=options.map,this.route=options.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length,this.polyline=this.map.drawPolyline({path:new google.maps.MVCArray,strokeColor:options.strokeColor,strokeOpacity:options.strokeOpacity,strokeWeight:options.strokeWeight}).getPath(),this.back=function(){if(this.step_count>0){this.step_count--;var path=this.route.legs[0].steps[this.step_count].path;
for(var p in path)path.hasOwnProperty(p)&&this.polyline.pop()}},this.forward=function(){if(this.step_count<this.steps_length){var path=this.route.legs[0].steps[this.step_count].path;for(var p in path)path.hasOwnProperty(p)&&this.polyline.push(path[p]);this.step_count++}}},GMaps.geolocate=function(options){navigator.geolocation?navigator.geolocation.getCurrentPosition(function(position){options.success(position),options.always&&options.always()},function(error){options.error(error),options.always&&options.always()
},options.options):(options.not_supported(),options.always&&options.always())},GMaps.geocode=function(options){this.geocoder=new google.maps.Geocoder;var callback=options.callback;options.lat&&options.lng&&(options.latLng=new google.maps.LatLng(options.lat,options.lng)),delete options.lat,delete options.lng,delete options.callback,this.geocoder.geocode(options,function(results,status){callback(results,status)})},GMaps.staticMapURL=function(options){function parseColor(color,opacity){if("#"===color[0]&&(color=color.replace("#","0x"),opacity)){if(opacity=parseFloat(opacity),opacity=Math.min(1,Math.max(opacity,0)),0===opacity)return"0x00000000";
opacity=(255*opacity).toString(16),1===opacity.length&&(opacity+=opacity),color=color.slice(0,8)+opacity}return color}var data,parameters=[],static_root="http://maps.googleapis.com/maps/api/staticmap";options.url&&(static_root=options.url,delete options.url),static_root+="?";var markers=options.markers;delete options.markers,!markers&&options.marker&&(markers=[options.marker],delete options.marker);var polyline=options.polyline;if(delete options.polyline,options.center)parameters.push("center="+options.center),delete options.center;
else if(options.address)parameters.push("center="+options.address),delete options.address;else if(options.lat)parameters.push(["center=",options.lat,",",options.lng].join("")),delete options.lat,delete options.lng;else if(options.visible){var visible=encodeURI(options.visible.join("|"));parameters.push("visible="+visible)}var size=options.size;size?(size.join&&(size=size.join("x")),delete options.size):size="630x300",parameters.push("size="+size),options.zoom||(options.zoom=15);var sensor=options.hasOwnProperty("sensor")?!!options.sensor:!0;
delete options.sensor,parameters.push("sensor="+sensor);for(var param in options)options.hasOwnProperty(param)&&parameters.push(param+"="+options[param]);if(markers)for(var marker,loc,i=0;data=markers[i];i++)marker=[],data.size&&"normal"!==data.size?marker.push("size:"+data.size):data.icon&&marker.push("icon:"+encodeURI(data.icon)),data.color&&marker.push("color:"+data.color.replace("#","0x")),data.label&&marker.push("label:"+data.label[0].toUpperCase()),loc=data.address?data.address:data.lat+","+data.lng,marker.length||0===i?(marker.push(loc),marker=marker.join("|"),parameters.push("markers="+encodeURI(marker))):(marker=parameters.pop()+encodeURI("|"+loc),parameters.push(marker));
if(polyline){if(data=polyline,polyline=[],data.strokeWeight&&polyline.push("weight:"+parseInt(data.strokeWeight,10)),data.strokeColor){var color=parseColor(data.strokeColor,data.strokeOpacity);polyline.push("color:"+color)}if(data.fillColor){var fillcolor=parseColor(data.fillColor,data.fillOpacity);polyline.push("fillcolor:"+fillcolor)}var path=data.path;if(path.join)for(var pos,j=0;pos=path[j];j++)polyline.push(pos.join(","));else polyline.push("enc:"+path);polyline=polyline.join("|"),parameters.push("path="+encodeURI(polyline))
}return parameters=parameters.join("&"),static_root+parameters},google.maps.Polygon.prototype.getBounds||(google.maps.Polygon.prototype.getBounds=function(){for(var path,bounds=new google.maps.LatLngBounds,paths=this.getPaths(),p=0;p<paths.getLength();p++){path=paths.getAt(p);for(var i=0;i<path.getLength();i++)bounds.extend(path.getAt(i))}return bounds}),google.maps.Polygon.prototype.containsLatLng=function(latLng){var bounds=this.getBounds();if(null!==bounds&&!bounds.contains(latLng))return!1;for(var inPoly=!1,numPaths=this.getPaths().getLength(),p=0;numPaths>p;p++)for(var path=this.getPaths().getAt(p),numPoints=path.getLength(),j=numPoints-1,i=0;numPoints>i;i++){var vertex1=path.getAt(i),vertex2=path.getAt(j);
(vertex1.lng()<latLng.lng()&&vertex2.lng()>=latLng.lng()||vertex2.lng()<latLng.lng()&&vertex1.lng()>=latLng.lng())&&vertex1.lat()+(latLng.lng()-vertex1.lng())/(vertex2.lng()-vertex1.lng())*(vertex2.lat()-vertex1.lat())<latLng.lat()&&(inPoly=!inPoly),j=i}return inPoly},google.maps.LatLngBounds.prototype.containsLatLng=function(latLng){return this.contains(latLng)},google.maps.Marker.prototype.setFences=function(fences){this.fences=fences},google.maps.Marker.prototype.addFence=function(fence){this.fences.push(fence)
},GMaps}(this),arrayToLatLng=function(coords){return new google.maps.LatLng(coords[0],coords[1])},extend_object=function(obj,new_obj){if(obj===new_obj)return obj;for(var name in new_obj)obj[name]=new_obj[name];return obj},array_map=function(array,callback){if(Array.prototype.map&&array.map===Array.prototype.map)return array.map(callback);for(var array_return=[],array_length=array.length,i=0;array_length>i;i++)array_return.push(callback(array[i]));return array_return};GMaps.prototype.addStyle=function(options){var styledMapType=new google.maps.StyledMapType(options.styles,options.styledMapName);
this.map.mapTypes.set(options.mapTypeId,styledMapType)},GMaps.prototype.setStyle=function(mapTypeId){this.map.setMapTypeId(mapTypeId)}};exports(),module.resolveWith(exports)};dispatch("gmaps").containing(moduleFactory).to("Foundry/2.1 Modules")}();