var map = "";
var geocoder = new GClientGeocoder();
var point = new Array();
var polypoint1 = new Array();
var polypoint2 = new Array();
var coord = "000001";
var coordBool = false;
var polyline;
var toggleState = 0;

function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.setMapType(G_PHYSICAL_MAP);
		map.addControl(new GScaleControl());
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());			
					
		GDownloadUrl("http://www.hansi-fnr.de/benjam/maps/phpsqlajax_genxml.php", function(data) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			var config = xml.documentElement.getElementsByTagName("config");
			var itinerary = config[0].getAttribute("itinerary");
			switch (itinerary)
				{
				case "muc":	
					map.setCenter(new GLatLng(48.1391265, 11.5801863), 11);	
					break;
				case "hr":
					map.setCenter(new GLatLng(44.853191611638685, 13.900108337402344), 11);
					map.setMapType(G_SATELLITE_MAP);
					break;
				case "eu":			
					map.setCenter(new GLatLng(47.516231, 14.550072), 4);
					break;
				case "wia":
					map.setCenter(new GLatLng(54.5259614, 15.2551187), 1);
					break;
				default:
					map.setCenter(new GLatLng(51.165691, 10.451526), 5);
			}
			
			for (var i = 0; i < markers.length; i++) {
				var markers_itinerary = markers[i].getAttribute("itinerary");
				if (markers_itinerary != itinerary) { 
					continue;
				}
				var address = markers[i].getAttribute("address");
				var name = markers[i].getAttribute("name");
				var type = markers[i].getAttribute("type");
				var time = markers[i].getAttribute("time");
				var absolute = markers[i].getAttribute("absolute");
				var id = markers[i].getAttribute("id");
				var show_marker = markers[i].getAttribute("show_marker");
				var show_image = markers[i].getAttribute("show_image");
				var image_url = markers[i].getAttribute("image_url");						
				var show_markers = config[0].getAttribute("show_markers");
				var show_images = config[0].getAttribute("show_images");
			
				if (absolute == "0") {
					polypoint1.push(parseFloat(markers[i].getAttribute("lat")));
					polypoint2.push(parseFloat(markers[i].getAttribute("lng")));	
				}					

				//Mark by Address2Coordinates
				//showAddress(address,name,type, time);
				
				//Mark by Coordinates						
				point[i] = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));	
				var marker = createMarker(point[i], name, address, type, time, show_image, image_url, show_images, id);	

				if (show_markers == "1") {
					map.addOverlay(marker);							
				}
				else {
					if (((name == "Start") || (name == "End")) || (show_marker == "1"))
					{
					map.addOverlay(marker);
					}
				}
			}	
			
			toggleState = config[0].getAttribute("show_lines");
			if (toggleState == "1") {						
				document.getElementById('lines').value = "Hide Lines";	
			}
			if (polypoint1.length >= 2) {
				var point_array = new Array();
					for(var i = 0; i <  polypoint1.length; i++) {
						point_array.push(new GLatLng(polypoint1[i],polypoint2[i]));
					}
					polyline = new GPolyline(point_array, "#FF0000", 3);	
				if (toggleState == "1") {						
				map.addOverlay(polyline);
				document.getElementById('lines').value = "Hide Lines";	
				}
			}
			else {
				document.getElementById('lines').style.display = "none";
			}
			

		});
	}
}	
		
function createMarker(point, name, address, type, time, show_image, image_url, show_images, id) {
	var marker = new GMarker(point, customIcons[type]);
	GEvent.addListener(marker, 'click', function() {
		var html;
		if (show_images == "1") {
			if (show_image == "0") {
				html = "<span class=\"time\">" + time + "</span>" + "<b>" + name + "</b><br/>" + address +  "<br/>" + point;
			}
			else {
				html = "<span class=\"time\">" + time + "</span>" + "<b>" + name + "</b><br/>"+ "<table style=\"border-spacing: 0;\"><tr><td style=\"height: 100px; padding: 0;\"><img height=\"100\" src=\"" + image_url + "\"/></td></tr></table>" + address +  "<br/>" + point;
			}
		}
		else {
				html = "<span class=\"time\">" + time + "</span>" + "<b>" + name + "</b><br/>" + address +  "<br/>" + point;
			}					
	marker.openInfoWindowHtml(html);
	});
		
	return marker;
}

/*
function showAddress(address, name, type, time) {
  geocoder.getLatLng(
	address,
	function(point) {
	  if (!point) {
		alert(address + " not found");
	  } else {
//			map.setCenter(point, 5);
		var marker = new GMarker(point, customIcons[type]);				
		GEvent.addListener(marker, 'click', function() {
			var html = "<span>" + time + "</span>" + "<b>" + name + "</b><br/>" + address +  "<br/>" + point;
			marker.openInfoWindowHtml(html);
		});
		map.addOverlay(marker);

	  }
	}
  );
}
 */ 
//SCHREIBEN

function toggleLines() {
	if (toggleState == 1) {
	map.removeOverlay(polyline);
	toggleState = 0;
	document.getElementById('lines').value = "Show Lines";
	}
	else {
	map.addOverlay(polyline);
	toggleState = 1;
	document.getElementById('lines').value = "Hide Lines";
	}
}	
