/*******************************************************************************
 * Javascript für twGmap06Directions Version01
 ******************************************************************************/

var elementId = "twGmap";  // muss im html an ein <div> als id vergeben werden
var lat       = "48.26233988157537";  // Breitengrad (Latitude) z.B: 51.041
var lon       = "11.555680632591248";  // Längengrad (Longitude) z.B: 13.748
var zoom      = 17;        // 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 = 48.26233988157537;
				alert("Fehler: Der Breitengrad(lat) wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			if (lon=="" || isNaN(lon)) {
				lon = "11.555680632591248";
				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 GLargeMapControl());
	// mit Typ-Auswahl (auch noch: GMapTypeControl, GHierarchicalMapTypeControl, GOverviewMapControl)
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	// ((Breitengrad, Längengrad), Zoomstufe, G_NORMAL_MAP/G_SATELLITE_MAP/G_HYBRID_MAP)
	map.setCenter(new GLatLng(lat, lon), zoom, G_HYBRID_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(11.555680632591248, 48.26233988157537);
	var adresse = "MedCare Visions GmbH | Sitz Bovenden";
	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ßenverbindung anzeigen</p> ';
	htmlDefault += ' <br />Hier bieten wir Ihnen die Möglichkeit Ihre nächste Geschäftsreise nach MedCare Visions zu planen.<br />';
	htmlDefault += ' <br />Möchten Sie Ihre Reise bei <b>MedCare Visions</b> beginnen oder<br />von einen anderen Ort nach <b>MedCare Visions</b> reisen?<br />';
	htmlDefault += ' <br /><a href="javascript:openTwInfofensterVon('+directionCount+')">&rarr; Von <b>MedCare Visons</b> die Reise beginnen<\/a>';
	htmlDefault += ' <br /><a href="javascript:openTwInfofensterNach('+directionCount+')">&rarr; Sie möchten zu <b>MedCare Visions</b> reisen<\/a>';
	htmlDefault += '</div>';
	directionHtmls[directionCount] = htmlDefault;
	
	// das Infofenster, in dem die Startadresse eingegeben werden kann
	htmlVon = '';
	htmlVon += '<div class="twGmapInfo">';
	htmlVon += ' <p class="headline">Straßenverbindung anzeigen</p><br />';
	htmlVon += ' <p>Okay, Sie starten bei <b>MedCare Visions</b>!</p><br />';
	htmlVon += ' <p>Geben Sie nun Ihre Ziel-Adresse ein:</p>';
	htmlVon += ' <p class="klein">(Beispiel: Koblenz, Berliner Ring 17)</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="Straßenverbindung anzeigen" type="submit" /></p>';
	htmlVon += '  <p class="submit klein">(die Verbindung wird in einem neuen Fenster/Tab angezeigt)</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">Straßenverbindung anzeigen</p><br />';
	htmlNach += ' <p>Okay, Sie möchten zu <b>MedCare Visions</b> reisen!</p><br />';
	htmlNach += ' <p>Geben Sie nun noch Ihre Start-Adresse ein:</p>';
	htmlNach += ' <p class="klein">(Beispiel: Berlin, Alexanderplatz 17)</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="Straßenverbindung 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]);
}
function openTwInfofensterVon(i) {
	directionMarkers[i].openInfoWindowHtml(directionHtmlsVon[i]);
}


