function attachOnLoad(func) {
    var old = window.onload;
    window.onload = (typeof old != 'function') ?
	func : function(e) { old(e); return func(e); };
}
function generateGMap(mapid, address, latitude, longitude, maptype, zoom) {
    if (GBrowserIsCompatible()) {
	var icon = new GIcon();
	icon.image = "http://www.google.com/mapfiles/marker.png";
	icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	icon.iconSize = new GSize(20, 34);
	icon.shadowSize = new GSize(37, 34);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);

	var map = new GMap2(document.getElementById(mapid));
	map.setMapType((typeof maptype == 'string') ? eval(maptype) : maptype);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	var point = new GPoint(longitude, latitude);
	map.setCenter(new GLatLng(latitude, longitude), zoom);

	var marker = new GMarker(point, {icon:icon});
	map.addOverlay(marker);
	var html = '<div style="width:12em;font-size:small">'+address+'</div>';
	GEvent.addListener(marker, 'click', function() {
	    marker.openInfoWindowHtml(html);
	});

    } else {
	document.getElementById(mapid).innerHTML = '<p>The Google Map that should be displayed on this page is not compatible with your browser. Sorry.</p>';
    }
}
