/*******************************************************************************
 * Javascript für twGmap05Sidebar - Version03
 ******************************************************************************/

var gmapId = "standorte";  // id des GoogleMap-div's im html-code
var lat    = "52.52";  // Breitengrad (Latitude) z.B: 51.041
var lon    = "13.38";  // Längengrad (Longitude) z.B: 13.748
var zoom   = 12;        // Zoom-Wert von 1 bis ca 17 (nicht in "")(1=ganzeWelt)
var sidebarId      = "standorte-list"  // id des Sitemap-div's im html-code
var sidebarHtml    = "";              // HTML-Code für die gesamte Sidebar
var sidebarMarkers = [];              // Array für die Marker
var sidebarCount   = 0;               // Zähler für die Marker (= Zeile in der Sidebar)
var sidebarZeichen = String.fromCharCode("A".charCodeAt(0) - 1);  // Buchstabe für das Marker-Icon
var sidebarLastLinkid;                // id des zuletzt angeklickten Markers/Verweises


/**
 * Prüft auf kompatiblen Browser und vorhandene Variablen und ruft die
 * Funktion auf, die die GoogleMap erstellt.
 */
function twGmapLoad() {
	if (GBrowserIsCompatible()) {
		// die Google Map (twGmap)
		if (!document.getElementById(gmapId)) {
			alert("Fehler: die Google Map mit der id "+ gmapId+ " 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ä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(gmapId, lat, lon, zoom);			
		}
		// die Sidebar (twGmapSidebar)
		if (!document.getElementById(sidebarId)) {
			alert("Fehler: die Sidebar mit der id "+ sidebarId+ " konnte nicht auf dieser Webseite gefunden werden!");
			return false;			
		} else {			
			document.getElementById(sidebarId).innerHTML = sidebarHtml;
		}
	}
}


/**
 * 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());
	map.addControl(new GOverviewMapControl(new GSize(274,160))); 
	// 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);
	
	// Sidebar-Zeile wieder demarkieren, wenn ein Infofenster geschlossen wird
	GEvent.addListener(map,"infowindowclose", function() {
		document.getElementById(sidebarLastLinkid).style.background="transparent";
	});
}


/**
 * 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();
	var marker04 = machTwMarker04();
	var marker05 = machTwMarker05();
	map.addOverlay(marker01);
	map.addOverlay(marker02);
	map.addOverlay(marker03);
	map.addOverlay(marker04);
	map.addOverlay(marker05);
	
	return map;
}


function machTwMarker01() {
	var point = new GLatLng(52.51804,13.296429750000001);
	var icon = machTwIconBuchstabeFortlaufend();
	var marker = new GMarker(point, {icon:icon});
	var html   = "<h5><a href='http://www.kids-studio-berlin.de' title='visit web site' class='external'>Kids Studio Berlin</a></h5><p>Schlossstr. 66<br />14059 Berlin<br />+49 (0)30 43 66 16 23<br /><a href='mailto:info@kids-studio-berlin.de' title='send e-mail'>info@kids-studio-berlin.de</a></p><p><a href='http://maps.google.de/maps?f=q&#38;source=s_q&#38;hl=de&#38;geocode=&#38;q=Schlossstr.+66,+14059+Berlin+&#38;sll=52.59133,13.295195&#38;sspn=0.007404,0.022724&#38;ie=UTF8&#38;hq=&#38;hnear=Schlo%C3%9Fstra%C3%9Fe+66,+Charlottenburg+14059+Berlin&#38;z=16' title='look up address' class='external'>get directions</a></p>";
	var linkid = "link"+sidebarCount;   
		
	GEvent.addListener(marker, "click", function() { 
		marker.openInfoWindowHtml(html);
		document.getElementById(linkid).style.background="#a97fb5";   
		sidebarLastLinkid=linkid;   
	});  	
	
	machZeileInTwGmapSidebar("Charlottenburg", marker, linkid);      
	
	return marker;
}

function machTwMarker02() {
	var point = new GLatLng(52.616794,13.311975);
	var icon = machTwIconBuchstabeFortlaufend();
	var marker = new GMarker(point, {icon:icon});
	var html   = "<h5><a href='http://www.kids-studio-berlin.de' title='visit web site' class='external'>Kids Studio Berlin</a></h5><p>Wachsmuthstraße 24-28,<br />13467 Berlin<br />+49 (0)30 43 66 16 23<br /><a href='mailto:info@kids-studio-berlin.de' title='send e-mail'>info@kids-studio-berlin.de</a></p><p><a href='http://maps.google.de/maps?f=q&#38;hl=de&#38;geocode=&#38;q=Wachsmuthstra%C3%9Fe+24-28,+13467+berlin&#38;sll=53.569511,9.944108&#38;sspn=0.007403,0.022745&#38;ie=UTF8&#38;ll=52.616794,13.311975&#38;spn=0.007569,0.022745&#38;z=16&#38;iwloc=addr' title='look up address' class='external'>get directions</a></p>";
	var linkid = "link"+sidebarCount;
		
	GEvent.addListener(marker, "click", function() { 
		marker.openInfoWindowHtml(html);
		document.getElementById(linkid).style.background="#a97fb5";  
		sidebarLastLinkid=linkid;
	});  	
	
	machZeileInTwGmapSidebar("Hermsdorf", marker, linkid);      
	
	return marker;
}

function machTwMarker04() {
	var point = new GLatLng(52.591327500000006,13.294926);
	var icon = machTwIconBuchstabeFortlaufend();
	var marker = new GMarker(point, {icon:icon});
	var html   = "<h5><a href='http://www.kids-studio-berlin.de' title='visit web site' class='external'>Kids Studio Berlin</a></h5><p>Marzahnstraße 11, 13509 Berlin<br />+49 (0)30 43 66 16 23<br /><a href='mailto:info@kids-studio-berlin.de' title='send email'>info@kids-studio-berlin.de</a></p><p><a href='http://maps.google.de/maps?f=q&#38;source=s_q&#38;hl=de&#38;q=Marzahnstra%C3%9Fe+11,+Tegel+13509+Berlin&#38;sll=52.431622,13.205091&#38;sspn=0.007431,0.022724&#38;ie=UTF8&#38;cd=1&#38;geocode=FeB6IgMdTt3KAA&#38;split=0&#38;hq=&#38;hnear=Marzahnstra%C3%9Fe+11,+Tegel+13509+Berlin&#38;ll=52.59133,13.295195&#38;spn=0.007404,0.022724&#38;z=16' title='look up address' class='external'>get directions</a></p";
	var linkid = "link"+sidebarCount;
		
	GEvent.addListener(marker, "click", function() { 
		marker.openInfoWindowHtml(html);
		document.getElementById(linkid).style.background="#a97fb5";  
		sidebarLastLinkid=linkid; 
	});  	
	
	machZeileInTwGmapSidebar("Tegel", marker, linkid);           
	
	return marker;
}


function machTwMarker05() {
	var point = new GLatLng(52.431696,13.204993);
	var icon = machTwIconBuchstabeFortlaufend();
	var marker = new GMarker(point, {icon:icon});
	var html   = "<h5><a href='http://www.kids-studio-berlin.de' title='visit web site' class='external'>Kids Studio Berlin</a></h5><p>Von-Luck-Str. 24,<br />14129 Berlin<br />+49 (0)30 43 66 16 23<br /><a href='mailto:info@kids-studio-berlin.de' title='direkt mailen'>info@kids-studio-berlin.de</a></p><p><a href='http://maps.google.de/maps?f=q&#38;hl=de&#38;geocode=&#38;q=Von-Luck-Str.+24,+berlin&#38;sll=51.124213,10.546875&#38;sspn=18.099046,33.837891&#38;ie=UTF8&#38;ll=52.431774,13.205094&#38;spn=0.008281,0.016522&#38;z=16&#38;iwloc=addr&#38;om=1' title='look up address' class='external'>get directions</a></p>";
	var linkid = "link"+sidebarCount;
		
	GEvent.addListener(marker, "click", function() { 
		marker.openInfoWindowHtml(html);
		document.getElementById(linkid).style.background="#a97fb5";  
		sidebarLastLinkid=linkid; 
	});  	
	
	machZeileInTwGmapSidebar("Zehlendorf", marker, linkid);           
	
	return marker;
}

function machTwMarker03() {
	var point = new GLatLng(52.5303075,13.3874025);
	var icon = machTwIconBuchstabeFortlaufend();
	var marker = new GMarker(point, {icon:icon});
	var html   = "<h5><a href='http://www.kids-studio-berlin.de' title='visit web site' class='external'>Kids Studio Berlin</a></h5><p>Eichendorffstr. 17<br />10115 Berlin<br />+49 (0)30 43 66 16 23<br /><a href='mailto:info@kids-studio-berlin.de' title='direkt mailen'>info@kids-studio-berlin.de</a></p><p><a href='http://maps.google.de/maps?f=q&#38;source=s_q&#38;hl=de&#38;geocode=&#38;q=Eichendorffstr.+17+,10115+Berlin+&#38;sll=52.518041,13.29643&#38;sspn=0.007417,0.022724&#38;ie=UTF8&#38;hq=&#38;hnear=Eichendorffstra%C3%9Fe+17,+Mitte+10115+Berlin&#38;z=16' title='look up address' class='external'>get directions</a></p>";
	var linkid = "link"+sidebarCount;
		
	GEvent.addListener(marker, "click", function() { 
		marker.openInfoWindowHtml(html);
		document.getElementById(linkid).style.background="#a97fb5";  
		sidebarLastLinkid=linkid; 
	});  	
	
	machZeileInTwGmapSidebar("Mitte", marker, linkid);           
	
	return marker;
}


/**
 * Schreibt den HTML-Code für eine Zeile(Verweis) in die globale Variable 'sidebarHtml'.
 * Dabei wird auch gleich der übergebene Marker in das Marker-Array eingefügt,
 * und der Zähler (zählt alle Marker) hochgezählt.
 * @param {Object} text   -der anzuzeigende Text für diese Zeile in der Sidebar
 * @param {Object} marker -der Marker, auf den der Verweis zeigt
 */
function machZeileInTwGmapSidebar(text, marker, linkid) {
	sidebarMarkers[sidebarCount] = marker;
	sidebarHtml += '<li id="'+ linkid+ '">';
	//sidebarHtml += '<span class="sidebarZeichen">'+ sidebarZeichen+ '</span>';
	sidebarHtml += '<a href="javascript:twGmapSidebarIsClicked(' + sidebarCount + ')">' + text + '</a>';
	sidebarHtml += '</li>';
	sidebarCount ++;
}

/**
 * Event-Handler für Klick auf Marker, öffnet das dazugehörige Info-Fenster.
 * @param {Object} i -ein bestimmter Marker aus dem Marker-Array
 */
function twGmapSidebarIsClicked(i) {
	GEvent.trigger(sidebarMarkers[i], "click");
}

/**
 * Liefert ein GIcon-Objekt, das einen Marker darstellt.
 * Hier stellt das Icon einen Buchstabe dar. 
 * Über die globale Variable 'sidebarZeichen' wird bei jedem Durchlauf der 
 * nächsthöhere Buchstabe des Alphabets angezeigt. 
 */
function machTwIconBuchstabeFortlaufend() {
	//sidebarZeichen = String.fromCharCode(sidebarZeichen.charCodeAt(0) + 1);
	var icon = new GIcon(G_DEFAULT_ICON);
	//var icon = new GIcon();
	icon.image = "img/marker" + sidebarCount + ".png";
    icon.iconSize = new GSize(20, 47);
	icon.iconAnchor = new GPoint(0, 47)
	icon.shadow ="img/marker-shadow.png";
	icon.shadowSize = new GSize(39, 37);
	icon.infoWindowAnchor = new GPoint(10,40)
	icon.printImage = "http://maps.google.com/mapfiles/markerie.gif"
	icon.mozPrintImage = "http://maps.google.com/mapfiles/markerff.gif"
	
	return icon;
}



