/*****************************************************
	
	Ridici script pro dynamickou Google mapu

	Vyzaduje: 
		Google Maps API v 3.x
		jQuery s podporou JSON
		inicializacni hodnoty v globalni promenne 'g' (TODO: nastavit defaultni hodnoty)

	AJAX vola:
		ajax/json.php
	
	Autor: Petr P.
******************************************************/	


	var markers = Array();
	var activeWindow = null;
	var map;

	function attachWindow(marker, loc, id)
	{
		var iWopts =
		{
			content: eval(g.iW_tmpl) /* TODO: Get rid of this eval */
		};

		var iWindow = new google.maps.InfoWindow(iWopts);

		//Prida obsluhu udalosti
		google.maps.event.addListener(marker, 'click', function()
		{
			if(activeWindow !== null) { activeWindow.close(); }
			if(activeWindow != iWindow)
			{
				iWindow.open(map, marker);
				activeWindow = iWindow;
			}
			else
			{
				activeWindow = null;
				
			}
		});
	}
	
	function GmapInitialize()
	{
		var latlng = new google.maps.LatLng(parseFloat(g.lat), parseFloat(g.long));
		var mapOpts =
		{
			zoom: parseInt(g.zoom, 10),
			center: latlng,
			mapTypeId: google.maps.MapTypeId[g.mapType],
			scrollwheel: g.scrollwheel,
		};
	
		map = new google.maps.Map(document.getElementById("gmap"), mapOpts);
		
		//Pro jiny typ vypisu upravit query?
		var sezona = g.sezona;
		$.getJSON('ajax/json.php?sezona='+sezona, function(data)
		{
			if(data !== null)
			{
				for(var i in data)
				{
					//Vytvori bod na mape
					var latlng = new google.maps.LatLng(parseFloat(data[i].lat), parseFloat(data[i].long));
					var markOpts =
					{
						position: latlng,
						title: data[i].nazev,
						clickable: true,
						draggable: true
					};
					
					markers[i] = new google.maps.Marker(markOpts);
					markers[i].setMap(map);
	
					attachWindow(markers[i], data[i], i);
				}
			}
		});
	}