/*******************************************************************************
 * Javascript f&uuml;r twGmap01einfach
 ******************************************************************************/

var elementId = "twGmap";  		// muss im html an ein <div> als id vergeben werden
var lat       = "51.467573";	// Breitengrad (Latitude) z.B: 51.041
var lon       = "6.845411"; 	// L&auml;ngengrad (Longitude) z.B: 13.748
var zoom      = 16;        		// einen Wert von 1 bis ca 17 (nicht in "" setzen)

var directionMarkers   = [];
var directionHtmls     = [];
var directionHtmlsNach = [];
var directionHtmlsVon  = [];
var directionCount     = 0;


/**
 * Pr&uuml;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 = 51.041;
				alert("Fehler: Der Breitengrad(lat) wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			if (lon=="" || isNaN(lon)) {
				lon = "13.748";
				alert("Fehler: Der L&auml;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);
		}
	}
}


function machTwGmap(id, lat, lon, zoom) {
	// die Map (f&uuml;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&auml;ngengrad), Zoomstufe, G_NORMAL_MAP/G_SATELLITE_MAP/G_HYBRID_MAP)
	map.setCenter(new GLatLng(lat, lon), zoom, G_NORMAL_MAP);
	map = setTwMarkers(map);
}


function setTwMarkers(map) {
	var marker01 = machTwMarker01();
	map.addOverlay(marker01);
	return map;
}


function machTwMarker01() {
	var point = new GPoint(6.845411, 51.467573)
	var adresse = "Beautywash, Hermann-Albertz-Str. 10-16";
	var marker = new GMarker(point);
	var html = machTwHtmlInfofenster(marker, adresse);
	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='img'>";
	htmlDefault += "      <img src='../images/Beautywash_160x120.jpg'; ";
	htmlDefault += "           width='160'; height='120'; alt='Beautywash' />";
	htmlDefault += "    </a>"
	htmlDefault += "  </p>";
	htmlDefault += ' <p class="headline">Anfahrtsbeschreibung</p>';
	htmlDefault += ' <br /><a href="javascript:openTwInfofensterNach('+directionCount+')">Startadresse eingeben<\/a>';
	htmlDefault += "  <p class='twClear'>&nbsp;</p>";
	htmlDefault += '</div>';
	directionHtmls[directionCount] = htmlDefault;

	// das Infofenster, in dem die Zieladresse eingegeben werden kann
	htmlNach = '';
	htmlNach += '<div class="twGmapInfo">';
	htmlNach += ' <p class="headline">Anfahrtsbeschreibung</p>';
	htmlNach += ' <p>Zieladresse:</p>';
	htmlNach += ' <p><input type="text" size=40 maxlength=40 value="' + adresse + '" readonly="readonly" /></p>';
	htmlNach += ' <p>Bitte geben Sie Ihre Start-Adresse ein:</p>';
	htmlNach += ' <p class="klein">(Beispiel: Oberhausen, Centroallee 280)</p>';
	htmlNach += ' <form action="http://maps.google.de/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="Wegbeschreibung anzeigen" /></p>';
	htmlNach += '  <p class="submit klein">(die Verbindung wird in einem neuen Fenster/Tab angezeigt)</p>';
	htmlNach += ' </form>';
	htmlNach += '</div>';
	directionHtmlsNach[directionCount] = htmlNach;
	
	return htmlDefault;
}


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