var gmap;
var geocoder;
var marks = new Array();

function fillMap() {
	if (GBrowserIsCompatible()) {
		gmap = new GMap2(document.getElementById("gmap"));
		/*
		 * gdir = new GDirections(gmap);
		 * 
		 * GEvent.addListener(gdir, "load", function() { groutes =
		 * gdir.getNumRoutes(); gmap.closeInfoWindow(); });
		 * GEvent.addListener(gdir, "error", function() { alert('Neznámá adresa,
		 * zkuste ji prosím zadat jinak.'); });
		 */

		gmap.addControl(new GSmallZoomControl());
		gmap.addControl(new GScaleControl());
		gmap.addControl(new GMapTypeControl(true));
		gmap.enableScrollWheelZoom();


		var gm = $("#gmap").metadata();
		gmap.setCenter(new GLatLng(gm.lat, gm.lon), gm.zoom);

		// $("#gmap_msg").text("Probíhá umístnění " + $(".marker").length + "
		// firem do mapy...");

		$(".marker").each(
				function() {
					var m = $(this).metadata();
					marks[m.id] = createMarker(m.sirka, m.delka, m.id, gm.baseUrl, false);
					gmap.addOverlay(marks[m.id]);
				});

		// $("#gmap_msg").text("");
		geocoder = new GClientGeocoder();
	}
}

function createMarker(lat, lon, id, bu, drag) {
	var point = new GLatLng(lat, lon);

	var icon = new GIcon();
	icon.image = bu + "/img/gmaps/logo.gif";

	icon.iconSize = new GSize(40, 16);
	icon.shadowSize = new GSize(40, 16);
	icon.iconAnchor = new GPoint(0, 16);
	icon.infoWindowAnchor = new GPoint(22, 5);
	icon.imageMap = [ 0, 0, 40, 16 ];

	var marker = new GMarker(point, {
		draggable : drag,
		icon : icon
	});
	if ( 0 < id )
	{
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml("<div class=\"gmap-window\""
					+ $("#marker_" + id).html() + "</div>");
			//$(".add-receiver").click(addReceiver);
		});
	}
	return marker;
}

function setCenter(name, type) {
	var prepend = '';
	var append = '';
	if (type == 'kraj') {
		var zoom = 8;
		append = ' kraj';
	} else if (type = 'okres') {
		var zoom = 10;
		prepend = 'okres ';
	} else {
		var zoom = 10;
	}

	geocoder.getLatLng( // zkusime nastavit plny nazev okresu/kraje
			prepend + name + append, function(point) {
				if (point) {
					gmap.setCenter(point, zoom);
				} else { // pokud se nepodarilo nastavit plny nazev
				geocoder.getLatLng(name, // nastavime zkraceny
						function(point) {
							if (point) {
								gmap.setCenter(point, zoom);
							}
						});
			}
		});
}

function updateData(d) {
	d.ajax = true;
	d.actUpdateDistricts = true;
	$.post(location.href, d, function(data) {
		if (data.districts) {
			$("#district").replaceWith(data.districts);
		}
		$(".found-users").html(data.users);
	}, 'json');
}
