1(function (d) { 2 d.a = function (a, b) { 3 var c = a.split(".")[0], 4 a = a.split(".")[1]; 5 d[c] = d[c] || {}; 6 d[c][a] = function (a, b) { 7 arguments.length && this._setup(a, b) 8 }; 9 d[c][a].prototype = d.extend({ 10 namespace: c, 11 pluginName: a 12 }, 13 b); 14 d.fn[a] = function (b) { 15 var g = "string" === typeof b, 16 f = Array.prototype.slice.call(arguments, 1), 17 i = this; 18 if (g && "_" === b.substring(0, 1)) return i; 19 this.each(function () { 20 var h = d.data(this, a); 21 h || (h = d.data(this, a, new d[c][a](b, this))); 22 g && (i = h[b].apply(h, f)) 23 }); 24 return i 25 } 26 }; 27 d.a("ui.gmap", { 28 options: { 29 mapTypeId: "roadmap", 30 zoom: 5 31 }, 32 option: function (a, b) { 33 return b ? (this.options[a] = b, this.get("map").set(a, b), this) : this.options[a] 34 }, 35 _setup: function (a, b) { 36 this.el = b; 37 a = a || {}; 38 jQuery.extend(this.options, a, { 39 center: this._latLng(a.center) 40 }); 41 this._create(); 42 this._init && this._init() 43 }, 44 _create: function () { 45 var a = this; 46 this.instance = { 47 map: new google.maps.Map(a.el, a.options), 48 markers: [], 49 overlays: [], 50 services: [] 51 }; 52 google.maps.event.addListenerOnce(a.instance.map, "bounds_changed", function () { 53 d(a.el).trigger("init", a.instance.map) 54 }); 55 a._call(a.options.callback, a.instance.map) 56 }, 57 addBounds: function (a) { 58 var b = this.get("bounds", new google.maps.LatLngBounds); 59 b.extend(this._latLng(a)); 60 this.get("map").fitBounds(b); 61 return this 62 }, 63 inViewport: function (a) { 64 var b = this.get("map").getBounds(); 65 return b ? b.contains(a.getPosition()) : !1 66 }, 67 addControl: function (a, b) { 68 this.get("map").controls[b].push(this._unwrap(a)); 69 return this 70 }, 71 addMarker: function (a, b) { 72 a.map = this.get("map"); 73 a.position = this._latLng(a.position); 74 var c = new(a.marker || google.maps.Marker)(a), 75 e = this.get("markers"); 76 c.id ? e[c.id] = c: e.push(c); 77 c.bounds && this.addBounds(c.getPosition()); 78 this._call(b, a.map, c); 79 return d(c) 80 }, 81 clear: function (a) { 82 this._c(this.get(a)); 83 this.set(a, []); 84 return this 85 }, 86 _c: function (a) { 87 for (var b in a) a.hasOwnProperty(b) && (a[b] instanceof google.maps.MVCObject ? (google.maps.event.clearInstanceListeners(a[b]), a[b].setMap && a[b].setMap(null)) : a[b] instanceof Array && this._c(a[b]), a[b] = null) 88 }, 89 find: function (a, b, c) { 90 a = this.get(a); 91 b.value = d.isArray(b.value) ? b.value: [b.value]; 92 for (var e in a) if (a.hasOwnProperty(e)) { 93 var g = !1, 94 f; 95 for (f in b.value) if ( - 1 < d.inArray(b.value[f], a[e][b.property])) g = !0; 96 else if (b.operator && "AND" === b.operator) { 97 g = !1; 98 break 99 } 100 c(a[e], g) 101 } 102 return this 103 }, 104 get: function (a, b) { 105 var c = this.instance; 106 if (!c[a]) { 107 if ( - 1 < a.indexOf(">")) { 108 for (var e = a.replace(/ /g, "").split(">"), d = 0; d < e.length; d++) { 109 if (!c[e[d]]) if (b) c[e[d]] = d + 1 < e.length ? [] : b; 110 else return null; 111 c = c[e[d]] 112 } 113 return c 114 } 115 b && !c[a] && this.set(a, b) 116 } 117 return c[a] 118 }, 119 openInfoWindow: function (a, b, c) { 120 var d = this.get("iw", a.infoWindow || new google.maps.InfoWindow); 121 d.setOptions(a); 122 d.open(this.get("map"), this._unwrap(b)); 123 this._call(c, d); 124 return this 125 }, 126 closeInfoWindow: function () { 127 null != this.get("iw") && this.get("iw").close(); 128 return this 129 }, 130 set: function (a, b) { 131 this.instance[a] = b; 132 return this 133 }, 134 refresh: function () { 135 var a = this.get("map"), 136 b = a.getCenter(); 137 d(a).triggerEvent("resize"); 138 a.setCenter(b); 139 return this 140 }, 141 destroy: function () { 142 this.clear("markers").clear("services").clear("overlays")._c(this.instance); 143 jQuery.removeData(this.el, this.name) 144 }, 145 _call: function (a) { 146 a && d.isFunction(a) && a.apply(this, Array.prototype.slice.call(arguments, 1)) 147 }, 148 _latLng: function (a) { 149 if (!a) return new google.maps.LatLng(0, 0); 150 if (a instanceof google.maps.LatLng) return a; 151 a = a.replace(/ /g, "").split(","); 152 return new google.maps.LatLng(a[0], a[1]) 153 }, 154 _unwrap: function (a) { 155 return ! a ? null: a instanceof jQuery ? a[0] : a instanceof Object ? a: d("#" + a)[0] 156 }, 157 displayDirections: function (a, b, c) { 158 var d = this, 159 g = this.get("services > DirectionsService", new google.maps.DirectionsService), 160 f = this.get("services > DirectionsRenderer", new google.maps.DirectionsRenderer); 161 b && f.setOptions(b); 162 g.route(a, function (a, b) { 163 "OK" === b ? (f.setDirections(a), f.setMap(d.get("map"))) : f.setMap(null); 164 c(a, b) 165 }) 166 }, 167 displayStreetView: function (a, b) { 168 this.get("map").setStreetView(this.get("services > StreetViewPanorama", new google.maps.StreetViewPanorama(this._unwrap(a), b))) 169 }, 170 search: function (a, b) { 171 this.get("services > Geocoder", new google.maps.Geocoder).geocode(a, b) 172 }, 173 addShape: function (a, b) { 174 var c = new google.maps[a](jQuery.extend({ 175 map: this.get("map") 176 }, 177 b)); 178 this.get("overlays > " + a, []).push(c); 179 return d(c) 180 }, 181 loadFusion: function (a, b) { (!b ? this.get("overlays > FusionTablesLayer", new google.maps.FusionTablesLayer) : this.get("overlays > FusionTablesLayer", new google.maps.FusionTablesLayer(b, a))).setOptions(jQuery.extend({ 182 map: this.get("map") 183 }, 184 a)) 185 }, 186 loadKML: function (a, b, c) { 187 this.get("overlays > " + a, new google.maps.KmlLayer(b, jQuery.extend({ 188 map: this.get("map") 189 }, 190 c))) 191 } 192 }); 193 jQuery.fn.extend({ 194 triggerEvent: function (a) { 195 google.maps.event.trigger(this[0], a); 196 return this 197 }, 198 addEventListener: function (a, b, c) { 199 google.maps && this[0] instanceof google.maps.MVCObject ? google.maps.event.addListener(this[0], a, b) : c ? this.bind(a, b, c) : this.bind(a, b); 200 return this 201 } 202 }); 203 jQuery.each("click rightclick dblclick mouseover mouseout drag dragend".split(" "), function (a, b) { 204 jQuery.fn[b] = function (a, d) { 205 return this.addEventListener(b, a, d) 206 } 207 }) 208})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.