Drupal.gmap.addHandler('gmap',function(elem){var obj=this;obj.bind('init',function(){if(obj.vars.behavior.autozoom){obj.bounds=new GLatLngBounds();}});obj.bind('addmarker',function(marker){var m=Drupal.gmap.factory.marker(new GLatLng(marker.latitude,marker.longitude),marker.opts);marker.marker=m;GEvent.addListener(m,'click',function(){obj.change('clickmarker',-1,marker);});if(obj.vars.behavior.highlight){GEvent.addListener(m,'mouseover',function(){var highlightColor='#'+obj.vars.styles.highlight_color;highlightMarker(obj.map,marker,'hoverHighlight',highlightColor);});GEvent.addListener(m,'mouseout',function(){unHighlightMarker(obj.map,marker,'hoverHighlight');});}
if(obj.vars.behavior.extramarkerevents){GEvent.addListener(m,'mouseover',function(){obj.change('mouseovermarker',-1,marker);});GEvent.addListener(m,'mouseout',function(){obj.change('mouseoutmarker',-1,marker);});GEvent.addListener(m,'dblclick',function(){obj.change('dblclickmarker',-1,marker);});}
if(marker.autoclick||(marker.options&&marker.options.autoclick)){obj.deferChange('clickmarker',-1,marker);}
if(obj.vars.behavior.autozoom){obj.bounds.extend(marker.marker.getPoint());}
if(marker.opts.highlight==1){highlightMarker(obj.map,marker,'viewHighlight',marker.opts.highlightcolor);}});obj.bind('clickmarker',function(marker){if(marker.text){marker.marker.openInfoWindowHtml(marker.text);}
if(marker.rmt){var uri=marker.rmt;if(obj.vars.rmtcallback){uri=obj.vars.rmtcallback+'/'+marker.rmt;}
$.get(uri,{},function(data){marker.marker.openInfoWindowHtml(data);});}
else if(marker.tabs){var infoWinTabs=[];for(var m in marker.tabs){if(marker.tabs.hasOwnProperty(m)){infoWinTabs.push(new GInfoWindowTab(m,marker.tabs[m]));}}
marker.marker.openInfoWindowTabsHtml(infoWinTabs);}
else if(marker.link){open(marker.link,'_self');}});obj.bind('markersready',function(){if(obj.vars.behavior.autozoom){if(!obj.bounds.isEmpty()){obj.map.setCenter(obj.bounds.getCenter(),Math.min(obj.map.getBoundsZoomLevel(obj.bounds),obj.vars.maxzoom));}}});obj.bind('clearmarkers',function(){if(obj.vars.behavior.autozoom){obj.bounds=new GLatLngBounds();}});});
