﻿function InitialMap(lat,lng,zoom,minzoom,maxzoom,logo) {

    map.removeMapType(G_HYBRID_MAP);
	//map.removeMapType(G_NORMAL_MAP); 
	//map.addMapType(G_PHYSICAL_MAP);
	map.addMapType(G_SATELLITE_3D_MAP);

	map.addControl(new GLargeMapControl());
	map.setCenter(new GLatLng(lat, lng), zoom);
	if (zoom >= 13) {map.setMapType(G_SATELLITE_MAP);}
		else 		{map.setMapType(G_NORMAL_MAP);} 
	map.addControl(new GMapTypeControl()); 
	new GKeyboardHandler(map);
	map.enableDoubleClickZoom();
	map.enableScrollWheelZoom();
	
	// ====== Restricting the range of Zoom Levels =====
	// Get the list of map types      
	var mt = map.getMapTypes();
	// Overwrite the getMinimumResolution() and getMaximumResolution() methods
	for (var i=0; i<mt.length; i++) {
		mt[i].getMinimumResolution = function() {return 9;}
		mt[i].getMaximumResolution = function() {return 18;}
	}
	
	// ====== Create madeira-tipps.de Logo =============
	if (logo == 1) {
		var logo = new GScreenOverlay("http://" + location.host + "/bilder/Logo.png",new GScreenPoint(0, 0),  new GScreenPoint(0, 0),  new GScreenSize(200, 78) );
		map.addOverlay(logo);
	}
	if (logo == 2) {
		var logo = new GScreenOverlay("http://" + location.host + "/bilder/Logo.png",new GScreenPoint(0, 15),  new GScreenPoint(0, 0),  new GScreenSize(100, 39) );
		map.addOverlay(logo);
	}
}

// A function to create the marker and set up the event window
function createMarker(point,name,infowindow,icontype,gps,quicklink,QuicklinkType,link) {
	
	var marker = new GMarker(point,gicons[icontype]);
	GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(infowindow);});
	// save the info we need to use later for the side_bar
	gmarkers[i] = marker;
	// add a line to the side_bar html
	if ((quicklink == '1') && (QuicklinkType != 'ohne')) {
		if (QuicklinkType == 'normal') {
			if (link == '0') {
				side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a> - ';
			}
			if (link == '1') {
				side_bar_html += '<strong>' + '<a href="javascript:myclick(' + i + ')">' + name + '</a> - ' + '</strong>';
			}
		}
		if (QuicklinkType == 'GPS') {
			if (link == '0') {
		    	col1_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br />';
		    	col2_html += '<a href="javascript:myclick(' + i + ')">GPS: ' + gps + '</a><br />';
		    }
		    if (link == '1') {
		    	col1_html += '<strong><a href="javascript:myclick(' + i + ')">' + name + '</a><br /></strong>';
		    	col2_html += '<strong><a href="javascript:myclick(' + i + ')">GPS: ' + gps + '</a><br /></strong>';
		    }
		}
	}	
	i++;
	return marker;
}



// This function picks up the click and opens the corresponding info window
function myclick(i) {
	GEvent.trigger(gmarkers[i], "click");
}

// Perform the check and return if OK
function checkZoom(oldLevel, newLevel) {
	//alert ('Zoom' + map.getZoom() + ' ' + oldLevel + ' ' + newLevel);
	if ((newLevel <= 11) && (oldLevel >= 12)) {map.setMapType(G_NORMAL_MAP);}
	if ((newLevel >= 13) && (oldLevel <= 12)) {map.setMapType(G_SATELLITE_MAP);}
	if ((newLevel >= 17) && (oldLevel <= 16)) {map.addControl(MapOverView);}
	if ((newLevel <= 16) && (oldLevel >= 17)) {map.removeControl(MapOverView);}
}


// Read the data from example.xml
function ReadMarkerXML(XMLfile, QuicklinkType, MarkerIconType) {

	var request = GXmlHttp.create();
	request.open("GET", XMLfile, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			  var xmlDoc = GXml.parse(request.responseText);
			  // obtain the array of markers and loop through it
			  var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			  for (var i = 0; i < markers.length; i++) {
				    // obtain the attribues of each marker
				    var lat = parseFloat(markers[i].getAttribute("lat"));
				    var lng = parseFloat(markers[i].getAttribute("lng"));
				    var point = new GLatLng(lat,lng);
				    var infowindow = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
				    var label = markers[i].getAttribute("label");
				    var quicklink = markers[i].getAttribute("quicklink");
	                var gps = markers[i].getAttribute("gps");
				    var icontype = markers[i].getAttribute("icontype");
				    var mmzoomfrom = markers[i].getAttribute("mmzoomfrom");
				    var mmzoomto = markers[i].getAttribute("mmzoomto");
				    var link = markers[i].getAttribute("link");
				    
				    if (MarkerIconType != "normal") {
				    	icontype = MarkerIconType;
				    	mmzoomfrom = 1;
				    	mmzoomto   = 18;
				    }
				    	
				    // create the marker
				    var marker = createMarker(point,label,infowindow,icontype,gps,quicklink,QuicklinkType,link);
				    mm.addMarker(marker,mmzoomfrom,mmzoomto); 
				
			  }
		}
		// put the assembled side_bar_html contents into the side_bar div
		if (QuicklinkType == 'normal') {	
			document.getElementById("side_bar").innerHTML = side_bar_html;}

		if (QuicklinkType == 'GPS') {	
			document.getElementById("side_bar").innerHTML = side_bar_html;
			document.getElementById("side_bar_col1").innerHTML = col1_html;
			document.getElementById("side_bar_col2").innerHTML = col2_html;}

	}
	request.send(null);
}


function InitialGeoKML(datei) {
       	
       	map.addOverlay(new GGeoXml(datei));
}
