Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:58:27

0001 GMaps.prototype.on = function(event_name, handler) {
0002   return GMaps.on(event_name, this, handler);
0003 };
0004 
0005 GMaps.prototype.off = function(event_name) {
0006   GMaps.off(event_name, this);
0007 };
0008 
0009 GMaps.custom_events = ['marker_added', 'marker_removed', 'polyline_added', 'polyline_removed', 'polygon_added', 'polygon_removed', 'geolocated', 'geolocation_failed'];
0010 
0011 GMaps.on = function(event_name, object, handler) {
0012   if (GMaps.custom_events.indexOf(event_name) == -1) {
0013     if(object instanceof GMaps) object = object.map; 
0014     return google.maps.event.addListener(object, event_name, handler);
0015   }
0016   else {
0017     var registered_event = {
0018       handler : handler,
0019       eventName : event_name
0020     };
0021 
0022     object.registered_events[event_name] = object.registered_events[event_name] || [];
0023     object.registered_events[event_name].push(registered_event);
0024 
0025     return registered_event;
0026   }
0027 };
0028 
0029 GMaps.off = function(event_name, object) {
0030   if (GMaps.custom_events.indexOf(event_name) == -1) {
0031     if(object instanceof GMaps) object = object.map; 
0032     google.maps.event.clearListeners(object, event_name);
0033   }
0034   else {
0035     object.registered_events[event_name] = [];
0036   }
0037 };
0038 
0039 GMaps.fire = function(event_name, object, scope) {
0040   if (GMaps.custom_events.indexOf(event_name) == -1) {
0041     google.maps.event.trigger(object, event_name, Array.prototype.slice.apply(arguments).slice(2));
0042   }
0043   else {
0044     if(event_name in scope.registered_events) {
0045       var firing_events = scope.registered_events[event_name];
0046 
0047       for(var i = 0; i < firing_events.length; i++) {
0048         (function(handler, scope, object) {
0049           handler.apply(scope, [object]);
0050         })(firing_events[i]['handler'], scope, object);
0051       }
0052     }
0053   }
0054 };