//<!-- Denna kod används med tillstånd från artportalen -->
//<![CDATA[
function createMarker(point, html) {
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	return marker;
}
function ReplaceToValidHTML(inpVar) {
	inpVar = inpVar.replace(/\[B\]/g, '<b>').replace(/\[\/B\]/g, '</b>');
	inpVar = inpVar.replace(/\[I\]/g, '<i>').replace(/\[\/I\]/g, '</i>');
	inpVar = inpVar.replace(/\[\/BR\]/g, '<br />');
	return inpVar;
}
function zoomToPoint(lng, lat, map, iState) {
	if (iState) {
		map.zoomIn (new GLatLng(lat,lng),true);
	} else {
		map.zoomOut();
		map.panTo(new GLatLng(lat,lng));
	}
}
function loadMarkers(xmlfile) {

	var request = GXmlHttp.create();
	request.open("GET", xmlfile, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var lokal = xmlDoc.documentElement.getElementsByTagName("lokal");
			if (lokal.length > 0) {

				var iAntalLokaler = lokal.length;
				var iTotalAntal = 0;
				var iMaxAntalObsar = xmlDoc.documentElement.getElementsByTagName("maxantalobsar")[0].getAttribute("antal");
				var iMaxAntalObsarPerInfoRuta = 8;

				for (var i = 0; i < lokal.length; i++) {

					var lat = lokal[i].getAttribute("lat")
					var lng = lokal[i].getAttribute("lng")
					var lokalnamn = ReplaceToValidHTML(lokal[i].getAttribute("lokalnamn"));
					var lokalid = lokal[i].getAttribute("lokalid")
					var point = new GPoint(parseFloat(lng),parseFloat(lat));

					var html = "<div id=\"iw\"><table width=\"300\"><tr><td colspan=\"2\"><h5><a href=\"http://artportalen.se/plants/lokal_info.asp?lokalid="+lokalid+"\" target=\"_blank\">"+lokalnamn+"</a></h5></td></tr>";

					// Hämta observationer för lokalen
					var observation = xmlDoc.getElementsByTagName("lokal")[i].childNodes
					iTotalAntal += observation.length

					// Loopa igenom observationerna
					for (var j = 0; j < observation.length; j++) {

						// läs in observationens attribut 

						var datum = observation[j].getAttribute("datum");
						var observatorer = observation[j].getAttribute("observatorer");
						var obsid = observation[j].getAttribute("obsid");
						var artnamn = ReplaceToValidHTML(observation[j].getAttribute("artnamn"));


						// skapa html för info-ruta
						html += "<tr><td valign=\"top\"><img src=\"http://artportalen.se/plants/bilder/uttag_plupp_mini.gif\" vspace=\"6\" /></td>";
						html += "<td>"+artnamn;
						html += "&nbsp;&nbsp;<A HREF=\"http://artportalen.se/plants/obs_info.asp?obsid="+obsid+"\" target=\"_blank\"><img src=\"http://artportalen.se/plants/bilder/icon_link.gif\" border=\"0\" width=\"10\" height=\"10\" alt=\"Visa obsinfo\" /></A>";
						html += "<br />"+observatorer+" "+datum+"</td>";

						// Visar ej fler obsar än iMaxAntalObsarPerInfoRuta per inforuta
						if (j==iMaxAntalObsarPerInfoRuta) {
							html += "<tr><td colspan=\"2\"><b>Visar "+iMaxAntalObsarPerInfoRuta+" obsar av totalt "+observation.length+"</b></td></tr>";
							break;
						}

					}

					html += "<tr><td colspan=\"2\" class=\"tdfooter\">Zooma:  <a href='JavaScript:zoomToPoint("+lng+", "+lat+", map, 1);'>[+]</a><a href='JavaScript:zoomToPoint("+lng+", "+lat+", map, 0);'>[-]</a></b></td></tr>";
					html += "</div>";

					// skapa markör
					//var marker = new createMarker(point,html);
					//clusterer.AddMarker(new createMarker(point,html),rubrik);
					map.addOverlay(new createMarker(point,html));
				}

				//		document.getElementById("footer").innerHTML = "<b>Resultat:</b> Nu visas <b>" + iTotalAntal + "</b> obsar (" + iAntalLokaler + " lokaler) av max " + iMaxAntalObsar + " möjliga per sökning.";

				// Hämta min/max-koordinater för att skapa en begränsande ruta som utgångskartan
				var bounding = xmlDoc.documentElement.getElementsByTagName("bounding");
				var maxX = bounding[0].getAttribute("xmax");
				var minX = bounding[0].getAttribute("xmin");

				var maxY = bounding[0].getAttribute("ymax");
				var minY = bounding[0].getAttribute("ymin");

				var boundingBox = new GLatLngBounds (new GLatLng(parseFloat(minY), parseFloat(minX)),new GLatLng(parseFloat(maxY), parseFloat(maxX)))
				map.setCenter (boundingBox.getCenter(), map.getBoundsZoomLevel(boundingBox));

			} else {
				document.getElementById("footer").innerHTML = "<b>Sökningen gav inga träffar</b>";
			}
		}
	}
	request.send(null);
}
//]]>

