/*******************************************************************************
 * Javascript für twGmap06Directions Version01
 ******************************************************************************/

var elementId = "twGmap";  // muss im html an ein <div> als id vergeben werden
var lat       = "52.42079";  // Breitengrad (Latitude) z.B: 51.041
var lon       = "12.576114";  // Längengrad (Longitude) z.B: 13.748
var zoom      = 12;        // einen Wert von 1 bis ca 17 (nicht in "" setzen)
var directionMarkers   = [];
var directionHtmls     = [];
var directionHtmlsNach = [];
var directionHtmlsVon  = [];
var directionCount     = 0;


/**
 * Prüft auf kompatiblen Browser und vorhandene Variablen und ruft die
 * Funktion auf, die die GoogleMap erstellt.
 */
function twGmapLoad() {
	if (GBrowserIsCompatible()) {
		if (!document.getElementById(elementId)) {
			alert("Fehler: das Element mit der id "+ elementId+ " konnte nicht auf dieser Webseite gefunden werden!");
			return false;
		} else {
			if (lat=="" || isNaN(lat)) {
				lat = 52.42079;
				alert("Fehler: Der Breitengrad(lat) wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			if (lon=="" || isNaN(lon)) {
				lon = "12.576114";
				alert("Fehler: Der Längengrad(lon) wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			if (typeof zoom == "undefined") {
				zoom = 3;
				alert("Fehler: Die Zoomstufe wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			machTwGmap(elementId, lat, lon, zoom);
		}
	}
}


/**
 * Erstellt die GoogleMap in dem <div>-Bereich mit der übergebenen id
 * @param {Object} id   -im div-Bereich mit dieser id wird die Map dargestellt
 * @param {Object} lat  -Breitengrad 
 * @param {Object} lon  -Längengrad
 * @param {Object} zoom -Zoomstufe 1 bis 17 (ganze Welt bis kleiner Ausschnitt)
 */
function machTwGmap(id, lat, lon, zoom) {
	// die Map (für das div mit der id="...")
	var map = new GMap2(document.getElementById(id));
	// mit Zoom (auch noch: GSmallMapControl, GLargeMapControl, GSmallZoomControl, GScaleControl)
	map.addControl(new GSmallMapControl());
	// mit Typ-Auswahl (auch noch: GMapTypeControl, GHierarchicalMapTypeControl, GOverviewMapControl)
	map.addControl(new GMapTypeControl());
	// ((Breitengrad, Längengrad), Zoomstufe, G_NORMAL_MAP/G_SATELLITE_MAP/G_HYBRID_MAP)
	map.setCenter(new GLatLng(lat, lon), zoom, G_NORMAL_MAP);
	
	// Marker setzen mit eigener Marker-Funktion
	map = setTwMarkers(map);
}


/**
 * Erstellt alle Marker für die übergebene Google Map.
 * (Ruft intern für jeden Marker eine eigene Funktion auf)
 * @param {Object} map
 */
function setTwMarkers(map) {
	var marker01 = machTwMarker01();
	///var marker02 = machTwMarker02();
	///var marker03 = machTwMarker03();
	map.addOverlay(marker01);
	///map.addOverlay(marker02);
	///map.addOverlay(marker03);
	
	return map;
}


function machTwMarker01() {
	var point = new GPoint(12.576114, 52.42079);
	var adresse = "Marina Schoners Wehr";
	var marker = new GMarker(point);
	var html = machTwHtmlInfofenster(marker, adresse);
	GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html)});	
	
	return marker;
}
/*
function machTwMarker02() {
	var point = new GPoint(13.732, 51.048);
	var marker = new GMarker(point);
	var html = machTwHtmlInfofenster(marker);
	GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html)});
	
	return marker;
}

function machTwMarker03() {
	var point = new GPoint(13.750, 51.049);
	var marker = new GMarker(point);
	var html = machTwHtmlInfofenster(marker);
	GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html)});
	
	return marker;
}
*/

function machTwHtmlInfofenster(marker, adresse) {
	var point = marker.getLatLng();
	directionCount++;	
	directionMarkers[directionCount] = marker;
		
	// das Infofenster vor der Auswahl von Start- oder Zieladresse
	htmlDefault = '';
	htmlDefault += '<div class="twGmapInfo">';
	htmlDefault += ' <p class="headline">Stra&szlig;enverbindung anzeigen</p>';
	htmlDefault += ' <br />M&ouml;chten Sie diesen Punkt als Startpunkt oder<br />als Zielpunkt benutzen?';
	htmlDefault += ' <br /><a href="javascript:openTwInfofensterVon('+directionCount+')">&rarr; diesen Punkt als Startpunkt benutzen<\/a>';
	htmlDefault += ' <br /><a href="javascript:openTwInfofensterNach('+directionCount+')">&rarr; diesen Punkt als Zielpunkt benutzen<\/a>';
	htmlDefault += '</div>';
	directionHtmls[directionCount] = htmlDefault;
	
	// das Infofenster, in dem die Startadresse eingegeben werden kann
	htmlVon = '';
	htmlVon += '<div class="twGmapInfo">';
	htmlVon += ' <p class="headline">Reiseroute berechnen</p>';
	htmlVon += ' <p>Ihr aktueller Standort ist:</p>';
	htmlVon += ' <p><input type="text" size=40 maxlength=40 value="' + adresse + '" readonly="readonly" /></p>';
	htmlVon += ' <p class="eingabe">Geben Sie hier Ihre Ziel-Adresse ein:</p>';
	htmlVon += ' <p class="klein">(Beispiel: Mustergasse 7, 14773 Musterhausen)</p>';
	htmlVon += ' <form action="http://maps.google.com/maps" method="get" target="_blank">';
	htmlVon += '  <p><input type="text" size=40 maxlength=40 name="daddr" id="daddr" value="" tabindex="1" /></p>';
	htmlVon += '  <p><input type="hidden" name="saddr" value="' + point.lat() + ',' + point.lng() + ' (' + adresse + ')' + '" /></p>';
	htmlVon += '  <p class="submit"><input value="Reiseroute anzeigen" type="submit" /></p>';
	htmlVon += '  <p class="submit klein">(Ergebnis in neuem Fenster/Tab)</p>';
	htmlVon += ' </form>';
	htmlVon += '</div>';
	directionHtmlsVon[directionCount] = htmlVon;
	
	// das Infofenster, in dem die Zieladresse eingegeben werden kann
	htmlNach = '';
	htmlNach += '<div class="twGmapInfo">';
	htmlNach += ' <p class="headline">Reiseroute berechnen</p>';
	htmlNach += ' <p>Ihr aktuelles Ziel ist:</p>';
	htmlNach += ' <p><input type="text" size=40 maxlength=40 value="' + adresse + '" readonly="readonly" /></p>';
	htmlNach += ' <p class="eingabe">Geben Sie hier Ihre Start-Adresse ein:</p>';
	htmlNach += ' <p class="klein">(Beispiel: Mustergasse 7, 14773 Musterhausen)</p>';
	htmlNach += ' <form action="http://maps.google.com/maps" method="get" target="_blank">';
	htmlNach += '  <p><input type="text" size=40 maxlength=40 name="saddr" id="saddr" value="" /></p>';
	htmlNach += '  <p><input type="hidden" name="daddr" value="' + point.lat() + ',' + point.lng() + ' (' + adresse + ')' + '" /></p>';
	htmlNach += '  <p class="submit"><input type="submit" value="Reiseroute anzeigen" /></p>';
	htmlNach += '  <p class="submit klein">(Ergebnis in neuem Fenster/Tab)</p>';
	htmlNach += ' </form>';
	htmlNach += '</div>';
	directionHtmlsNach[directionCount] = htmlNach;
	
	return htmlDefault;
}



// functions that open the directions forms
function openTwInfofensterNach(i) {
	directionMarkers[i].openInfoWindowHtml(directionHtmlsNach[i]);
}
function openTwInfofensterVon(i) {
	directionMarkers[i].openInfoWindowHtml(directionHtmlsVon[i]);
}


