
var map;
var geocoder;
var markers = new Array();



function load() {


	if ( GBrowserIsCompatible() ) {

		map = new GMap2(document.getElementById("map"));
		map.addControl ( new GLargeMapControl() );
		map.addControl ( new GMapTypeControl() );
		map.addControl ( new GScaleControl() );
		map.setCenter ( new GLatLng(46.68112, 7.86037), 13);
		geocoder = new GClientGeocoder();



		// Create a base icon for all of our markers that specifies the
		// shadow, icon dimensions, etc.
		var baseIcon = new GIcon();
		baseIcon.shadow = "../images/googlemaps/shadow50.png";
		baseIcon.iconSize = new GSize(25, 25);
		baseIcon.shadowSize = new GSize(37, 25);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(20, 12);
		baseIcon.infoShadowAnchor = new GPoint(5, 25);


		function createMarker ( point, marker ) {

			var category = marker.getAttribute("cat");
			var titel = marker.getAttribute("titel");
			var strasse = marker.getAttribute("strasse");
			var strasse2 = marker.getAttribute("strasse2");
			var plz = marker.getAttribute("plz");
			var ort = marker.getAttribute("ort");
			var land = marker.getAttribute("land");
			var tel = marker.getAttribute("tel");
			var fax = marker.getAttribute("fax");
			var email = marker.getAttribute("email");
			var www = marker.getAttribute("www");
			var text = marker.getAttribute("text");
			var iconname = marker.getAttribute("icon");
			var devices = marker.getAttribute("devices");
			var certificates = marker.getAttribute("certificates");
			var content = marker.getAttribute("content");
			var lastupdate = marker.getAttribute("lastupdate");
			content = content.replace (/\n/g, "<br>" );

			var icon = new GIcon ( baseIcon );
			icon.image = "../images/googlemaps/" + iconname;
			
			var marker = new GMarker ( point, icon );
			markers[(markers.length)] = new Array ( category, iconname, marker, devices, certificates );

			var icontel   = '<img src="../template/images/icons/icon_tel.gif">&nbsp;';
			var iconfax   = '<img src="../template/images/icons/icon_fax.gif">&nbsp;';
			var iconemail = '<img src="../template/images/icons/icon_email.gif">&nbsp;';
			var iconwww   = '<img src="../template/images/icons/icon_www.gif">&nbsp;';

			var html = '<br><p class="titel">' + titel + '</p><p class="adresse">' + strasse + '<br>';

			if ( strasse2 ) {
				html = html + strasse2 + '<br>';
			}

			html = html + plz + ' ' + ort + '<br>' + land + '<br><br>';

			if ( tel ) {
				html = html + icontel + 'Tel: ' + tel + '<br>';
			}

			if ( fax ) {
				html = html + iconfax + 'Fax: ' + fax + '<br>';
			}

			if ( email ) {
				html = html + iconemail + '<a href="mailto:' + email + '">' + email + '</a><br>';
			}

			if ( www ) {
				html = html + iconwww + '<a href="' + www + '" target="_blank">' + www + '</a><br>';
			}

			
			html = html + '</p><p>' + text + '</p><p>' + content + '</p>';

			// Bei mobilen Standorten Datum und Uhrzeit des letzten Updats anzeigen
			if ( category == 29 ) {
				html = html + '<p class="adresse">Letztes Positions Update: <br>' + lastupdate + '</p>';
			}


			GEvent.addListener ( marker, "click", function() {
				marker.openInfoWindowHtml(html);
			});

			GEvent.addListener ( marker, "mouseover", function() {
				document.getElementById("rollovertext").innerHTML = html;
			});

			GEvent.addListener ( marker, "mouseout", function() {
//				document.getElementById("rollovertext").innerHTML = "Symbol anwählen für infos";
			});

			return marker;

		}	// end function createMarker


		var randomval = Math.round(Math.random()*100000000);

		GDownloadUrl("googlemapdata.php?rp"+randomval, function(data) {
			var xml = GXml.parse(data);
			var xmlmarkers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < xmlmarkers.length; i++) {
				var point   = new GLatLng ( parseFloat(xmlmarkers[i].getAttribute("lng")),	parseFloat(xmlmarkers[i].getAttribute("lat")) );
				map.addOverlay ( createMarker(point, xmlmarkers[i]) );
			}
		});

	} // end if is compatible



}  // end load


// Ort Suchen und anzeigen
function showAddress ( ort, land ) {
	var address = ort + ", " + land;
	geocoder.getLatLng ( address, function(point) {
		if (!point) {
			alert(address + " not found");
		} else {
			map.setCenter(point, 13);
		}
	});
}


// Nur Marker einer bestimmten Kategorie anzeigen
function selectData ( category, qualification ) {


	// Alle Marker entfernen
	for (var i = 0; i < markers.length; i++) {
		map.removeOverlay ( markers[i][2] );
	}

//    devices = markers[i][3]
//    devices      = xyz  (x=AED, y=cardioscan, z=sakr)

//    certificates = markers[i][4]
//    certificates = xy   (x=qualitop, y=herzsicher)


	if ( category == 0 ) {
	
		if ( qualification == 0 ) {

			// Qualitop Center anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][4].substr(0,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 1 ) {

			// Herzsichere Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][4].substr(1,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 2 ) {

			// AED Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][3].substr(0,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 3 ) {

			// Cardioscan Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][3].substr(1,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 4 ) {

			// SaKR Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][3].substr(2,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else {

			// Alle Marker anzeigen
			for (var i = 0; i < markers.length; i++) {
				map.addOverlay ( markers[i][2] );
			}

		}

	} else if ( category > 0 ) {

		if ( qualification == 0 ) {

			// Qualitop Center anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][0] == category && markers[i][4].substr(0,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 1 ) {

			// Herzsichere Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][0] == category && markers[i][4].substr(1,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 2 ) {

			// AED Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][0] == category && markers[i][3].substr(0,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 3 ) {

			// Cardioscan Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][0] == category && markers[i][3].substr(1,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else if ( qualification == 4 ) {

			// SaKR Standorte anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][0] == category && markers[i][3].substr(2,1) == 1 ) map.addOverlay ( markers[i][2] );
			}

		} else {

			// Alle Marker der gewaehlten Kategorie anzeigen
			for (var i = 0; i < markers.length; i++) {
				if ( markers[i][0] == category ) map.addOverlay ( markers[i][2] );
			}

		}

	}

}



function show_legende ( ) {
	document.getElementById("suche").getElementsByTagName("select").item("category").style.visibility = "hidden";
	document.getElementById("suche").getElementsByTagName("select").item("qualification").style.visibility = "hidden";
	document.getElementById("legende").style.visibility = "visible";
}

function hide_legende ( ) {
	document.getElementById("legende").style.visibility = "hidden";	
	document.getElementById("suche").getElementsByTagName("select").item("category").style.visibility = "visible";
	document.getElementById("suche").getElementsByTagName("select").item("qualification").style.visibility = "visible";
}


