var map;
var manager;
var	start_zoom_level;

var content_data = new Array();

function addGoogle() {
 	var a=addGoogle.arguments;
 
 	content_data.push(a);
}

function map_load(land, zoom, overview, koord1, koord2) {
	start_zoom_level = zoom - 1;
	
	if (GBrowserIsCompatible()) {
		create_map('map', land, overview, koord1, koord2);
	} else {
		alert("Ihr Browser ist nicht kompatibel. Bitte benutzen Sie die aktuellste Version vom Internet Explorer oder vom Mozilla Firefox.");
	}
}

function create_map(div_id, land, overview, koord1, koord2){
	map = new GMap2($(div_id));

	var control = new GLargeMapControl();
	map.addControl(control);
	
	control = new GMapTypeControl();
	map.addControl(control);

	if (overview == 1) {
		var ov = new GOverviewMapControl();
    map.addControl(ov);
    ov.hide(); 		
	}
	map.enableScrollWheelZoom();
	
 	if(koord1 && koord2){
   		lat_lng = new GLatLng(koord1, koord2);
			map.setCenter(lat_lng, start_zoom_level);
 			manager = new GMarkerManager(map);
			if (overview == 1) {
				map.setMapType(G_SATELLITE_MAP);
			} else {
				map.setMapType(G_HYBRID_MAP);
			}
			map.savePosition();
			display_marker();
			window.setTimeout(iebug, 1000);
	} else {
		var geocoder = new GClientGeocoder();

		geocoder.getLatLng(land, function(point) {
			if (point) {
				map.setCenter(point, start_zoom_level);
				manager = new GMarkerManager(map);
				if (overview == 1) {
					map.setMapType(G_SATELLITE_MAP);
				} else {
					map.setMapType(G_HYBRID_MAP);
				}
				map.savePosition();
				display_marker();
				window.setTimeout(iebug, 1000);
			}
		});
	}
}

function iebug(){
	map.zoomIn();
}

function display_marker() {
	var i, a, land, linked;
	
	for (i=0; i < content_data.length; i++) {
		a = content_data[i];
		land = a[0];
		linked = a[1];
		koord1 = a[2];
		koord2 = a[3];
		
		createMarker(land, linked, koord1, koord2);
	}
}

function createPoint(land, point, linked) {
	var icon = new GIcon(point);
	icon.image = '/shared/pics/worldwide/dpv.gif';
	icon.iconSize = new GSize(25, 26);
	icon.iconAnchor = new GPoint(1, 25);
	icon.infoWindowAnchor = new GPoint(1, 1);
	offset = new GSize(25, -20);

	opts = {
		icon: icon,
		clickable: true,
		draggable: false,
		labelText: '<div class="googleLabel"><div class="text">' + land + '</div><div class="schatten">' + land + '</div></div>',
		labelOffset: offset
	};

	marker = new LabeledMarker(point, opts);

	GEvent.addListener(marker, "click", function() {
		if (linked != '#') {
			location.href=linked;
		}
	});
	manager.addMarker(marker, 1);
	manager.refresh();
}

function createMarker(land, linked, koord1, koord2) {
	var geocoder = new GClientGeocoder();

	if (koord1 && koord2) {
		point = new GLatLng(koord1, koord2);
		createPoint(land, point, linked);
	} else {
		geocoder.getLatLng(land,
			function(point) {
				if(point){
					createPoint(land, point, linked);
				}
			}
		);
	}
}
