/* Rutiny pro mapu vykopírovány do samostatného souboru
 *   (magická chyba 80004004 posr.... prohlížeče)
 */

var staticFeeds = new Array();
var markerStore = new Array();
var centered = 0;

    function initMap() {
      if (GBrowserIsCompatible()) {
        mapfield = new GMap2(document.getElementById("mapfield"));
        mapfield.setCenter(startPosition, 5);
	mapfield.markers = new Array();
	/* */
	mapfield.addControl(new GSmallMapControl());
	mapfield.addControl(new GMapTypeControl());
	mapfield.enableDoubleClickZoom();
	mapfield.enableContinuousZoom();
	//GEvent.addListener(mapfield, 'dragend', sendMarkersRequest);
	//GEvent.addListener(mapfield, 'zoomend', sendMarkersRequest);
	sendMarkersRequest(1);
	mapfield.markers = new Array();
      }
    }
    function addStaticFeed(addr) {
    	staticFeeds.push(addr);
    }
    function sendMarkersRequest(initial) {
        for (i = 0; i < staticFeeds.length; i++) {
		addr = staticFeeds[i];
		if (initial) {
			markerStore[addr] = new Array();
		}
		GDownloadUrl(addr, function(a) {
				updateMarkers(a, addr);
			});
	}
    }
    function clickFactory(marker) {
	return function() {
		marker.openInfoWindowHtml('<div style="width: 350px"><p style="font-size: 120%; font-weight:bold">' + marker.name + '</p>' + marker.description + '</div>');
	}
    }
    function updateMarkers(data, source) {
	var xml = GXml.parse(data).documentElement;
	locations = xml.getElementsByTagName("Placemark");
	for (i = 0; i < markerStore[source].length; i++) {
		marker = markerStore[source][i];
		mapfield.removeOverlay(marker);
	}
	var firstPosition;
	markerStore[source] = new Array();
	if (locations.length) {
		for (i = 0; i < locations.length; i++) {
			now = locations[i];
			point = now.getElementsByTagName("Point")[0];
			coords = point.getElementsByTagName("coordinates")[0].childNodes[0].nodeValue;
			coords = coords.split(",");
			name = now.getElementsByTagName("name")[0].childNodes[0].nodeValue;
			description = now.getElementsByTagName("description")[0].childNodes[0].nodeValue; 
			point = new GLatLng(parseFloat(coords[1]), parseFloat(coords[0]));
			marker = new GMarker(point, name);
			mapfield.addOverlay(marker);	
			marker.description = description;
			marker.name = name;
			marker.source = source;
			marker.bindInfoWindowHtml('<div style="width: 350px"><p style="font-size: 120%; font-weight:bold">' + marker.name + '</p>' + marker.description + '</div>');
			markerStore[source].push(marker);
			if (firstPosition == undefined) {
				firstPosition = point;
			}
		}
	}
	if ((!centered) && (firstPosition != undefined)){
		centered = 1;
		mapfield.setCenter(firstPosition, 5);
	}
    }

/* příšerně žluťoučký kůň, ty koňu
 */

