373 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			373 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								 /*!
							 | 
						||
| 
								 | 
							
								 * jQuery FN Google Map 3.0-rc
							 | 
						||
| 
								 | 
							
								 * http://code.google.com/p/jquery-ui-map/
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2010 - 2012 Johan Säll Larsson
							 | 
						||
| 
								 | 
							
								 * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								( function($) {
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * @param name:string
							 | 
						||
| 
								 | 
							
									 * @param prototype:object
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									$.a = function(name, prototype) {
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										var namespace = name.split('.')[0];
							 | 
						||
| 
								 | 
							
								        name = name.split('.')[1];
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										$[namespace] = $[namespace] || {};
							 | 
						||
| 
								 | 
							
										$[namespace][name] = function(options, element) {
							 | 
						||
| 
								 | 
							
											if ( arguments.length ) {
							 | 
						||
| 
								 | 
							
												this._setup(options, element);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										};
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										$[namespace][name].prototype = $.extend({
							 | 
						||
| 
								 | 
							
											'namespace': namespace,
							 | 
						||
| 
								 | 
							
											'pluginName': name
							 | 
						||
| 
								 | 
							
								        }, prototype);
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										$.fn[name] = function(options) {
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											var isMethodCall = typeof options === "string",
							 | 
						||
| 
								 | 
							
												args = Array.prototype.slice.call(arguments, 1),
							 | 
						||
| 
								 | 
							
												returnValue = this;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											if ( isMethodCall && options.substring(0, 1) === '_' ) { 
							 | 
						||
| 
								 | 
							
												return returnValue; 
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											this.each(function() {
							 | 
						||
| 
								 | 
							
												var instance = $.data(this, name);
							 | 
						||
| 
								 | 
							
												if (!instance) {
							 | 
						||
| 
								 | 
							
													instance = $.data(this, name, new $[namespace][name](options, this));
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												if (isMethodCall) {
							 | 
						||
| 
								 | 
							
													returnValue = instance[options].apply(instance, args);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											return returnValue; 
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
										};
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									$.a('ui.gmap', {
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Map options
							 | 
						||
| 
								 | 
							
										 * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MapOptions
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										options: {
							 | 
						||
| 
								 | 
							
											mapTypeId: 'roadmap',
							 | 
						||
| 
								 | 
							
											zoom: 5	
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Get or set options
							 | 
						||
| 
								 | 
							
										 * @param key:string
							 | 
						||
| 
								 | 
							
										 * @param options:object
							 | 
						||
| 
								 | 
							
										 * @return object
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										option: function(key, options) {
							 | 
						||
| 
								 | 
							
											if (options) {
							 | 
						||
| 
								 | 
							
												this.options[key] = options;
							 | 
						||
| 
								 | 
							
												this.get('map').set(key, options);
							 | 
						||
| 
								 | 
							
												return this;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											return this.options[key];
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Setup plugin basics, 
							 | 
						||
| 
								 | 
							
										 * @param options:object
							 | 
						||
| 
								 | 
							
										 * @param element:node
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										_setup: function(options, element) {
							 | 
						||
| 
								 | 
							
											this.el = element;
							 | 
						||
| 
								 | 
							
											options = options || {};
							 | 
						||
| 
								 | 
							
											jQuery.extend(this.options, options, { 'center': this._latLng(options.center) });
							 | 
						||
| 
								 | 
							
											this._create();
							 | 
						||
| 
								 | 
							
											if ( this._init ) { this._init(); }
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Instanciate the Google Maps object
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										_create: function() {
							 | 
						||
| 
								 | 
							
											var self = this;
							 | 
						||
| 
								 | 
							
											this.instance = { 'map': new google.maps.Map(self.el, self.options), 'markers': [], 'overlays': [], 'services': [] };
							 | 
						||
| 
								 | 
							
											google.maps.event.addListenerOnce(self.instance.map, 'bounds_changed', function() { $(self.el).trigger('init', self.instance.map); });
							 | 
						||
| 
								 | 
							
											self._call(self.options.callback, self.instance.map);
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Adds a latitude longitude pair to the bounds.
							 | 
						||
| 
								 | 
							
										 * @param position:google.maps.LatLng/string
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										addBounds: function(position) {
							 | 
						||
| 
								 | 
							
											var bounds = this.get('bounds', new google.maps.LatLngBounds());
							 | 
						||
| 
								 | 
							
											bounds.extend(this._latLng(position));
							 | 
						||
| 
								 | 
							
											this.get('map').fitBounds(bounds);
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Helper function to check if a LatLng is within the viewport
							 | 
						||
| 
								 | 
							
										 * @param marker:google.maps.Marker
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										inViewport: function(marker) {
							 | 
						||
| 
								 | 
							
											var bounds = this.get('map').getBounds();
							 | 
						||
| 
								 | 
							
											return (bounds) ? bounds.contains(marker.getPosition()) : false;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Adds a custom control to the map
							 | 
						||
| 
								 | 
							
										 * @param panel:jquery/node/string	
							 | 
						||
| 
								 | 
							
										 * @param position:google.maps.ControlPosition	 
							 | 
						||
| 
								 | 
							
										 * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#ControlPosition
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										addControl: function(panel, position) {
							 | 
						||
| 
								 | 
							
											this.get('map').controls[position].push(this._unwrap(panel));
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Adds a Marker to the map
							 | 
						||
| 
								 | 
							
										 * @param markerOptions:google.maps.MarkerOptions
							 | 
						||
| 
								 | 
							
										 * @param callback:function(map:google.maps.Map, marker:google.maps.Marker) (optional)
							 | 
						||
| 
								 | 
							
										 * @return $(google.maps.Marker)
							 | 
						||
| 
								 | 
							
										 * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MarkerOptions
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										addMarker: function(markerOptions, callback) {
							 | 
						||
| 
								 | 
							
											markerOptions.map = this.get('map');
							 | 
						||
| 
								 | 
							
											markerOptions.position = this._latLng(markerOptions.position);
							 | 
						||
| 
								 | 
							
											var marker = new (markerOptions.marker || google.maps.Marker)(markerOptions);
							 | 
						||
| 
								 | 
							
											var markers = this.get('markers');
							 | 
						||
| 
								 | 
							
											if ( marker.id ) {
							 | 
						||
| 
								 | 
							
												markers[marker.id] = marker;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												markers.push(marker);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											if ( marker.bounds ) {
							 | 
						||
| 
								 | 
							
												this.addBounds(marker.getPosition());
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											this._call(callback, markerOptions.map, marker);
							 | 
						||
| 
								 | 
							
											return $(marker);
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Clears by type
							 | 
						||
| 
								 | 
							
										 * @param ctx:string	e.g. 'markers', 'overlays', 'services'
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										clear: function(ctx) {
							 | 
						||
| 
								 | 
							
											this._c(this.get(ctx));
							 | 
						||
| 
								 | 
							
											this.set(ctx, []);
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										_c: function(obj) {
							 | 
						||
| 
								 | 
							
											for ( var property in obj ) {
							 | 
						||
| 
								 | 
							
												if ( obj.hasOwnProperty(property) ) {
							 | 
						||
| 
								 | 
							
													if ( obj[property] instanceof google.maps.MVCObject ) {
							 | 
						||
| 
								 | 
							
														google.maps.event.clearInstanceListeners(obj[property]);
							 | 
						||
| 
								 | 
							
														if ( obj[property].setMap ) {
							 | 
						||
| 
								 | 
							
															obj[property].setMap(null);
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													} else if ( obj[property] instanceof Array ) {
							 | 
						||
| 
								 | 
							
														this._c(obj[property]);
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													obj[property] = null;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Returns the objects with a specific property and value, e.g. 'category', 'tags'
							 | 
						||
| 
								 | 
							
										 * @param ctx:string	in what context, e.g. 'markers' 
							 | 
						||
| 
								 | 
							
										 * @param options:object	property:string	the property to search within, value:string, operator:string (optional) (AND/OR)
							 | 
						||
| 
								 | 
							
										 * @param callback:function(marker:google.maps.Marker, isFound:boolean)
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										find: function(ctx, options, callback) {
							 | 
						||
| 
								 | 
							
											var obj = this.get(ctx);
							 | 
						||
| 
								 | 
							
											options.value = $.isArray(options.value) ? options.value : [options.value];
							 | 
						||
| 
								 | 
							
											for ( var property in obj ) {
							 | 
						||
| 
								 | 
							
												if ( obj.hasOwnProperty(property) ) {
							 | 
						||
| 
								 | 
							
													var isFound = false;
							 | 
						||
| 
								 | 
							
													for ( var value in options.value ) {
							 | 
						||
| 
								 | 
							
														if ( $.inArray(options.value[value], obj[property][options.property]) > -1 ) {
							 | 
						||
| 
								 | 
							
															isFound = true;
							 | 
						||
| 
								 | 
							
														} else {
							 | 
						||
| 
								 | 
							
															if ( options.operator && options.operator === 'AND' ) {
							 | 
						||
| 
								 | 
							
																isFound = false;
							 | 
						||
| 
								 | 
							
																break;
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													callback(obj[property], isFound);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Returns an instance property by key. Has the ability to set an object if the property does not exist
							 | 
						||
| 
								 | 
							
										 * @param key:string
							 | 
						||
| 
								 | 
							
										 * @param value:object(optional)
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										get: function(key, value) {
							 | 
						||
| 
								 | 
							
											var instance = this.instance;
							 | 
						||
| 
								 | 
							
											if ( !instance[key] ) {
							 | 
						||
| 
								 | 
							
												if ( key.indexOf('>') > -1 ) {
							 | 
						||
| 
								 | 
							
													var e = key.replace(/ /g, '').split('>');
							 | 
						||
| 
								 | 
							
													for ( var i = 0; i < e.length; i++ ) {
							 | 
						||
| 
								 | 
							
														if ( !instance[e[i]] ) {
							 | 
						||
| 
								 | 
							
															if (value) {
							 | 
						||
| 
								 | 
							
																instance[e[i]] = ( (i + 1) < e.length ) ? [] : value;
							 | 
						||
| 
								 | 
							
															} else {
							 | 
						||
| 
								 | 
							
																return null;
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
														instance = instance[e[i]];
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													return instance;
							 | 
						||
| 
								 | 
							
												} else if ( value && !instance[key] ) {
							 | 
						||
| 
								 | 
							
													this.set(key, value);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											return instance[key];
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Triggers an InfoWindow to open
							 | 
						||
| 
								 | 
							
										 * @param infoWindowOptions:google.maps.InfoWindowOptions
							 | 
						||
| 
								 | 
							
										 * @param marker:google.maps.Marker (optional)
							 | 
						||
| 
								 | 
							
										 * @param callback:function (optional)
							 | 
						||
| 
								 | 
							
										 * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#InfoWindowOptions
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										openInfoWindow: function(infoWindowOptions, marker, callback) {
							 | 
						||
| 
								 | 
							
											var iw = this.get('iw', infoWindowOptions.infoWindow || new google.maps.InfoWindow);
							 | 
						||
| 
								 | 
							
											iw.setOptions(infoWindowOptions);
							 | 
						||
| 
								 | 
							
											iw.open(this.get('map'), this._unwrap(marker)); 
							 | 
						||
| 
								 | 
							
											this._call(callback, iw);
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Triggers an InfoWindow to close
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										closeInfoWindow: function() {
							 | 
						||
| 
								 | 
							
											if ( this.get('iw') != null ) {
							 | 
						||
| 
								 | 
							
												this.get('iw').close();
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
												
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Sets an instance property
							 | 
						||
| 
								 | 
							
										 * @param key:string
							 | 
						||
| 
								 | 
							
										 * @param value:object
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										set: function(key, value) {
							 | 
						||
| 
								 | 
							
											this.instance[key] = value;
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Refreshes the map
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										refresh: function() {
							 | 
						||
| 
								 | 
							
											var map = this.get('map');
							 | 
						||
| 
								 | 
							
											var latLng = map.getCenter();
							 | 
						||
| 
								 | 
							
											$(map).triggerEvent('resize');
							 | 
						||
| 
								 | 
							
											map.setCenter(latLng);
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Destroys the plugin.
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										destroy: function() {
							 | 
						||
| 
								 | 
							
											this.clear('markers').clear('services').clear('overlays')._c(this.instance);
							 | 
						||
| 
								 | 
							
											jQuery.removeData(this.el, this.name);
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Helper method for calling a function
							 | 
						||
| 
								 | 
							
										 * @param callback
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										_call: function(callback) {
							 | 
						||
| 
								 | 
							
											if ( callback && $.isFunction(callback) ) {
							 | 
						||
| 
								 | 
							
												callback.apply(this, Array.prototype.slice.call(arguments, 1));
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Helper method for google.maps.Latlng
							 | 
						||
| 
								 | 
							
										 * @param latLng:string/google.maps.LatLng
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										_latLng: function(latLng) {
							 | 
						||
| 
								 | 
							
											if ( !latLng ) {
							 | 
						||
| 
								 | 
							
												return new google.maps.LatLng(0.0, 0.0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											if ( latLng instanceof google.maps.LatLng ) {
							 | 
						||
| 
								 | 
							
												return latLng;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												latLng = latLng.replace(/ /g,'').split(',');
							 | 
						||
| 
								 | 
							
												return new google.maps.LatLng(latLng[0], latLng[1]);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/**
							 | 
						||
| 
								 | 
							
										 * Helper method for unwrapping jQuery/DOM/string elements
							 | 
						||
| 
								 | 
							
										 * @param obj:string/node/jQuery
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
										_unwrap: function(obj) {
							 | 
						||
| 
								 | 
							
											return (!obj) ? null : ( (obj instanceof jQuery) ? obj[0] : ((obj instanceof Object) ? obj : $('#'+obj)[0]) )
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									jQuery.fn.extend( {
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										triggerEvent: function(eventType) {
							 | 
						||
| 
								 | 
							
											google.maps.event.trigger(this[0], eventType);
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										addEventListener: function(eventType, eventDataOrCallback, eventCallback) {
							 | 
						||
| 
								 | 
							
											if ( google.maps && this[0] instanceof google.maps.MVCObject ) {
							 | 
						||
| 
								 | 
							
												google.maps.event.addListener(this[0], eventType, eventDataOrCallback);
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												if (eventCallback) {
							 | 
						||
| 
								 | 
							
													this.bind(eventType, eventDataOrCallback, eventCallback);
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													this.bind(eventType, eventDataOrCallback);
							 | 
						||
| 
								 | 
							
												} 
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										  
							 | 
						||
| 
								 | 
							
										/*removeEventListener: function(eventType) {
							 | 
						||
| 
								 | 
							
											if ( google.maps && this[0] instanceof google.maps.MVCObject ) {
							 | 
						||
| 
								 | 
							
												if (eventType) {
							 | 
						||
| 
								 | 
							
													google.maps.event.clearListeners(this[0], eventType);
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													google.maps.event.clearInstanceListeners(this[0]);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												this.unbind(eventType);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											return this;
							 | 
						||
| 
								 | 
							
										}*/
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									jQuery.each(('click rightclick dblclick mouseover mouseout drag dragend').split(' '), function(i, name) {
							 | 
						||
| 
								 | 
							
										jQuery.fn[name] = function(a, b) {
							 | 
						||
| 
								 | 
							
											return this.addEventListener(name, a, b);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								} (jQuery) );
							 |