
//-------------------------------- XXXXXXXXXXXX
var aivao_projectmap;
var aivao_projectmap_markers = [];
var aivao_map_var_names = ["lat", "lng", "zoom"];
var aivao_projectmap_geocoder = new GClientGeocoder();
function aivao_showprojectmap(options){
	aivao_projectmap_markers = [];
	aivao_projectmap = new GMap2(document.getElementById('projectmap'), {});
	aivao_projectmap.setCenter(new GLatLng(options["map_lat"], options["map_lng"]), parseInt(options["map_zoom"]));
	aivao_projectmap.setMapType(G_HYBRID_MAP);
	//aivao_projectmap.enableScrollWheelZoom();
	aivao_projectmap.enableContinuousZoom();
	aivao_projectmap.addControl(new GLargeMapControl3D(), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10)));
	aivao_projectmap.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10)));
	if(options["markers"] != null){
		for(var n=0;n<options["markers"].length;n++){
			var latlng = new GLatLng(options["markers"][n]["lat"], options["markers"][n]["lng"]);
			aivao_projectmap_makemarker({latlng:latlng,mode:"old",title:options["markers"][n]["title"],address:options["markers"][n]["address"]});
		}
		
	}
	GEvent.addListener(aivao_projectmap, "click", function(overlay, latlng, overlaylatlng) {
		if(overlay <= 0){
			aivao_projectmap_addmarker({mode:"click",latlng:latlng});
		}
	});
	
		
}
function aivao_projectmap_zoommarkers(options){
	var markers_set = false;
	var bounds = new GLatLngBounds();
	
	for(var n=0;n<aivao_projectmap_markers.length;n++){
		if(!aivao_projectmap_markers[n]["marker"].isHidden()){
			var latlng = new GLatLng(aivao_projectmap_markers[n]["lat"], aivao_projectmap_markers[n]["lng"]);
			bounds.extend(latlng);
			markers_set = true;
		}
	}
	if(markers_set){
		var newzoom = aivao_projectmap.getBoundsZoomLevel(bounds);
		if(newzoom > 13){
			newzoom = 13;
		}
		var newcenter = bounds.getCenter();
		aivao_projectmap.setCenter(newcenter,newzoom);
	}
	else{
		aivao_alert({okbutton:true,cancelbutton:false,feedback:"Noch keine Marker gesetzt."});
	}
}
function aivao_projectmap_removemarker(options){
	aivao_projectmap_markers[options["num"]]["marker"].closeInfoWindow();
	aivao_projectmap_markers[options["num"]]["marker"].hide();
	
}
function aivao_projectmap_makemarker(options){
	var num = aivao_projectmap_markers.length;
	aivao_projectmap_markers[num] = [];
	aivao_projectmap_markers[num]["lat"] = options["latlng"].lat();
	aivao_projectmap_markers[num]["lng"] = options["latlng"].lng();
	aivao_projectmap_markers[num]["title"] = "";
	if(options["mode"] == "new"){
		aivao_projectmap.panTo(options["latlng"]);
		aivao_projectmap_geocoder.getLocations(
			options["latlng"],
			function(address) {
				address_text = "";
				if(address["Placemark"] != undefined){
					address_text = address["Placemark"][0]["address"];
				}
				aivao_projectmap_markers[num]["address"] = address_text;
				aivao_projectmap_openmarker({marker:marker,num:num});
			}
		);
	}
	else{
		aivao_projectmap_markers[num]["address"] = options["address"];
		aivao_projectmap_markers[num]["title"] = options["title"];
	}
	var my_icon = new GIcon(G_DEFAULT_ICON);
	my_icon.image = "/files/gmap/markers/marker_default.png";
	my_icon.shadow = "/files/gmap/markers/marker_shadow.png";
	my_icon.iconSize = new GSize(25, 36);
	var marker = new GMarker(options["latlng"], {draggable:true,icon:my_icon});  
	aivao_projectmap.addOverlay(marker);
	aivao_projectmap_markers[num]["marker"] = marker;
	
	
	GEvent.addListener(marker, "dragstart", function() {
		marker.closeInfoWindow();
	});
	GEvent.addListener(marker, "dragend", function() {
		var pt = marker.getPoint();
		
		aivao_projectmap_markers[num]["lat"] = pt.lat();
		aivao_projectmap_markers[num]["lng"] = pt.lng();
		
		aivao_projectmap.panTo(pt);
		
		aivao_projectmap_geocoder.getLocations(
		pt,
		function(address) {
			address_text = "";
			if(address["Placemark"] != undefined){
				address_text = address["Placemark"][0]["address"]
			}
			aivao_projectmap_markers[num]["address"] = address_text;
			aivao_projectmap_openmarker({marker:marker,num:num});
		});
	});
	GEvent.addListener(marker, "click", function() {
		aivao_projectmap_openmarker({marker:marker,num:num});
	});
	/*
	GEvent.addListener(marker, "singlerightclick", function(latlng, src, overlay) {
		if(overlay > 0){
			remove_marker({overlay:marker,num:num});
		}
	});
	*/
}
function aivao_projectmap_addmarker(options){
	if(options["mode"] == "address"){
		var address = $("#pop > .box").find("input[name=map_address]").val();
		if(address == ""){
		$("#pop > .box").find("#map_address_error").html("Bitte geben Sie eine Adresse ein.");
		}
		else{
			aivao_projectmap_geocoder.getLatLng(
			address,
			function(latlng) {
				if (!latlng) {
					$("#pop > .box").find("#map_address_error").html("Die Adresse wurde nicht gefunden.");
				} 
				else {
					$("#pop > .box").find("input[name=map_address]").val("");
					aivao_projectmap_makemarker({latlng:latlng,mode:"new"});
				}
			});
		}
	}
	if(options["mode"] == "click"){
		aivao_projectmap_makemarker({latlng:options["latlng"],mode:"new"});
	}
}

function aivao_projectmap_openmarker(options){
	options["marker"].openInfoWindowHtml("<div class=\"marker_window\"><b>Titel:</b><br /><textarea id=\"projectmap_marker_title_"+options["num"]+"\" class=\"textarea_marker\" onkeyup=\"aivao_projectmap_changemarker({num:"+options["num"]+",kind:'title'})\"  />"+aivao_projectmap_markers[options["num"]]["title"]+"</textarea><br /><br /><b>Adresse:</b><br /><textarea id=\"projectmap_marker_address_"+options["num"]+"\"  class=\"textarea_marker\" onkeyup=\"aivao_projectmap_changemarker({num:"+options["num"]+",kind:'address'})\"  />"+aivao_projectmap_markers[options["num"]]["address"]+"</textarea><br /><br /><a href=\"javascript:f()\" onclick=\"aivao_projectmap_removemarker({num:"+options["num"]+"})\">Löschen</a><br /></div>", {maxWidth:250});

}

function aivao_projectmap_changemarker(options){
	//alert(options["num"]+", "+options["kind"]);
	aivao_projectmap_markers[options["num"]][options["kind"]]=$("#projectmap_marker_"+options["kind"]+"_"+options["num"]).val();

}

