/*******************************************************************************
 * Javascript fuer twGmap06Directions Version01
 * angepasst: andrea.michalowski@it-informatik.de
 ******************************************************************************/

/**
 * elementId = "twGmap";	// muss im html an ein <div> als id vergeben werden
 * lat       = "48.397459";	// Magirusstrasse 17 - Breitengrad (Latitude) z.B: 48.39746
 * lon       = "9.964779";	// Magirusstrasse 17 - Laengengrad (Longitude) z.B: 9.96478
 * lat       = "48.400146";	// Magirus-Deutz-Strasse 17 - Breitengrad (Latitude)
 * lon       = "9.957304";	// Magirus-Deutz-Strasse 17 - Laengengrad (Longitude)
 * lat       = "53.653541";	// Hamburg - Breitengrad (Latitude)
 * lon       = "9.985456";	// Hamburg - Laengengrad (Longitude)
 * zoom      = 11;			// einen Wert von 1 bis ca 17 (nicht in "" setzen)
 * standort	 = "1";			// Standort: 1-Magirusstrasse 17, 2-Magirus-Deutz-Strasse 17, 3-Hamburg
 */

var elementId = "twGmap";
var lat       = "48.397459";
var lon       = "9.964779";
var zoom      = 11;
var directionMarkers   = [];
var directionHtmls     = [];
var directionHtmlsNach = [];
var directionHtmlsVon  = [];
var directionCount     = 0;

/**
 * Prueft auf kompatiblen Browser und vorhandene Variablen und ruft die
 * Funktion auf, die die GoogleMap erstellt.
 */
function twGmapLoad(standort) {
	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.397459";
				alert("Fehler: Der Breitengrad(lat) wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			if (lon=="" || isNaN(lon)) {
				lon = "9.964779";
				alert("Fehler: Der Laegengrad(lon) wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			if (typeof zoom == "undefined") {
				zoom = 11;
				alert("Fehler: Die Zoomstufe wurde im Skript nicht korrekt eingetragen!\nEin Defaultwert wird deshalb benutzt!");
			}
			
			if(standort == "1") {
				lat = "48.397459";
				lon = "9.964779";
				setTwGmap(elementId, lat, lon, standort, zoom);
			}
			if(standort == "2") {
				lat = "48.400146";
				lon = "9.957304";
				setTwGmap(elementId, lat, lon, standort, zoom);
			}
			if(standort == "3") {
				lat = "53.653541";
				lon = "9.985456";
				setTwGmap(elementId, lat, lon, standort, zoom);
			}
		}
	}
}

/**
 * Erstellt die GoogleMap in dem <div>-Bereich mit der uebergebenen id
 * @param {Object} id		-im div-Bereich mit dieser id wird die Map dargestellt
 * @param {Object} lat		-Breitengrad 
 * @param {Object} lon		-Laengengrad
 * @param {Object} standort	-Niederlassung
 * @param {Object} zoom		-Zoomstufe 1 bis 17 (ganze Welt bis kleiner Ausschnitt)
 */
function setTwGmap(id, lat, lon, standort, zoom) {
	// die Map (fuer 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, Laengengrad), 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
	var marker = setTwMarker(standort);
	map.addOverlay( marker );
	
	GEvent.trigger( marker, "click" );
}



function setTwMarker(standort) {
	var point = new GPoint(lon, lat);
	var marker = new GMarker(point);
	var adresse = "";
	var html = "";
	
	if(standort == "1")
		adresse = "Magirusstrasse 17";
	if(standort == "2")
		adresse = "Magirus-Deutz-Strasse 17";
	if(standort == "3")
		adresse = "Hamburg";
	
	html = setTwHtmlInfofenster(marker, adresse, standort);
	GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html)});
	
	return marker;
}

function setTwHtmlInfofenster(marker, adresse, standort) {
	var point = marker.getLatLng();
	directionCount++;	
	directionMarkers[directionCount] = marker;
	
	var anschrift = "";
	if(standort == "1")
		anschrift = "Magirusstra&szlig;e 17 in 89077 Ulm";
	if(standort == "2")
		anschrift = "Magirus-Deutz-Stra&szlig;e 17 in 89077 Ulm";
	if(standort == "3")
		anschrift = "Nordport Towers, S&uuml;dportal 3 in 22848 Hamburg-Norderstedt";
		
	// Infofenster
	htmlDefault = '';
	htmlDefault += '<div class="twGmapInfo">';
	htmlDefault += ' <b>IT-Informatik GmbH</b><br />';
	htmlDefault += anschrift;
	htmlDefault += ' <p><a href="javascript:openTwInfofensterNach(' + directionCount + ')" style="color:#94A5CD;">Route berechnen<\/a></p>';
	htmlDefault += '</div>';
	directionHtmls[directionCount] = htmlDefault;
	
	// das Infofenster, in dem die Zieladresse eingegeben werden kann
	htmlNach = '';
	htmlNach += '<div class="twGmapInfo">';
	htmlNach += ' Geben Sie Ihre Start-Adresse ein:<br />';
	htmlNach += ' <span class="klein">(Beispiel: Passau, Br&auml;ugasse 7):</span>';
	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="' + anschrift + '" /></p>';
	htmlNach += '  <p class="submit"><input type="submit" value="Route berechnen" /></p>';
	htmlNach += '  <p class="submit klein">(die Route 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]);
}

