// <![CDATA[
/* verejna verze mapy - zobrazeni znacek vsech uzivatelu */

/**
 * Perform map loading itself, also display it.
 */
function load() {
	laod(1);
}

function load(scale) {
	if (GBrowserIsCompatible()) { // 
		map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(30, -16), scale); //
		// ovladani mapy
		map.addControl(new GScaleControl());
		map.addControl(new GMapTypeControl());
		map.addMapType(G_PHYSICAL_MAP);
		map.addControl(new GOverviewMapControl());
		map.addControl(new GLargeMapControl());
		// map.addControl(new GSmallMapControl());
		// map.addControl(new GSmallZoomControl());

		// zpracovani xml - tem prvnim 4 radkum nerozumim :)
		var request = GXmlHttp.create();
		request.open("GET", "userHomes.xml", true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				var xmlDoc = GXml.parse(request.responseText);
				var markers = xmlDoc.documentElement
						.getElementsByTagName("marker"); // 'vytahne' vsechny
				// elementy "marker"
				// z xml

				for ( var i = 0; i < markers.length; i++) {
					var lat = parseFloat(markers[i].getAttribute("lat"));
					var lng = parseFloat(markers[i].getAttribute("lng"));
					var point = new GLatLng(lat, lng);
					var description = markers[i].getAttribute("description");
					var userName = markers[i].getAttribute("userName");
					var blogTitle = markers[i].getAttribute("blogTitle");
					var blogWebName = markers[i].getAttribute("blogWebName");
					var idImage = markers[i].getAttribute("idImage");

					var marker = createMarker(point, description, userName,
							blogTitle, blogWebName, idImage); // sestaveni
					// znacky
					map.addOverlay(marker); // prida znacku na mapu
				}
			}
		}
		request.send(null); // nevim
	}
}

/**
 * Crate marker point on map.
 * 
 * @param point
 * @param description
 * @param userName
 * @param blogTitle
 * @param blogWebName
 * @param idImage
 * @return
 */
function createMarker(point, description, userName, blogTitle, blogWebName,
		idImage) {
	var marker = new GMarker(point);

	var link = '<a href="./profile/' + blogWebName + '.html">' + blogTitle
			+ '</a>';// odkaz na blog
	var img = '<img src="./images/' + idImage + '?w=40&h=40" alt="user image"/>';// obrazek

	// sestaveni textu pro bublinu
	var html = "<table>" + "<tr><td>Name:</td><td>" + userName + "</td>";
	html = html + "<th rowspan='3' style='padding-left: 20px;'>" + img
			+ "</th>"; // obrazek
	html = html + "</tr>" + "<tr><td>Blog:</td><td>" + link + "</td></tr>"; // odkaz
	// na
	// blog
	if (description != "null")
		html = html + "<tr><td>Description:</td><td>" + description
				+ "</td></tr>"; // popis
	html = html + "</table>";

	GEvent.addListener(marker, 'click', function() { // po kliknuti na
				// ukazatel se zobrazi
			// bublina
			marker.openInfoWindowHtml(html);
		});
	return marker;
}
// ]]>

