--- /dev/null
+// JS helper functions for YM4R\r
+\r
+function addInfoWindowToMarker(marker,info,options){\r
+ GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(info,options);});\r
+ return marker;\r
+}\r
+\r
+function addInfoWindowTabsToMarker(marker,info,options){\r
+ GEvent.addListener(marker, "click", function() {marker.openInfoWindowTabsHtml(info,options);});\r
+ return marker;\r
+}\r
+\r
+function addPropertiesToLayer(layer,getTile,copyright,opacity,isPng){\r
+ layer.getTileUrl = getTile;\r
+ layer.getCopyright = copyright;\r
+ layer.getOpacity = opacity;\r
+ layer.isPng = isPng;\r
+ return layer;\r
+}\r
+\r
+function addOptionsToIcon(icon,options){\r
+ for(var k in options){\r
+ icon[k] = options[k];\r
+ }\r
+ return icon;\r
+}\r
+\r
+function addCodeToFunction(func,code){\r
+ if(func == undefined)\r
+ return code;\r
+ else{\r
+ return function(){\r
+ func();\r
+ code();\r
+ }\r
+ }\r
+}\r
+\r
+function addGeocodingToMarker(marker,address){\r
+ marker.orig_initialize = marker.initialize;\r
+ orig_redraw = marker.redraw;\r
+ marker.redraw = function(force){}; //empty the redraw method so no error when called by addOverlay.\r
+ marker.initialize = function(map){\r
+ new GClientGeocoder().getLatLng(address,\r
+ function(latlng){\r
+ if(latlng){\r
+ marker.redraw = orig_redraw;\r
+ marker.orig_initialize(map); //init before setting point\r
+ marker.setPoint(latlng);\r
+ }//do nothing\r
+ });\r
+ };\r
+ return marker;\r
+}\r
+\r
+\r
+\r
+GMap2.prototype.centerAndZoomOnMarkers = function(markers) {\r
+ var bounds = new GLatLngBounds(markers[0].getPoint(),\r
+ markers[0].getPoint());\r
+ for (var i=1, len = markers.length ; i<len; i++) {\r
+ bounds.extend(markers[i].getPoint());\r
+ }\r
+ \r
+ this.centerAndZoomOnBounds(bounds);\r
+ } \r
+\r
+GMap2.prototype.centerAndZoomOnPoints = function(points) {\r
+ var bounds = new GLatLngBounds(points[0],\r
+ points[0]);\r
+ for (var i=1, len = points.length ; i<len; i++) {\r
+ bounds.extend(points[i]);\r
+ }\r
+ \r
+ this.centerAndZoomOnBounds(bounds);\r
+ } \r
+\r
+GMap2.prototype.centerAndZoomOnBounds = function(bounds) {\r
+ var center = bounds.getCenter();\r
+ this.setCenter(center, this.getBoundsZoomLevel(bounds));\r
+} \r
+\r
+//For full screen mode\r
+function setWindowDims(elem) {\r
+ if (window.innerWidth){\r
+ elem.style.height = (window.innerHeight) + 'px;';\r
+ elem.style.width = (window.innerWidth) + 'px;';\r
+ }else if (document.body.clientWidth){\r
+ elem.style.width = (document.body.clientWidth) + 'px';\r
+ elem.style.height = (document.body.clientHeight) + 'px';\r
+ }\r
+}\r
+\r
+ManagedMarker = function(markers,minZoom,maxZoom) {\r
+ this.markers = markers;\r
+ this.minZoom = minZoom;\r
+ this.maxZoom = maxZoom;\r
+}\r
+\r
+//Add the markers and refresh\r
+function addMarkersToManager(manager,managedMarkers){\r
+ for(var i = 0, length = managedMarkers.length; i < length;i++) {\r
+ mm = managedMarkers[i];\r
+ manager.addMarkers(mm.markers,mm.minZoom,mm.maxZoom);\r
+ }\r
+ manager.refresh();\r
+ return manager;\r
+}\r
+\r
+\r
+var INVISIBLE = new GLatLng(0,0); //almost always invisible\r
+\r
+if(self.Event && Event.observe){\r
+ Event.observe(window, 'unload', GUnload);\r
+}else{\r
+ window.onunload = GUnload;\r
+}\r