/* Google Maps ist bereits geladen */

var googleMapCoordMatch = /(-?\d+(?:\.\d+)?),(-?\d+(?:\.\d+)?)/;

function loadGoogleMap(index,coord,zoom,control,types, ruler,icons) {
	var map = new GMap2(document.getElementById("googlemap_container_" + index));
	if (coord.match(googleMapCoordMatch)) {
		map.setCenter(new GLatLng(RegExp.$1*1,RegExp.$2*1), zoom*1);
    } else {
		map.setCenter(new GLatLng(0,0), 0);
		alert("Invalid coordinates for google map: \"" + coord + "\"");
	}
	if (control) map.addControl(new window[control]());
	if (types) map.addControl(types*1 ? new GMapTypeControl(true) : new GMapTypeControl());
	if (ruler) map.addControl(new GScaleControl(ruler != '0' ? ruler : undefined));
	for (var i = 0; i < icons.length; i++) {
		var icondata = icons[i];
		if (!icondata) continue;

		var icon = G_DEFAULT_ICON;
		if (icondata.src) {
			icon = new GIcon();
			icon.image = icondata.src;
			icon.iconSize = new GSize(icondata.width,icondata.height);
			icon.iconAnchor = new GPoint(icondata.width/2,icondata.height/2);
			icon.infoWindowAnchor = new GPoint(icondata.width/2,icondata.height/2);
		}
		if (!icondata.coord.match(googleMapCoordMatch)) {
			alert("Bad coordinate \"" + icondata.coord + "\"");
			return; 
		} 
		var coord = new GLatLng(RegExp.$1*1, RegExp.$2*1);
		var marker = new GMarker(coord, {
			icon: icon,
			title: icondata.title,
			clickable: !!icondata.popup
		});
		if (icondata.popup) {
			var div = document.createElement("div");
			div.innerHTML = icondata.popup;		
			marker.bindInfoWindow(div);
		}
		map.addOverlay(marker);
	}
}
