/*
*	window.onunload steht hier, weil unter Joomla! das body tag beim Aufruf des Scripts bereits geladen ist
*/
window.onunload = GUnload;	// Gegen memory overflow im IE

showMap();

function showMap() //
{
	var initZoomLevel = 13;
	var initBreite = 52.492815; //52.503057;//
	var initLaenge = 13.462029; //13.465633;//
	var zoomLevel = 14;
	

// die Variablen fŸr die Koordinate diverser Orte

	var bhfTreptowerPark = new GLatLng(52.493771,13.461465);  // "berlin s-bahnhof treptower park";
	var laubeNeukoelln = new GLatLng(52.479836,13.462431); //"berlin mergenthalerring";
	var beermannstr = new GLatLng(52.490179,13.456433); //"berlin treptow beermannstr";
	var amTreptowerPark = new GLatLng(52.492321,13.458536); //"berlin treptow elsenstr";
	var osthafen = new GLatLng(52.49673,13.464383); //"berlin friedrichshain markgrafendamm";
	var frankfurterAllee = new GLatLng(52.513618,13.476024); //"berlin frankfurter allee"
	var ostkreuz = new GLatLng(52.503085,13.469008); //"berlin ostkreuz";
	

// die Info die angezeigt wird wenn man auf den entsprechenden Marker klickt


	var myInfos = new Array();
	myInfos[bhfTreptowerPark] = "Der Eingang zum S-Bahnhof Treptower<br />Park wird komplett &uuml;bertunnelt.";
	myInfos[laubeNeukoelln] = "Die Autobahn f&uuml;hrt direkt durch die<br />Neuk&ouml;llner Kleing&auml;rten.";
	myInfos[beermannstr] = "Drei Wohnh&auml;user aus der Gr&uuml;nderzeit<br/> werden abgerissen.";
	myInfos[amTreptowerPark] = "Verkehrsstaus rund um die Elsenstr<br />bis in Kreuzberg rein,<br />weite Teile des Treptower Parks werden<br />durch L&auml;rm und Abgase abgewertet.";
	myInfos[osthafen] = "Die Autobahnbr&uuml;cke wird direkt neben<br />die Elsenbr&uuml;cke gebaut.<br />Das Geb&auml;ude der Osthafendirektion wird<br />abgerissen. ";
	myInfos[frankfurterAllee] = "Die Autobahn geht direkt am<br />S-Bhf Frankfurter Allee vorbei.<br />Der Vorplatz zum Ringcenter wird<br />&uuml;berbr&uuml;ckt.";
	myInfos[ostkreuz] = "Am Ostkreuz geht die Autobahn<br /> unter den Gleisen durch <br />und kommt wenig sp&auml;ter in der<br />G&uuml;rtelstr wieder raus."; 
	
// die Strings zur Anzeige auf den Buttons

	var butLaubeNeukoelln = "Mergenthalerring";
	var butBeermannstr = "Beermannstr.";
	var butAmTreptowerPark = "Elsenstr, Am Treptower Park, Puschkinallee";
	var butBhfTreptowerPark = "S-Bahnhof Treptower Park";
	var butOsthafen = "Osthafen";
	var butFrankfurterAllee = "Frankfurter Allee";
	var butOstkreuz = "Ostkreuz";
	var butBauabschnitt1 = "1. Bauabschnitt";
	var butBauabschnitt2 = "2. Bauabschnitt";
	var butBauabschnitt3 = "3. Bauabschnitt";


	if (GBrowserIsCompatible()) 
	{
	
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(initBreite,initLaenge), initZoomLevel);
		//map.setMapType(G_SATELLITE_MAP);
		var geocoder = new GClientGeocoder();
		
		var myMarker;	// muss ausserhalb der callback-Funktion deklariert werden
		
		function showAddress(address)
		{
			map.setCenter(address, zoomLevel);
			if(myMarker)
		   	{
			 	//alert(myMarker.isHidden());
			 	myMarker.hide();
			 	map.removeOverlay(myMarker);
		   	}
		   
		   	myMarker = new GMarker(address);
		   	map.addOverlay(myMarker);
		  
		   	myMarker.openInfoWindowHtml(myInfos[address]);
		}
		
  		
  		function GoToLocation() {}
		
		GoToLocation.prototype = new GControl();


		// ein div für jeden Button, die Buttons werden einem div control Element hinzugefügt
		// das control div wird dem map container hinzugefügt
		GoToLocation.prototype.initialize = function(map) 
		{
			var container = document.createElement("div");

			// die einzelnen Buttons

			// Frankfurter Allee
			var goFrankfurterAllee = document.createElement("div");
			this.setButtonStyle_(goFrankfurterAllee);
			container.appendChild(goFrankfurterAllee);
			goFrankfurterAllee.appendChild(document.createTextNode(butFrankfurterAllee));
			GEvent.addDomListener(goFrankfurterAllee, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(frankfurterAllee)); });

			
			
			// Ostkreuz
			var goOstkreuz = document.createElement("div");
			this.setButtonStyle_(goOstkreuz);
			container.appendChild(goOstkreuz);
			goOstkreuz.appendChild(document.createTextNode(butOstkreuz));
			GEvent.addDomListener(goOstkreuz, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(ostkreuz)); });

			
			
			// Osthafen
			var goOsthafen = document.createElement("div");
			this.setButtonStyle_(goOsthafen);
			container.appendChild(goOsthafen);
			goOsthafen.appendChild(document.createTextNode(butOsthafen));
			GEvent.addDomListener(goOsthafen, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(osthafen)); });

			
			
			// S-Bhf Treptower Park
			var goTreptowerPark = document.createElement("div");
			this.setButtonStyle_(goTreptowerPark);
			container.appendChild(goTreptowerPark);
			goTreptowerPark.appendChild(document.createTextNode(butBhfTreptowerPark));
			GEvent.addDomListener(goTreptowerPark, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(bhfTreptowerPark)); });

			
			
			// Am Treptower Park
			var goAmTreptowerPark = document.createElement("div");
			this.setButtonStyle_(goAmTreptowerPark);
			container.appendChild(goAmTreptowerPark);
			goAmTreptowerPark.appendChild(document.createTextNode(butAmTreptowerPark));
			GEvent.addDomListener(goAmTreptowerPark, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(amTreptowerPark)); });

			
			
			// Beermannstr
			var goBeermannstr = document.createElement("div");
			this.setButtonStyle_(goBeermannstr);
			container.appendChild(goBeermannstr);
			goBeermannstr.appendChild(document.createTextNode(butBeermannstr));
			GEvent.addDomListener(goBeermannstr, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(beermannstr)); });

			
			
			// Neuköllner Laubenkolonie
			
			var goLaubeNeukoelln = document.createElement("div");
			this.setButtonStyle_(goLaubeNeukoelln);
			container.appendChild(goLaubeNeukoelln);
			goLaubeNeukoelln.appendChild(document.createTextNode(butLaubeNeukoelln));
			GEvent.addDomListener(goLaubeNeukoelln, "click", function() {zeigeBauabschnitte(true,false,false); map.panTo(showAddress(laubeNeukoelln)); });

			
			// 1.Bauabschnitt
			var showBauabschnitt1 = document.createElement("div");
			this.setButtonStyle_(showBauabschnitt1);
			container.appendChild(showBauabschnitt1);
			showBauabschnitt1.appendChild(document.createTextNode(butBauabschnitt1));
			GEvent.addDomListener(showBauabschnitt1, "click", function() {zeigeBauabschnitte(true,false,false); map.setCenter(new GLatLng(initBreite,initLaenge), initZoomLevel); });
				
			
			// 2.Bauabschnitt
			var showBauabschnitt2 = document.createElement("div");
			this.setButtonStyle_(showBauabschnitt2);
			container.appendChild(showBauabschnitt2);
			showBauabschnitt2.appendChild(document.createTextNode(butBauabschnitt2));
			GEvent.addDomListener(showBauabschnitt2, "click", function() {zeigeBauabschnitte(false,true,false); map.setCenter(new GLatLng(initBreite,initLaenge), initZoomLevel); });
			
			// 3.Bauabschnitt
			var showBauabschnitt3 = document.createElement("div");
			this.setButtonStyle_(showBauabschnitt3);
			container.appendChild(showBauabschnitt3);
			showBauabschnitt3.appendChild(document.createTextNode(butBauabschnitt3));
			GEvent.addDomListener(showBauabschnitt3, "click", function() {zeigeBauabschnitte(false,false,true); map.setCenter(new GLatLng(initBreite,initLaenge), initZoomLevel); });
			
			
			
			
			map.getContainer().appendChild(container);
			return container;
		
			
		}


		// Position der Buttons
			
			
		GoToLocation.prototype.getDefaultPosition = function() 
		{
	 		return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 220));
		}


		// Sets the proper CSS for the given button element.
		
		GoToLocation.prototype.setButtonStyle_ = function(button) 
		{
			button.style.color = "#000000";
	  		button.style.backgroundColor = "rgb(77, 139, 255)";//#3ded0e
	  		button.style.font = "small Arial";
	  		button.style.border = "1px solid black";
	  		button.style.padding = "2px";
	  		button.style.marginBottom = "3px";
	  		button.style.textAlign = "center";
	  		button.style.width = "10em";
	  		button.style.cursor = "pointer";
			
	  		button.style.link = "#000000";
		}

		
		// ERSTER ABSCHNITT, Neukšlln - Treptow ------------------------------------------------

		
		
		// Trasse 1. Bauabschnitt als FlŠche, beginnend NW, weiter gegen Uhrzeigersinn
		var bauabschnitt1_1 = new GLatLng(52.490999,13.458617);	// Am Treptower Park
		var bauabschnitt1_2 = new GLatLng(52.490342,13.458086);
		var bauabschnitt1_3 = new GLatLng(52.489362,13.457667);	// Hšhe Beermannstr
		var bauabschnitt1_4 = new GLatLng(52.488613,13.457748);
		var bauabschnitt1_5 = new GLatLng(52.487803,13.457855);
		var bauabschnitt1_5a = new GLatLng(52.487121,13.458064);
		var bauabschnitt1_6 = new GLatLng(52.486274,13.458692);
		var bauabschnitt1_7 = new GLatLng(52.485699,13.459164);
		var bauabschnitt1_8 = new GLatLng(52.485138,13.459615);	// Hšhe Kiefholzstr
		var bauabschnitt1_9 = new GLatLng(52.484667,13.459765);
		var bauabschnitt1_10 = new GLatLng(52.483948,13.460044);
		var bauabschnitt1_11 = new GLatLng(52.483269,13.460129);
		var bauabschnitt1_12 = new GLatLng(52.482498,13.460022);
		var bauabschnitt1_13 = new GLatLng(52.481701,13.459829);
		var bauabschnitt1_14 = new GLatLng(52.480564,13.459636);
		var bauabschnitt1_15 = new GLatLng(52.479309,13.460172);
		var bauabschnitt1_16 = new GLatLng(52.478159,13.461009);
		var bauabschnitt1_17 = new GLatLng(52.477676,13.46131);	// Hšhe Dieselstr
		var bauabschnitt1_18 = new GLatLng(52.476685,13.461854);
		var bauabschnitt1_19 = new GLatLng(52.476039,13.461884);
		var bauabschnitt1_20 = new GLatLng(52.474918,13.461803);
		var bauabschnitt1_21 = new GLatLng(52.473899,13.461653);
		var bauabschnitt1_22 = new GLatLng(52.472487,13.460988);
		var bauabschnitt1_23 = new GLatLng(52.471768,13.46043);	// Hšhe Sonnenallee
		var bauabschnitt1_24 = new GLatLng(52.471073,13.460038);
		var bauabschnitt1_25 = new GLatLng(52.469863,13.459566);
		var bauabschnitt1_26 = new GLatLng(52.468609,13.45918);	// Neukšllnische Allee
		var bauabschnitt1_27 = new GLatLng(52.467386,13.458708);
		var bauabschnitt1_28 = new GLatLng(52.466883,13.458472);
		var bauabschnitt1_29 = new GLatLng(52.466223,13.457968);
		var bauabschnitt1_30 = new GLatLng(52.465726,13.457431);
		var bauabschnitt1_31 = new GLatLng(52.465151,13.456605);	// Anschluss SŸdpunkt
		var bauabschnitt1_32 = new GLatLng(52.46487,13.456884);	// Anschluss SŸdpunkt
		var bauabschnitt1_33 = new GLatLng(52.46551,13.457817);
		var bauabschnitt1_34 = new GLatLng(52.466046,13.45844);
		var bauabschnitt1_35 = new GLatLng(52.466635,13.45889);
		var bauabschnitt1_36 = new GLatLng(52.467497,13.459437);
		var bauabschnitt1_37 = new GLatLng(52.467968,13.459674);
		var bauabschnitt1_38 = new GLatLng(52.46855,13.459834);
		var bauabschnitt1_39 = new GLatLng(52.469752,13.460382);
		var bauabschnitt1_40 = new GLatLng(52.470896,13.460961);
		var bauabschnitt1_41 = new GLatLng(52.471548,13.461291);	// Hšhe Sonnenallee
		var bauabschnitt1_42 = new GLatLng(52.472372,13.46186);
		var bauabschnitt1_43 = new GLatLng(52.473955,13.462602);
		var bauabschnitt1_44 = new GLatLng(52.475013,13.462645);
		var bauabschnitt1_45 = new GLatLng(52.476144,13.462731);
		var bauabschnitt1_46 = new GLatLng(52.476765,13.46271);
		var bauabschnitt1_47 = new GLatLng(52.477649,13.462224);	// Hšhe Dieselstr
		var bauabschnitt1_48 = new GLatLng(52.478407,13.461682);
		var bauabschnitt1_49 = new GLatLng(52.479469,13.460819);
		var bauabschnitt1_50 = new GLatLng(52.480606,13.460272);
		var bauabschnitt1_51 = new GLatLng(52.481752,13.46047);
		var bauabschnitt1_52 = new GLatLng(52.482582,13.460679);
		var bauabschnitt1_53 = new GLatLng(52.483334,13.460712);
		var bauabschnitt1_54 = new GLatLng(52.48402,13.460642);
		var bauabschnitt1_55 = new GLatLng(52.484732,13.460323); 	// Hšhe Kiefholzstr
		var bauabschnitt1_56 = new GLatLng(52.485817,13.459851);
		var bauabschnitt1_57 = new GLatLng(52.486392,13.459314);
		var bauabschnitt1_57a = new GLatLng(52.487095,13.458837);
		var bauabschnitt1_58 = new GLatLng(52.487703,13.458751);//52.48698,13.458799
		var bauabschnitt1_59 = new GLatLng(52.488365,13.458627);
		var bauabschnitt1_60 = new GLatLng(52.489172,13.458483);	// Hšhe Beermannstr
		var bauabschnitt1_61 = new GLatLng(52.490107,13.458762);
		var bauabschnitt1_62 = new GLatLng(52.490655,13.459094); // Am Treptower Park
		
		
		var bauabschnitt1_points = [bauabschnitt1_1, bauabschnitt1_2, bauabschnitt1_3, bauabschnitt1_4, bauabschnitt1_5, bauabschnitt1_5a, bauabschnitt1_6, bauabschnitt1_7, bauabschnitt1_8, bauabschnitt1_9,
			bauabschnitt1_10, bauabschnitt1_11, bauabschnitt1_12, bauabschnitt1_13, bauabschnitt1_14, bauabschnitt1_15, bauabschnitt1_16, bauabschnitt1_17, bauabschnitt1_18, bauabschnitt1_19,
			bauabschnitt1_20, bauabschnitt1_21, bauabschnitt1_22, bauabschnitt1_23, bauabschnitt1_24, bauabschnitt1_25, bauabschnitt1_26, bauabschnitt1_27, bauabschnitt1_28, bauabschnitt1_29,
			bauabschnitt1_30, bauabschnitt1_31, bauabschnitt1_32, bauabschnitt1_33, bauabschnitt1_34, bauabschnitt1_35, bauabschnitt1_36, bauabschnitt1_37, bauabschnitt1_38, bauabschnitt1_39,
			bauabschnitt1_40, bauabschnitt1_41, bauabschnitt1_42, bauabschnitt1_43, bauabschnitt1_44, bauabschnitt1_45, bauabschnitt1_46, bauabschnitt1_47, bauabschnitt1_48, bauabschnitt1_49,
			bauabschnitt1_50, bauabschnitt1_51, bauabschnitt1_52, bauabschnitt1_53, bauabschnitt1_54, bauabschnitt1_55, bauabschnitt1_56, bauabschnitt1_57, bauabschnitt1_57a, bauabschnitt1_58, bauabschnitt1_59,
			bauabschnitt1_60, bauabschnitt1_61, bauabschnitt1_62, bauabschnitt1_1];
			
		
		//bauabschnitt1_NEU.hide();
		
		

		// ZWEITER ABSCHNITT, Treptow - Friedrichshain ------------------------------------------

		/*
		// Trog Am Treptower Park - SBhf Treptower Park
		var trog3 = [ new GLatLng(52.490999,13.458617), new GLatLng(52.492724,13.459496), new GLatLng(52.493939,13.461041)];

		// Trasse Treptower S-Bhf- Ostkreuz
		var trasse3 = [new GLatLng(52.493939,13.461041), new GLatLng(52.495389,13.462887), new GLatLng(52.497035,13.465333), new GLatLng(52.498602,13.466814), new GLatLng(52.500510,13.467629), new GLatLng(52.502626,13.467264)];

		// Tunnel Ostkreuz - Kietzer Weg
		var tunnel2 = [new GLatLng(52.502626,13.467264), new GLatLng(52.507798,13.471835), new GLatLng(52.509496,13.475204)];

		// kurze Trasse Kietzer Weg
		var trasse4 = [new GLatLng(52.509496,13.475204), new GLatLng(52.509966,13.476169)];

		// Tunnel Park Gudolfstr
		var tunnel3 = [new GLatLng(52.509966,13.476169), new GLatLng(52.510841,13.476555), new GLatLng(52.512447,13.476298)];
		*/
		
		var bauabschnitt2_points = [ new GLatLng(52.490999,13.458617), new GLatLng(52.492724,13.459496), new GLatLng(52.493939,13.461041), new GLatLng(52.495389,13.462887), 
			new GLatLng(52.497035,13.465333), new GLatLng(52.498602,13.466814), new GLatLng(52.500510,13.467629), new GLatLng(52.502626,13.467264),new GLatLng(52.507798,13.471835), 
			new GLatLng(52.509496,13.475204), new GLatLng(52.509966,13.476169), new GLatLng(52.510841,13.476555), new GLatLng(52.512447,13.476298) ];


		// DRITTER ABSCHNITT - Friedrichshain - Lichtenberg
		// TO DO

		// Trasse Frankfurter Allee - Storkower
		//var trasse5 = [new GLatLng(52.512447,13.476298), new GLatLng(52.513936,13.475590), new GLatLng(52.515881,13.475246), new GLatLng(52.520047,13.472993), new GLatLng(52.522710,13.469968), new GLatLng(52.524212,13.464904)];

		var bauabschnitt3_points = [new GLatLng(52.512447,13.476298), new GLatLng(52.513936,13.475590), new GLatLng(52.515881,13.475246), new GLatLng(52.520047,13.472993), new GLatLng(52.522710,13.469968), new GLatLng(52.524212,13.464904)];
		
		// ----------------------------------------------------------------------------------------
		
		
		// die Farben , Dicke und OpazitŠt
		
		var color_zeigen = "#ff0000";
		var color_andere = "#444444";
		var weight_zeigen = 10;
		var weight_andere = 10;
		var opac_zeigen = 0.8;
		var opac_andere = 0.8;
		
		//var bauabschnitt1ALT = new GPolyline(bauabschnitt1ALT_points, color_zeigen, weight_zeigen, opac_zeigen);
		var bauabschnitt1 = new GPolygon( bauabschnitt1_points, "#ff0000", 4, 1, "#ff0000", 0.5);// Randfarbe, -dicke, -durchsicht., Fuellfarbe, -durchsicht. 
		var bauabschnitt2 = new GPolyline(bauabschnitt2_points, color_andere, weight_andere, opac_andere);
		var bauabschnitt3 = new GPolyline(bauabschnitt3_points, color_andere, weight_andere, opac_andere);
		
		//map.addOverlay(bauabschnitt1ALT);
		map.addOverlay(bauabschnitt1);
		map.addOverlay(bauabschnitt2);
		map.addOverlay(bauabschnitt3);
		
		function zeigeBauabschnitte(zeige1,zeige2,zeige3)	// nicht gewŠhlte werden farblich anders dargestellt
		{
			// zeige1..3 sind boolsche Werte, die die Sichtbarkeit steuern
			//alert(zeige1+", "+zeige2+", "+zeige3);
			
			if(zeige1) bauabschnitt1.setStrokeStyle( {color: color_zeigen, weight:weight_zeigen, opacity: opac_zeigen });
				else bauabschnitt1.setStrokeStyle( {color: color_andere, weight:weight_andere, opacity: opac_andere });
				
			if(zeige2) bauabschnitt2.setStrokeStyle( {color: color_zeigen, weight:weight_zeigen, opacity: opac_zeigen });
				else bauabschnitt2.setStrokeStyle( {color: color_andere, weight:weight_andere, opacity: opac_andere });
				
			if(zeige3) bauabschnitt3.setStrokeStyle( {color: color_zeigen, weight:weight_zeigen, opacity: opac_zeigen });
				else bauabschnitt3.setStrokeStyle( {color: color_andere, weight:weight_andere, opacity: opac_andere });
		}
		

		// -----------------------------------------------------------------------------------------

		// Kontrollelemente
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		
		map.addControl(new GoToLocation());
		
		
	} 
}	

