"use strict";!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd&&define("gmaps",[],b),a.gmaps=b()}(this,function(){if("object"!=typeof window.google||!window.google.maps)throw"google maps api is required. please register the following javascript library http://maps.google.com/maps/api/js?sensor=true.";var a=function(a,b){var c;if(a===b)return a;for(c in b)a[c]=b[c];return a},b=function(a,b){var c,d=array.prototype.slice.call(arguments,2),e=[],f=a.length;if(array.prototype.map&&a.map===array.prototype.map)e=array.prototype.map.call(a,function(a){var c=d.slice(0);return c.splice(0,0,a),b.apply(this,c)});else for(c=0;f>c;c++)callback_params=d,callback_params.splice(0,0,a[c]),e.push(b.apply(this,callback_params));return e},c=function(a){var b,c=[];for(b=0;b0&&"object"==typeof a[c][0]?a[c]=f(a[c],b):a[c]=d(a[c],b));return a},g=function(a,b){var c,d=a.replace(".","");return c="jquery"in this&&b?$("."+d,b)[0]:document.getelementsbyclassname(d)[0]},h=function(a,b){var c,a=a.replace("#","");return c="jquery"in window&&b?$("#"+a,b)[0]:document.getelementbyid(a)},i=function(a){var b=0,c=0;if(a.offsetparent)do b+=a.offsetleft,c+=a.offsettop;while(a=a.offsetparent);return[b,c]},j=function(b){var c=document,d=function(b){if(!this)return new d(b);b.zoom=b.zoom||15,b.maptype=b.maptype||"roadmap";var e,f=this,j=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],k=["mousemove","mouseout","mouseover"],l=["el","lat","lng","maptype","width","height","markerclusterer","enablenewstyle"],m=b.el||b.div,n=b.markerclusterer,o=google.maps.maptypeid[b.maptype.touppercase()],p=new google.maps.latlng(b.lat,b.lng),q=b.zoomcontrol||!0,r=b.zoomcontrolopt||{style:"default",position:"top_left"},s=r.style||"default",t=r.position||"top_left",u=b.pancontrol||!0,v=b.maptypecontrol||!0,w=b.scalecontrol||!0,x=b.streetviewcontrol||!0,y=y||!0,z={},a={zoom:this.zoom,center:p,maptypeid:o},b={pancontrol:u,zoomcontrol:q,zoomcontroloptions:{style:google.maps.zoomcontrolstyle[s],position:google.maps.controlposition[t]},maptypecontrol:v,scalecontrol:w,streetviewcontrol:x,overviewmapcontrol:y};if("string"==typeof b.el||"string"==typeof b.div?m.indexof("#")>-1?this.el=h(m,b.context):this.el=g.apply(this,[m,b.context]):this.el=m,"undefined"==typeof this.el||null===this.el)throw"no element defined.";for(window.context_menu=window.context_menu||{},window.context_menu[f.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singlelayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infowindow=null,this.overlay_el=null,this.zoom=b.zoom,this.registered_events={},this.el.style.width=b.width||this.el.scrollwidth||this.el.offsetwidth,this.el.style.height=b.height||this.el.scrollheight||this.el.offsetheight,google.maps.visualrefresh=b.enablenewstyle,e=0;e'+g.title+""}if(h("gmaps_context_menu")){var j=h("gmaps_context_menu");j.innerhtml=c;var e,k=j.getelementsbytagname("a"),l=k.length;for(e=0;l>e;e++){var m=k[e],n=function(c){c.preventdefault(),d[this.id.replace(a+"_","")].action.apply(f,[b]),f.hidecontextmenu()};google.maps.event.clearlisteners(m,"click"),google.maps.event.adddomlisteneronce(m,"click",n,!1)}var o=i.apply(this,[f.el]),p=o[0]+b.pixel.x-15,q=o[1]+b.pixel.y-15;j.style.left=p+"px",j.style.top=q+"px",j.style.display="block"}};this.buildcontextmenu=function(a,b){if("marker"===a){b.pixel={};var c=new google.maps.overlayview;c.setmap(f.map),c.draw=function(){var d=c.getprojection(),e=b.marker.getposition();b.pixel=d.fromlatlngtocontainerpixel(e),c(a,b)}}else c(a,b)},this.setcontextmenu=function(a){window.context_menu[f.el.id][a.control]={};var b,d=c.createelement("ul");for(b in a.options)if(a.options.hasownproperty(b)){var e=a.options[b];window.context_menu[f.el.id][a.control][e.name]={title:e.title,action:e.action}}d.id="gmaps_context_menu",d.style.display="none",d.style.position="absolute",d.style.minwidth="100px",d.style.background="white",d.style.liststyle="none",d.style.padding="8px",d.style.boxshadow="2px 2px 6px #ccc",c.body.appendchild(d);var g=h("gmaps_context_menu");google.maps.event.adddomlistener(g,"mouseout",function(a){a.relatedtarget&&this.contains(a.relatedtarget)||window.settimeout(function(){g.style.display="none"},400)},!1)},this.hidecontextmenu=function(){var a=h("gmaps_context_menu");a&&(a.style.display="none")};var d=function(a,c){google.maps.event.addlistener(a,c,function(a){void 0==a&&(a=this),b[c].apply(this,[a]),f.hidecontextmenu()})};google.maps.event.addlistener(this.map,"zoom_changed",this.hidecontextmenu);for(var e=0;ea;a++)"boolean"==typeof this.markers[a].visible&&this.markers[a].visible&&b.push(this.markers[a].getposition());this.fitlatlngbounds(b)},this.fitlatlngbounds=function(a){var b,c=a.length,d=new google.maps.latlngbounds;for(b=0;c>b;b++)d.extend(a[b]);this.map.fitbounds(d)},this.setcenter=function(a,b,c){this.map.panto(new google.maps.latlng(a,b)),c&&c()},this.getelement=function(){return this.el},this.zoomin=function(a){a=a||1,this.zoom=this.map.getzoom()+a,this.map.setzoom(this.zoom)},this.zoomout=function(a){a=a||1,this.zoom=this.map.getzoom()-a,this.map.setzoom(this.zoom)};var g,h=[];for(g in this.map)"function"!=typeof this.map[g]||this[g]||h.push(g);for(e=0;e-1){var d=this.markers[e];d.setmap(null),this.markerclusterer&&this.markerclusterer.removemarker(d),j.fire("marker_removed",d,this)}}for(var c=0;c0&&d.paths[0].length>0&&(d.paths=c(b(d.paths,f,e)));for(var g=new google.maps.polygon(d),h=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],i=0;i0&&d.locations[0].length>0&&(d.locations=c(b([d.locations],f,!1)));var e=d.callback;delete d.callback;var g=new google.maps.elevationservice;if(d.path){var h={path:d.locations,samples:d.samples};g.getelevationalongpath(h,function(a,b){e&&"function"==typeof e&&e(a,b)})}else delete d.path,delete d.samples,g.getelevationforlocations(d,function(a,b){e&&"function"==typeof e&&e(a,b)})},j.prototype.cleanroute=j.prototype.removepolylines,j.prototype.drawroute=function(a){var b=this;this.getroutes({origin:a.origin,destination:a.destination,travelmode:a.travelmode,waypoints:a.waypoints,unitsystem:a.unitsystem,error:a.error,callback:function(c){if(c.length>0){var d={path:c[c.length-1].overview_path,strokecolor:a.strokecolor,strokeopacity:a.strokeopacity,strokeweight:a.strokeweight};a.hasownproperty("icons")&&(d.icons=a.icons),b.drawpolyline(d),a.callback&&a.callback(c[c.length-1])}}})},j.prototype.travelroute=function(a){if(a.origin&&a.destination)this.getroutes({origin:a.origin,destination:a.destination,travelmode:a.travelmode,waypoints:a.waypoints,unitsystem:a.unitsystem,error:a.error,callback:function(b){if(b.length>0&&a.start&&a.start(b[b.length-1]),b.length>0&&a.step){var c=b[b.length-1];if(c.legs.length>0)for(var d,e=c.legs[0].steps,f=0;d=e[f];f++)d.step_number=f,a.step(d,c.legs[0].steps.length-1)}b.length>0&&a.end&&a.end(b[b.length-1])}});else if(a.route&&a.route.legs.length>0)for(var b,c=a.route.legs[0].steps,d=0;b=c[d];d++)b.step_number=d,a.step(b)},j.prototype.drawsteppedroute=function(a){var b=this;if(a.origin&&a.destination)this.getroutes({origin:a.origin,destination:a.destination,travelmode:a.travelmode,waypoints:a.waypoints,error:a.error,callback:function(c){if(c.length>0&&a.start&&a.start(c[c.length-1]),c.length>0&&a.step){var d=c[c.length-1];if(d.legs.length>0)for(var e,f=d.legs[0].steps,g=0;e=f[g];g++){e.step_number=g;var h={path:e.path,strokecolor:a.strokecolor,strokeopacity:a.strokeopacity,strokeweight:a.strokeweight};a.hasownproperty("icons")&&(h.icons=a.icons),b.drawpolyline(h),a.step(e,d.legs[0].steps.length-1)}}c.length>0&&a.end&&a.end(c[c.length-1])}});else if(a.route&&a.route.legs.length>0)for(var c,d=a.route.legs[0].steps,e=0;c=d[e];e++){c.step_number=e;var f={path:c.path,strokecolor:a.strokecolor,strokeopacity:a.strokeopacity,strokeweight:a.strokeweight};a.hasownproperty("icons")&&(f.icons=a.icons),b.drawpolyline(f),a.step(c)}},j.route=function(a){this.origin=a.origin,this.destination=a.destination,this.waypoints=a.waypoints,this.map=a.map,this.route=a.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length;var b={path:new google.maps.mvcarray,strokecolor:a.strokecolor,strokeopacity:a.strokeopacity,strokeweight:a.strokeweight};a.hasownproperty("icons")&&(b.icons=a.icons),this.polyline=this.map.drawpolyline(b).getpath()},j.route.prototype.getroute=function(a){var b=this;this.map.getroutes({origin:this.origin,destination:this.destination,travelmode:a.travelmode,waypoints:this.waypoints||[],error:a.error,callback:function(){b.route=e[0],a.callback&&a.callback.call(b)}})},j.route.prototype.back=function(){if(this.step_count>0){this.step_count--;var a=this.route.legs[0].steps[this.step_count].path;for(var b in a)a.hasownproperty(b)&&this.polyline.pop()}},j.route.prototype.forward=function(){if(this.step_count0){b.markers=[];for(var c=0;c0){var d=this.polylines[0];b.polyline={},b.polyline.path=google.maps.geometry.encoding.encodepath(d.getpath()),b.polyline.strokecolor=d.strokecolor,b.polyline.strokeopacity=d.strokeopacity,b.polyline.strokeweight=d.strokeweight}return j.staticmapurl(b)},j.staticmapurl=function(a){function b(a,b){if("#"===a[0]&&(a=a.replace("#","0x"),b)){if(b=parsefloat(b),b=math.min(1,math.max(b,0)),0===b)return"0x00000000";b=(255*b).tostring(16),1===b.length&&(b+=b),a=a.slice(0,8)+b}return a}var c,d=[],e=("file:"===location.protocol?"http:":location.protocol)+"//maps.googleapis.com/maps/api/staticmap";a.url&&(e=a.url,delete a.url),e+="?";var f=a.markers;delete a.markers,!f&&a.marker&&(f=[a.marker],delete a.marker);var g=a.styles;delete a.styles;var h=a.polyline;if(delete a.polyline,a.center)d.push("center="+a.center),delete a.center;else if(a.address)d.push("center="+a.address),delete a.address;else if(a.lat)d.push(["center=",a.lat,",",a.lng].join("")),delete a.lat,delete a.lng;else if(a.visible){var i=encodeuri(a.visible.join("|"));d.push("visible="+i)}var j=a.size;j?(j.join&&(j=j.join("x")),delete a.size):j="630x300",d.push("size="+j),a.zoom||a.zoom===!1||(a.zoom=15);var k=a.hasownproperty("sensor")?!!a.sensor:!0;delete a.sensor,d.push("sensor="+k);for(var l in a)a.hasownproperty(l)&&d.push(l+"="+a[l]);if(f)for(var m,n,o=0;c=f[o];o++){m=[],c.size&&"normal"!==c.size?(m.push("size:"+c.size),delete c.size):c.icon&&(m.push("icon:"+encodeuri(c.icon)),delete c.icon),c.color&&(m.push("color:"+c.color.replace("#","0x")),delete c.color),c.label&&(m.push("label:"+c.label[0].touppercase()),delete c.label),n=c.address?c.address:c.lat+","+c.lng,delete c.address,delete c.lat,delete c.lng;for(var l in c)c.hasownproperty(l)&&m.push(l+":"+c[l]);m.length||0===o?(m.push(n),m=m.join("|"),d.push("markers="+encodeuri(m))):(m=d.pop()+encodeuri("|"+n),d.push(m))}if(g)for(var o=0;oe;e++)for(var f=this.getpaths().getat(e),g=f.getlength(),h=g-1,i=0;g>i;i++){var j=f.getat(i),k=f.getat(h);(j.lng()=a.lng()||k.lng()=a.lng())&&j.lat()+(a.lng()-j.lng())/(k.lng()-j.lng())*(k.lat()-j.lat())>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*math.floor(math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:math.max(c-math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),j}); //# sourcemappingurl=gmaps.min.js.map