HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: /home/workzeni/agency-erp-05.workzenix.com/public/admin/assets/js/plugins/gmaps.min.js
'use strict';
!(function (a, b) {
  'object' == typeof exports
    ? (module.exports = b())
    : 'function' == typeof define && define.amd
    ? define(['jquery', 'googlemaps!'], b)
    : (a.GMaps = b());
})(this, function () {
  var a = function (a, b) {
      var c;
      if (a === b) return a;
      for (c in b) void 0 !== b[c] && (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; c < f; 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; b < a.length; b++) c = c.concat(a[b]);
      return c;
    },
    d = function (a, b) {
      var c = a[0],
        d = a[1];
      return b && ((c = a[1]), (d = a[0])), new google.maps.LatLng(c, d);
    },
    f = function (a, b) {
      var c;
      for (c = 0; c < a.length; c++)
        a[c] instanceof google.maps.LatLng || (a[c].length > 0 && '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 = a.replace('.', '');
      return 'jQuery' in this && b ? $('.' + c, b)[0] : document.getElementsByClassName(c)[0];
    },
    h = function (a, b) {
      var a = a.replace('#', '');
      return 'jQuery' in window && b ? $('#' + a, b)[0] : document.getElementById(a);
    },
    i = function (a) {
      var b = 0,
        c = 0;
      if (a.getBoundingClientRect) {
        var d = a.getBoundingClientRect(),
          e = -(window.scrollX ? window.scrollX : window.pageXOffset),
          f = -(window.scrollY ? window.scrollY : window.pageYOffset);
        return [d.left - e, d.top - f];
      }
      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 ('object' != typeof window.google || !window.google.maps)
            return (
              'object' == typeof window.console &&
                window.console.error &&
                console.error(
                  'Google Maps API is required. Please register the following JavaScript library https://maps.googleapis.com/maps/api/js.'
                ),
              function () {}
            );
          if (!this) return new d(b);
          (b.zoom = b.zoom || 15), (b.mapType = b.mapType || 'roadmap');
          var e,
            f = function (a, b) {
              return void 0 === a ? b : a;
            },
            j = this,
            k = [
              'bounds_changed',
              'center_changed',
              'click',
              'dblclick',
              'drag',
              'dragend',
              'dragstart',
              'idle',
              'maptypeid_changed',
              'projection_changed',
              'resize',
              'tilesloaded',
              'zoom_changed'
            ],
            l = ['mousemove', 'mouseout', 'mouseover'],
            m = ['el', 'lat', 'lng', 'mapType', 'width', 'height', 'markerClusterer', 'enableNewStyle'],
            n = b.el || b.div,
            o = b.markerClusterer,
            p = google.maps.MapTypeId[b.mapType.toUpperCase()],
            q = new google.maps.LatLng(b.lat, b.lng),
            r = f(b.zoomControl, !0),
            s = b.zoomControlOpt || { style: 'DEFAULT', position: 'TOP_LEFT' },
            t = s.style || 'DEFAULT',
            u = s.position || 'TOP_LEFT',
            v = f(b.panControl, !0),
            w = f(b.mapTypeControl, !0),
            x = f(b.scaleControl, !0),
            y = f(b.streetViewControl, !0),
            z = f(z, !0),
            A = {},
            B = { zoom: this.zoom, center: q, mapTypeId: p },
            C = {
              panControl: v,
              zoomControl: r,
              zoomControlOptions: { style: google.maps.ZoomControlStyle[t], position: google.maps.ControlPosition[u] },
              mapTypeControl: w,
              scaleControl: x,
              streetViewControl: y,
              overviewMapControl: z
            };
          if (
            ('string' == typeof b.el || 'string' == typeof b.div
              ? n.indexOf('#') > -1
                ? (this.el = h(n, b.context))
                : (this.el = g.apply(this, [n, b.context]))
              : (this.el = n),
            void 0 === this.el || null === this.el)
          )
            throw 'No element defined.';
          for (
            window.context_menu = window.context_menu || {},
              window.context_menu[j.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 < m.length;
            e++
          )
            delete b[m[e]];
          for (1 != b.disableDefaultUI && (B = a(B, C)), A = a(B, b), e = 0; e < k.length; e++) delete A[k[e]];
          for (e = 0; e < l.length; e++) delete A[l[e]];
          (this.map = new google.maps.Map(this.el, A)), o && (this.markerClusterer = o.apply(this, [this.map]));
          var D = function (a, b) {
            var c = '',
              d = window.context_menu[j.el.id][a];
            for (var e in d)
              if (d.hasOwnProperty(e)) {
                var f = d[e];
                c += '<li><a id="' + a + '_' + e + '" href="#">' + f.title + '</a></li>';
              }
            if (h('gmaps_context_menu')) {
              var g = h('gmaps_context_menu');
              g.innerHTML = c;
              var e,
                k = g.getElementsByTagName('a'),
                l = k.length;
              for (e = 0; e < l; e++) {
                var m = k[e],
                  n = function (c) {
                    c.preventDefault(), d[this.id.replace(a + '_', '')].action.apply(j, [b]), j.hideContextMenu();
                  };
                google.maps.event.clearListeners(m, 'click'), google.maps.event.addDomListenerOnce(m, 'click', n, !1);
              }
              var o = i.apply(this, [j.el]),
                p = o[0] + b.pixel.x - 15,
                q = o[1] + b.pixel.y - 15;
              (g.style.left = p + 'px'), (g.style.top = q + 'px');
            }
          };
          (this.buildContextMenu = function (a, b) {
            if ('marker' === a) {
              b.pixel = {};
              var c = new google.maps.OverlayView();
              c.setMap(j.map),
                (c.draw = function () {
                  var d = c.getProjection(),
                    e = b.marker.getPosition();
                  (b.pixel = d.fromLatLngToContainerPixel(e)), D(a, b);
                });
            } else D(a, b);
            var d = h('gmaps_context_menu');
            setTimeout(function () {
              d.style.display = 'block';
            }, 0);
          }),
            (this.setContextMenu = function (a) {
              window.context_menu[j.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[j.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'),
                h('gmaps_context_menu') || c.body.appendChild(d);
              var f = h('gmaps_context_menu');
              google.maps.event.addDomListener(
                f,
                'mouseout',
                function (a) {
                  (a.relatedTarget && this.contains(a.relatedTarget)) ||
                    window.setTimeout(function () {
                      f.style.display = 'none';
                    }, 400);
                },
                !1
              );
            }),
            (this.hideContextMenu = function () {
              var a = h('gmaps_context_menu');
              a && (a.style.display = 'none');
            });
          var E = function (a, c) {
            google.maps.event.addListener(a, c, function (a) {
              void 0 == a && (a = this), b[c].apply(this, [a]), j.hideContextMenu();
            });
          };
          google.maps.event.addListener(this.map, 'zoom_changed', this.hideContextMenu);
          for (var F = 0; F < k.length; F++) {
            var G = k[F];
            G in b && E(this.map, G);
          }
          for (var F = 0; F < l.length; F++) {
            var G = l[F];
            G in b && E(this.map, G);
          }
          google.maps.event.addListener(this.map, 'rightclick', function (a) {
            b.rightclick && b.rightclick.apply(this, [a]), void 0 != window.context_menu[j.el.id].map && j.buildContextMenu('map', a);
          }),
            (this.refresh = function () {
              google.maps.event.trigger(this.map, 'resize');
            }),
            (this.fitZoom = function () {
              var a,
                b = [],
                c = this.markers.length;
              for (a = 0; a < c; 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; b < c; 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 H,
            I = [];
          for (H in this.map) 'function' != typeof this.map[H] || this[H] || I.push(H);
          for (e = 0; e < I.length; e++)
            !(function (a, b, c) {
              a[c] = function () {
                return b[c].apply(b, arguments);
              };
            })(this, this.map, I[e]);
        };
      return d;
    })(this);
  (j.prototype.createControl = function (a) {
    var b = document.createElement('div');
    (b.style.cursor = 'pointer'),
      a.disableDefaultStyles !== !0 &&
        ((b.style.fontFamily = 'Roboto, Arial, sans-serif'),
        (b.style.fontSize = '11px'),
        (b.style.boxShadow = 'rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px'));
    for (var c in a.style) b.style[c] = a.style[c];
    a.id && (b.id = a.id),
      a.title && (b.title = a.title),
      a.classes && (b.className = a.classes),
      a.content &&
        ('string' == typeof a.content ? (b.innerHTML = a.content) : a.content instanceof HTMLElement && b.appendChild(a.content)),
      a.position && (b.position = google.maps.ControlPosition[a.position.toUpperCase()]);
    for (var d in a.events)
      !(function (b, c) {
        google.maps.event.addDomListener(b, c, function () {
          a.events[c].apply(this, [this]);
        });
      })(b, d);
    return (b.index = 1), b;
  }),
    (j.prototype.addControl = function (a) {
      var b = this.createControl(a);
      return this.controls.push(b), this.map.controls[b.position].push(b), b;
    }),
    (j.prototype.removeControl = function (a) {
      var b,
        c = null;
      for (b = 0; b < this.controls.length; b++) this.controls[b] == a && ((c = this.controls[b].position), this.controls.splice(b, 1));
      if (c)
        for (b = 0; b < this.map.controls.length; b++) {
          var d = this.map.controls[a.position];
          if (d.getAt(b) == a) {
            d.removeAt(b);
            break;
          }
        }
      return a;
    }),
    (j.prototype.createMarker = function (b) {
      if (void 0 == b.lat && void 0 == b.lng && void 0 == b.position) throw 'No latitude or longitude defined.';
      var c = this,
        d = b.details,
        e = b.fences,
        f = b.outside,
        g = { position: new google.maps.LatLng(b.lat, b.lng), map: null },
        h = a(g, b);
      delete h.lat, delete h.lng, delete h.fences, delete h.outside;
      var i = new google.maps.Marker(h);
      if (((i.fences = e), b.infoWindow)) {
        i.infoWindow = new google.maps.InfoWindow(b.infoWindow);
        for (var j = ['closeclick', 'content_changed', 'domready', 'position_changed', 'zindex_changed'], k = 0; k < j.length; k++)
          !(function (a, c) {
            b.infoWindow[c] &&
              google.maps.event.addListener(a, c, function (a) {
                b.infoWindow[c].apply(this, [a]);
              });
          })(i.infoWindow, j[k]);
      }
      for (
        var l = [
            'animation_changed',
            'clickable_changed',
            'cursor_changed',
            'draggable_changed',
            'flat_changed',
            'icon_changed',
            'position_changed',
            'shadow_changed',
            'shape_changed',
            'title_changed',
            'visible_changed',
            'zindex_changed'
          ],
          m = ['dblclick', 'drag', 'dragend', 'dragstart', 'mousedown', 'mouseout', 'mouseover', 'mouseup'],
          k = 0;
        k < l.length;
        k++
      )
        !(function (a, c) {
          b[c] &&
            google.maps.event.addListener(a, c, function () {
              b[c].apply(this, [this]);
            });
        })(i, l[k]);
      for (var k = 0; k < m.length; k++)
        !(function (a, c, d) {
          b[d] &&
            google.maps.event.addListener(c, d, function (c) {
              c.pixel || (c.pixel = a.getProjection().fromLatLngToPoint(c.latLng)), b[d].apply(this, [c]);
            });
        })(this.map, i, m[k]);
      return (
        google.maps.event.addListener(i, 'click', function () {
          (this.details = d), b.click && b.click.apply(this, [this]), i.infoWindow && (c.hideInfoWindows(), i.infoWindow.open(c.map, i));
        }),
        google.maps.event.addListener(i, 'rightclick', function (a) {
          (a.marker = this),
            b.rightclick && b.rightclick.apply(this, [a]),
            void 0 != window.context_menu[c.el.id].marker && c.buildContextMenu('marker', a);
        }),
        i.fences &&
          google.maps.event.addListener(i, 'dragend', function () {
            c.checkMarkerGeofence(i, function (a, b) {
              f(a, b);
            });
          }),
        i
      );
    }),
    (j.prototype.addMarker = function (a) {
      var b;
      if (a.hasOwnProperty('gm_accessors_')) b = a;
      else {
        if (!((a.hasOwnProperty('lat') && a.hasOwnProperty('lng')) || a.position)) throw 'No latitude or longitude defined.';
        b = this.createMarker(a);
      }
      return (
        b.setMap(this.map),
        this.markerClusterer && this.markerClusterer.addMarker(b),
        this.markers.push(b),
        j.fire('marker_added', b, this),
        b
      );
    }),
    (j.prototype.addMarkers = function (a) {
      for (var b, c = 0; (b = a[c]); c++) this.addMarker(b);
      return this.markers;
    }),
    (j.prototype.hideInfoWindows = function () {
      for (var a, b = 0; (a = this.markers[b]); b++) a.infoWindow && a.infoWindow.close();
    }),
    (j.prototype.removeMarker = function (a) {
      for (var b = 0; b < this.markers.length; b++)
        if (this.markers[b] === a) {
          this.markers[b].setMap(null),
            this.markers.splice(b, 1),
            this.markerClusterer && this.markerClusterer.removeMarker(a),
            j.fire('marker_removed', a, this);
          break;
        }
      return a;
    }),
    (j.prototype.removeMarkers = function (a) {
      var b = [];
      if (void 0 === a) {
        for (var c = 0; c < this.markers.length; c++) {
          var d = this.markers[c];
          d.setMap(null), j.fire('marker_removed', d, this);
        }
        this.markerClusterer && this.markerClusterer.clearMarkers && this.markerClusterer.clearMarkers(), (this.markers = b);
      } else {
        for (var c = 0; c < a.length; c++) {
          var e = this.markers.indexOf(a[c]);
          if (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; c < this.markers.length; c++) {
          var d = this.markers[c];
          null != d.getMap() && b.push(d);
        }
        this.markers = b;
      }
    }),
    (j.prototype.drawOverlay = function (a) {
      var b = new google.maps.OverlayView(),
        c = !0;
      return (
        b.setMap(this.map),
        null != a.auto_show && (c = a.auto_show),
        (b.onAdd = function () {
          var c = document.createElement('div');
          (c.style.borderStyle = 'none'),
            (c.style.borderWidth = '0px'),
            (c.style.position = 'absolute'),
            (c.style.zIndex = 100),
            (c.innerHTML = a.content),
            (b.el = c),
            a.layer || (a.layer = 'overlayLayer');
          var d = this.getPanes(),
            e = d[a.layer],
            f = ['contextmenu', 'DOMMouseScroll', 'dblclick', 'mousedown'];
          e.appendChild(c);
          for (var g = 0; g < f.length; g++)
            !(function (a, b) {
              google.maps.event.addDomListener(a, b, function (a) {
                navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all
                  ? ((a.cancelBubble = !0), (a.returnValue = !1))
                  : a.stopPropagation();
              });
            })(c, f[g]);
          a.click &&
            (d.overlayMouseTarget.appendChild(b.el),
            google.maps.event.addDomListener(b.el, 'click', function () {
              a.click.apply(b, [b]);
            })),
            google.maps.event.trigger(this, 'ready');
        }),
        (b.draw = function () {
          var d = this.getProjection(),
            e = d.fromLatLngToDivPixel(new google.maps.LatLng(a.lat, a.lng));
          (a.horizontalOffset = a.horizontalOffset || 0), (a.verticalOffset = a.verticalOffset || 0);
          var f = b.el,
            g = f.children[0],
            h = g.clientHeight,
            i = g.clientWidth;
          switch (a.verticalAlign) {
            case 'top':
              f.style.top = e.y - h + a.verticalOffset + 'px';
              break;
            default:
            case 'middle':
              f.style.top = e.y - h / 2 + a.verticalOffset + 'px';
              break;
            case 'bottom':
              f.style.top = e.y + a.verticalOffset + 'px';
          }
          switch (a.horizontalAlign) {
            case 'left':
              f.style.left = e.x - i + a.horizontalOffset + 'px';
              break;
            default:
            case 'center':
              f.style.left = e.x - i / 2 + a.horizontalOffset + 'px';
              break;
            case 'right':
              f.style.left = e.x + a.horizontalOffset + 'px';
          }
          (f.style.display = c ? 'block' : 'none'), c || a.show.apply(this, [f]);
        }),
        (b.onRemove = function () {
          var c = b.el;
          a.remove ? a.remove.apply(this, [c]) : (b.el.parentNode.removeChild(b.el), (b.el = null));
        }),
        this.overlays.push(b),
        b
      );
    }),
    (j.prototype.removeOverlay = function (a) {
      for (var b = 0; b < this.overlays.length; b++)
        if (this.overlays[b] === a) {
          this.overlays[b].setMap(null), this.overlays.splice(b, 1);
          break;
        }
    }),
    (j.prototype.removeOverlays = function () {
      for (var a, b = 0; (a = this.overlays[b]); b++) a.setMap(null);
      this.overlays = [];
    }),
    (j.prototype.drawPolyline = function (a) {
      var b = [],
        c = a.path;
      if (c.length)
        if (void 0 === c[0][0]) b = c;
        else for (var d, e = 0; (d = c[e]); e++) b.push(new google.maps.LatLng(d[0], d[1]));
      var f = {
        map: this.map,
        path: b,
        strokeColor: a.strokeColor,
        strokeOpacity: a.strokeOpacity,
        strokeWeight: a.strokeWeight,
        geodesic: a.geodesic,
        clickable: !0,
        editable: !1,
        visible: !0
      };
      a.hasOwnProperty('clickable') && (f.clickable = a.clickable),
        a.hasOwnProperty('editable') && (f.editable = a.editable),
        a.hasOwnProperty('icons') && (f.icons = a.icons),
        a.hasOwnProperty('zIndex') && (f.zIndex = a.zIndex);
      for (
        var g = new google.maps.Polyline(f),
          h = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'],
          i = 0;
        i < h.length;
        i++
      )
        !(function (b, c) {
          a[c] &&
            google.maps.event.addListener(b, c, function (b) {
              a[c].apply(this, [b]);
            });
        })(g, h[i]);
      return this.polylines.push(g), j.fire('polyline_added', g, this), g;
    }),
    (j.prototype.removePolyline = function (a) {
      for (var b = 0; b < this.polylines.length; b++)
        if (this.polylines[b] === a) {
          this.polylines[b].setMap(null), this.polylines.splice(b, 1), j.fire('polyline_removed', a, this);
          break;
        }
    }),
    (j.prototype.removePolylines = function () {
      for (var a, b = 0; (a = this.polylines[b]); b++) a.setMap(null);
      this.polylines = [];
    }),
    (j.prototype.drawCircle = function (b) {
      (b = a({ map: this.map, center: new google.maps.LatLng(b.lat, b.lng) }, b)), delete b.lat, delete b.lng;
      for (
        var c = new google.maps.Circle(b),
          d = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'],
          e = 0;
        e < d.length;
        e++
      )
        !(function (a, c) {
          b[c] &&
            google.maps.event.addListener(a, c, function (a) {
              b[c].apply(this, [a]);
            });
        })(c, d[e]);
      return this.polygons.push(c), c;
    }),
    (j.prototype.drawRectangle = function (b) {
      b = a({ map: this.map }, b);
      var c = new google.maps.LatLngBounds(
        new google.maps.LatLng(b.bounds[0][0], b.bounds[0][1]),
        new google.maps.LatLng(b.bounds[1][0], b.bounds[1][1])
      );
      b.bounds = c;
      for (
        var d = new google.maps.Rectangle(b),
          e = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'],
          f = 0;
        f < e.length;
        f++
      )
        !(function (a, c) {
          b[c] &&
            google.maps.event.addListener(a, c, function (a) {
              b[c].apply(this, [a]);
            });
        })(d, e[f]);
      return this.polygons.push(d), d;
    }),
    (j.prototype.drawPolygon = function (d) {
      var e = !1;
      d.hasOwnProperty('useGeoJSON') && (e = d.useGeoJSON),
        delete d.useGeoJSON,
        (d = a({ map: this.map }, d)),
        0 == e && (d.paths = [d.paths.slice(0)]),
        d.paths.length > 0 && 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;
        i < h.length;
        i++
      )
        !(function (a, b) {
          d[b] &&
            google.maps.event.addListener(a, b, function (a) {
              d[b].apply(this, [a]);
            });
        })(g, h[i]);
      return this.polygons.push(g), j.fire('polygon_added', g, this), g;
    }),
    (j.prototype.removePolygon = function (a) {
      for (var b = 0; b < this.polygons.length; b++)
        if (this.polygons[b] === a) {
          this.polygons[b].setMap(null), this.polygons.splice(b, 1), j.fire('polygon_removed', a, this);
          break;
        }
    }),
    (j.prototype.removePolygons = function () {
      for (var a, b = 0; (a = this.polygons[b]); b++) a.setMap(null);
      this.polygons = [];
    }),
    (j.prototype.getFromFusionTables = function (a) {
      var b = a.events;
      delete a.events;
      var c = a,
        d = new google.maps.FusionTablesLayer(c);
      for (var e in b)
        !(function (a, c) {
          google.maps.event.addListener(a, c, function (a) {
            b[c].apply(this, [a]);
          });
        })(d, e);
      return this.layers.push(d), d;
    }),
    (j.prototype.loadFromFusionTables = function (a) {
      var b = this.getFromFusionTables(a);
      return b.setMap(this.map), b;
    }),
    (j.prototype.getFromKML = function (a) {
      var b = a.url,
        c = a.events;
      delete a.url, delete a.events;
      var d = a,
        e = new google.maps.KmlLayer(b, d);
      for (var f in c)
        !(function (a, b) {
          google.maps.event.addListener(a, b, function (a) {
            c[b].apply(this, [a]);
          });
        })(e, f);
      return this.layers.push(e), e;
    }),
    (j.prototype.loadFromKML = function (a) {
      var b = this.getFromKML(a);
      return b.setMap(this.map), b;
    }),
    (j.prototype.addLayer = function (a, b) {
      b = b || {};
      var c;
      switch (a) {
        case 'weather':
          this.singleLayers.weather = c = new google.maps.weather.WeatherLayer();
          break;
        case 'clouds':
          this.singleLayers.clouds = c = new google.maps.weather.CloudLayer();
          break;
        case 'traffic':
          this.singleLayers.traffic = c = new google.maps.TrafficLayer();
          break;
        case 'transit':
          this.singleLayers.transit = c = new google.maps.TransitLayer();
          break;
        case 'bicycling':
          this.singleLayers.bicycling = c = new google.maps.BicyclingLayer();
          break;
        case 'panoramio':
          (this.singleLayers.panoramio = c = new google.maps.panoramio.PanoramioLayer()),
            c.setTag(b.filter),
            delete b.filter,
            b.click &&
              google.maps.event.addListener(c, 'click', function (a) {
                b.click(a), delete b.click;
              });
          break;
        case 'places':
          if (
            ((this.singleLayers.places = c = new google.maps.places.PlacesService(this.map)), b.search || b.nearbySearch || b.radarSearch)
          ) {
            var d = {
              bounds: b.bounds || null,
              keyword: b.keyword || null,
              location: b.location || null,
              name: b.name || null,
              radius: b.radius || null,
              rankBy: b.rankBy || null,
              types: b.types || null
            };
            b.radarSearch && c.radarSearch(d, b.radarSearch),
              b.search && c.search(d, b.search),
              b.nearbySearch && c.nearbySearch(d, b.nearbySearch);
          }
          if (b.textSearch) {
            var e = {
              bounds: b.bounds || null,
              location: b.location || null,
              query: b.query || null,
              radius: b.radius || null
            };
            c.textSearch(e, b.textSearch);
          }
      }
      if (void 0 !== c) return 'function' == typeof c.setOptions && c.setOptions(b), 'function' == typeof c.setMap && c.setMap(this.map), c;
    }),
    (j.prototype.removeLayer = function (a) {
      if ('string' == typeof a && void 0 !== this.singleLayers[a]) this.singleLayers[a].setMap(null), delete this.singleLayers[a];
      else
        for (var b = 0; b < this.layers.length; b++)
          if (this.layers[b] === a) {
            this.layers[b].setMap(null), this.layers.splice(b, 1);
            break;
          }
    });
  var k, l;
  return (
    (j.prototype.getRoutes = function (b) {
      switch (b.travelMode) {
        case 'bicycling':
          k = google.maps.TravelMode.BICYCLING;
          break;
        case 'transit':
          k = google.maps.TravelMode.TRANSIT;
          break;
        case 'driving':
          k = google.maps.TravelMode.DRIVING;
          break;
        default:
          k = google.maps.TravelMode.WALKING;
      }
      l = 'imperial' === b.unitSystem ? google.maps.UnitSystem.IMPERIAL : google.maps.UnitSystem.METRIC;
      var c = { avoidHighways: !1, avoidTolls: !1, optimizeWaypoints: !1, waypoints: [] },
        d = a(c, b);
      (d.origin = /string/.test(typeof b.origin) ? b.origin : new google.maps.LatLng(b.origin[0], b.origin[1])),
        (d.destination = /string/.test(typeof b.destination) ? b.destination : new google.maps.LatLng(b.destination[0], b.destination[1])),
        (d.travelMode = k),
        (d.unitSystem = l),
        delete d.callback,
        delete d.error;
      var e = [];
      new google.maps.DirectionsService().route(d, function (a, c) {
        if (c === google.maps.DirectionsStatus.OK) {
          for (var d in a.routes) a.routes.hasOwnProperty(d) && e.push(a.routes[d]);
          b.callback && b.callback(e, a, c);
        } else b.error && b.error(a, c);
      });
    }),
    (j.prototype.removeRoutes = function () {
      this.routes.length = 0;
    }),
    (j.prototype.getElevations = function (d) {
      (d = a({ locations: [], path: !1, samples: 256 }, d)),
        d.locations.length > 0 && 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.renderRoute = function (b, c) {
      var d,
        e = 'string' == typeof c.panel ? document.getElementById(c.panel.replace('#', '')) : c.panel;
      (c.panel = e),
        (c = a({ map: this.map }, c)),
        (d = new google.maps.DirectionsRenderer(c)),
        this.getRoutes({
          origin: b.origin,
          destination: b.destination,
          travelMode: b.travelMode,
          waypoints: b.waypoints,
          unitSystem: b.unitSystem,
          error: b.error,
          avoidHighways: b.avoidHighways,
          avoidTolls: b.avoidTolls,
          optimizeWaypoints: b.optimizeWaypoints,
          callback: function (a, b, c) {
            c === google.maps.DirectionsStatus.OK && d.setDirections(b);
          }
        });
    }),
    (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,
        avoidHighways: a.avoidHighways,
        avoidTolls: a.avoidTolls,
        optimizeWaypoints: a.optimizeWaypoints,
        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_count < this.steps_length) {
        var a = this.route.legs[0].steps[this.step_count].path;
        for (var b in a) a.hasOwnProperty(b) && this.polyline.push(a[b]);
        this.step_count++;
      }
    }),
    (j.prototype.checkGeofence = function (a, b, c) {
      return c.containsLatLng(new google.maps.LatLng(a, b));
    }),
    (j.prototype.checkMarkerGeofence = function (a, b) {
      if (a.fences)
        for (var c, d = 0; (c = a.fences[d]); d++) {
          var e = a.getPosition();
          this.checkGeofence(e.lat(), e.lng(), c) || b(a, c);
        }
    }),
    (j.prototype.toImage = function (a) {
      var a = a || {},
        b = {};
      if (
        ((b.size = a.size || [this.el.clientWidth, this.el.clientHeight]),
        (b.lat = this.getCenter().lat()),
        (b.lng = this.getCenter().lng()),
        this.markers.length > 0)
      ) {
        b.markers = [];
        for (var c = 0; c < this.markers.length; c++)
          b.markers.push({ lat: this.markers[c].getPosition().lat(), lng: this.markers[c].getPosition().lng() });
      }
      if (this.polylines.length > 0) {
        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)), 0 === (b = Math.min(1, Math.max(b, 0))))) 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;
      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; o < g.length; o++) {
          var p = [];
          g[o].featureType && p.push('feature:' + g[o].featureType.toLowerCase()),
            g[o].elementType && p.push('element:' + g[o].elementType.toLowerCase());
          for (var q = 0; q < g[o].stylers.length; q++)
            for (var r in g[o].stylers[q]) {
              var s = g[o].stylers[q][r];
              ('hue' != r && 'color' != r) || (s = '0x' + s.substring(1)), p.push(r + ':' + s);
            }
          var t = p.join('|');
          '' != t && d.push('style=' + t);
        }
      if (h) {
        if (((c = h), (h = []), c.strokeWeight && h.push('weight:' + parseInt(c.strokeWeight, 10)), c.strokeColor)) {
          var u = b(c.strokeColor, c.strokeOpacity);
          h.push('color:' + u);
        }
        if (c.fillColor) {
          var v = b(c.fillColor, c.fillOpacity);
          h.push('fillcolor:' + v);
        }
        var w = c.path;
        if (w.join) for (var x, q = 0; (x = w[q]); q++) h.push(x.join(','));
        else h.push('enc:' + w);
        (h = h.join('|')), d.push('path=' + encodeURI(h));
      }
      var y = window.devicePixelRatio || 1;
      return d.push('scale=' + y), (d = d.join('&')), e + d;
    }),
    (j.prototype.addMapType = function (a, b) {
      if (!b.hasOwnProperty('getTileUrl') || 'function' != typeof b.getTileUrl) throw "'getTileUrl' function required.";
      b.tileSize = b.tileSize || new google.maps.Size(256, 256);
      var c = new google.maps.ImageMapType(b);
      this.map.mapTypes.set(a, c);
    }),
    (j.prototype.addOverlayMapType = function (a) {
      if (!a.hasOwnProperty('getTile') || 'function' != typeof a.getTile) throw "'getTile' function required.";
      var b = a.index;
      delete a.index, this.map.overlayMapTypes.insertAt(b, a);
    }),
    (j.prototype.removeOverlayMapType = function (a) {
      this.map.overlayMapTypes.removeAt(a);
    }),
    (j.prototype.addStyle = function (a) {
      var b = new google.maps.StyledMapType(a.styles, { name: a.styledMapName });
      this.map.mapTypes.set(a.mapTypeId, b);
    }),
    (j.prototype.setStyle = function (a) {
      this.map.setMapTypeId(a);
    }),
    (j.prototype.createPanorama = function (a) {
      return (
        (a.hasOwnProperty('lat') && a.hasOwnProperty('lng')) || ((a.lat = this.getCenter().lat()), (a.lng = this.getCenter().lng())),
        (this.panorama = j.createPanorama(a)),
        this.map.setStreetView(this.panorama),
        this.panorama
      );
    }),
    (j.createPanorama = function (b) {
      var c = h(b.el, b.context);
      (b.position = new google.maps.LatLng(b.lat, b.lng)), delete b.el, delete b.context, delete b.lat, delete b.lng;
      for (
        var d = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'],
          e = a({ visible: !0 }, b),
          f = 0;
        f < d.length;
        f++
      )
        delete e[d[f]];
      for (var g = new google.maps.StreetViewPanorama(c, e), f = 0; f < d.length; f++)
        !(function (a, c) {
          b[c] &&
            google.maps.event.addListener(a, c, function () {
              b[c].apply(this);
            });
        })(g, d[f]);
      return g;
    }),
    (j.prototype.on = function (a, b) {
      return j.on(a, this, b);
    }),
    (j.prototype.off = function (a) {
      j.off(a, this);
    }),
    (j.prototype.once = function (a, b) {
      return j.once(a, this, b);
    }),
    (j.custom_events = [
      'marker_added',
      'marker_removed',
      'polyline_added',
      'polyline_removed',
      'polygon_added',
      'polygon_removed',
      'geolocated',
      'geolocation_failed'
    ]),
    (j.on = function (a, b, c) {
      if (j.custom_events.indexOf(a) == -1) return b instanceof j && (b = b.map), google.maps.event.addListener(b, a, c);
      var d = { handler: c, eventName: a };
      return (b.registered_events[a] = b.registered_events[a] || []), b.registered_events[a].push(d), d;
    }),
    (j.off = function (a, b) {
      j.custom_events.indexOf(a) == -1
        ? (b instanceof j && (b = b.map), google.maps.event.clearListeners(b, a))
        : (b.registered_events[a] = []);
    }),
    (j.once = function (a, b, c) {
      if (j.custom_events.indexOf(a) == -1) return b instanceof j && (b = b.map), google.maps.event.addListenerOnce(b, a, c);
    }),
    (j.fire = function (a, b, c) {
      if (j.custom_events.indexOf(a) == -1) google.maps.event.trigger(b, a, Array.prototype.slice.apply(arguments).slice(2));
      else if (a in c.registered_events)
        for (var d = c.registered_events[a], e = 0; e < d.length; e++)
          !(function (a, b, c) {
            a.apply(b, [c]);
          })(d[e].handler, c, b);
    }),
    (j.geolocate = function (a) {
      var b = a.always || a.complete;
      navigator.geolocation
        ? navigator.geolocation.getCurrentPosition(
            function (c) {
              a.success(c), b && b();
            },
            function (c) {
              a.error(c), b && b();
            },
            a.options
          )
        : (a.not_supported(), b && b());
    }),
    (j.geocode = function (a) {
      this.geocoder = new google.maps.Geocoder();
      var b = a.callback;
      a.hasOwnProperty('lat') && a.hasOwnProperty('lng') && (a.latLng = new google.maps.LatLng(a.lat, a.lng)),
        delete a.lat,
        delete a.lng,
        delete a.callback,
        this.geocoder.geocode(a, function (a, c) {
          b(a, c);
        });
    }),
    'object' == typeof window.google &&
      window.google.maps &&
      (google.maps.Polygon.prototype.getBounds ||
        (google.maps.Polygon.prototype.getBounds = function (a) {
          for (var b, c = new google.maps.LatLngBounds(), d = this.getPaths(), e = 0; e < d.getLength(); e++) {
            b = d.getAt(e);
            for (var f = 0; f < b.getLength(); f++) c.extend(b.getAt(f));
          }
          return c;
        }),
      google.maps.Polygon.prototype.containsLatLng ||
        (google.maps.Polygon.prototype.containsLatLng = function (a) {
          var b = this.getBounds();
          if (null !== b && !b.contains(a)) return !1;
          for (var c = !1, d = this.getPaths().getLength(), e = 0; e < d; e++)
            for (var f = this.getPaths().getAt(e), g = f.getLength(), h = g - 1, i = 0; i < g; i++) {
              var j = f.getAt(i),
                k = f.getAt(h);
              ((j.lng() < a.lng() && k.lng() >= a.lng()) || (k.lng() < a.lng() && j.lng() >= a.lng())) &&
                j.lat() + ((a.lng() - j.lng()) / (k.lng() - j.lng())) * (k.lat() - j.lat()) < a.lat() &&
                (c = !c),
                (h = i);
            }
          return c;
        }),
      google.maps.Circle.prototype.containsLatLng ||
        (google.maps.Circle.prototype.containsLatLng = function (a) {
          return !google.maps.geometry || google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(), a) <= this.getRadius();
        }),
      (google.maps.Rectangle.prototype.containsLatLng = function (a) {
        return this.getBounds().contains(a);
      }),
      (google.maps.LatLngBounds.prototype.containsLatLng = function (a) {
        return this.contains(a);
      }),
      (google.maps.Marker.prototype.setFences = function (a) {
        this.fences = a;
      }),
      (google.maps.Marker.prototype.addFence = function (a) {
        this.fences.push(a);
      }),
      (google.maps.Marker.prototype.getId = function () {
        return this.__gm_id;
      })),
    Array.prototype.indexOf ||
      (Array.prototype.indexOf = function (a) {
        if (null == this) throw new TypeError();
        var b = Object(this),
          c = b.length >>> 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); e < c; e++) if (e in b && b[e] === a) return e;
        return -1;
      }),
    j
  );
});
//# sourceMappingURL=gmaps.min.js.map