//Fügt ein Icon hinzu mit Standardeinstellungen hinzu
function addIcon(imageFrontURL, imageShadowURL){
	var iconObject = new GIcon();
	iconObject.image = imageFrontURL;
	iconObject.iconSize = new GSize(20, 30);
	iconObject.shadow = imageShadowURL;
	iconObject.shadowSize = new GSize(36, 30);
	iconObject.iconAnchor = new GPoint(10, 15);
	iconObject.infoWindowAnchor = new GPoint(20, 0);
	return iconObject;
}

// Erzeugt den Marker für die aktuell vom User gesuchte Adresse
function createLocation (breite, laenge, zoomTo, state) {

	// Punkt erzeugen 
	var point = new GLatLng(breite, laenge);

	// Auf Punkt zentrieren
	gmMap.setCenter(point);

	// Aktueller Zoomwert
	zoomFrom = gmMap.getZoom();

	// zoomen
	for (var zoom = zoomFrom; zoom <= zoomTo; zoom++){
		gmMap.setZoom(zoom);
	}
}

// Erzeugt einen Marker für eine Location mit festem HTML in einem Bubble
function createDefaultMarkerWithHTML(html, adresse, breite, laenge, tagDerEnergie) {

	// Breite / Länge
	var point = new GLatLng(breite, laenge);

	// Auf Punkt zentrieren
	gmMap.setCenter(point);
	
	// Marker erzeugen
	if (tagDerEnergie){
		var marker = new GMarker(point, {icon: gmIconTagDerEnergie});
	}else{
		var marker = new GMarker(point, {icon: gmIconDefault});
	}
	gmMarkerLocation = marker;
	gmMap.addOverlay(marker);
	
	// Zoom setzen
	gmMap.setZoom(gmHitZoom);
	marker.bindInfoWindowHtml(html, {maxWidth:320});
	
	GEvent.addListener(marker,'infowindowopen', function() {
		resizeGoogleMaps(marker);
	});
	return marker;
}

// Vergössert den Google-Maps div 
function resizeGoogleMaps(marker){
	// Div größer machen
	var newHeight = "460px";
	if ($("#googlemapsbox").css("height") !=  newHeight){
		$("#googlemapsbox").animate({height: "460px"}, 1250 );
	}

	// Auf Punkt zentrieren
	if (marker){
		var point = marker.getPoint();
		if (point){
			// Pannen um 95 Pixel nach links und 210 Pixel nach unten
//			var pan = new GSize(-95, 210); 	
//			gmMap.panTo(point);
//			gmMap.panBy(pan);
		}
	}
}

// Erzeugt einen Marker für eine Location aus der DB
// Hiermit werden die gesamten Marker aus der DB erzeugt
function createMarker(breite, laenge, uid, tagDerEnergie) {
	// Point erzeugen
	var point = new GLatLng(breite, laenge);
	
	// Marker erzeugen
	if (tagDerEnergie){
		var marker = new GMarker(point, {icon: gmIconTagDerEnergie});
	}else{
		var marker = new GMarker(point, {icon: gmIconDefault});
	}

	// Beim Click HTML des InfoWindows mit AJAX lesen
	GEvent.addListener(marker, "click", function(){
		resizeGoogleMaps(marker);
		ajaxEventBubbleTextGet(marker);
	});

	// Marker hinzufügen
	marker.uid = uid;
	gmMarkers.push(marker)

	return marker;
}

//Event beim Klick auf einen Marker: Lädt den Text für den Bubble per AJAX 
function ajaxEventBubbleTextGet(marker){
 $.ajax({
	   type: "POST",
	   url: gMapURLAJAX,
	   data: "uid=" + marker.uid,
	   success: function(msg){
	     marker.openInfoWindowHtml(msg, {maxWidth:320});
	   }
	 });
}
