var zoom = 14;
var map;
var lat;
var lon;
var gDirections = null;
var info;
var marker;

function initMap(lat_, lon_, title, miasto, ulica){
	lat = lat_;
	lon = lon_;
	map = new GMap2(document.getElementById("gMaps"));

	map.addControl(new GOverviewMapControl());
	map.addControl(new GLargeMapControl3D());

	var point = new GLatLng(lat, lon)
	marker = new GMarker(point);

	map.setCenter(point, zoom);

	map.addOverlay(marker);

	info = '<div style="text-align: center; max-width: 250px;"><strong>' + title + '</strong><br><br>' + ulica + '<br>' + miasto + '</div>';
	info += '<div style="padding-top: 5px; font-size: 11px;">Znajdź dojazd z:<br>';
	info += '<form style="margin: 0; padding: 0;" onsubmit="directions(getElementById(\'where\').value); return false;"><input type="text" style="border: 1px solid #406771; width: 150px; padding: 0 3px;" id="where" value="">';
	info += '<input style="border: 0; background: none;" type="submit" value="szukaj &raquo;"></form></div>';
	marker.openInfoWindowHtml(info);
	GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowHtml(info);
	});
}

function edytuj_Mape(lat_, lon_){
  lat = lat_;
	lon = lon_;
	map = new GMap2(document.getElementById("gMaps"));

	map.addControl(new GOverviewMapControl());
	map.addControl(new GLargeMapControl3D());

	var point = new GLatLng(lat, lon)

	map.setCenter(point, 15);
	map.addOverlay(new GMarker(point));
	
	// szukanie współrzędnych po kliknięciu
	GEvent.addListener(map, "click", function(overlay, point) {
		var x = document.getElementById('lat');
		var y = document.getElementById('lon');

		if (overlay) {
			map.removeOverlay(overlay);
			x.value = 0;
			y.value = 0;
		}
		else { 
			map.clearOverlays();
			map.addOverlay(new GMarker(point));
			x.value = point.y;
			y.value = point.x;
		}
	});
}

function ankieta_ladujMape(){
	map = new GMap2(document.getElementById("gMaps"));

	map.addControl(new GOverviewMapControl());
	map.addControl(new GLargeMapControl3D());

	var point = new GLatLng(51.808615, 19.335938);
	
	map.setCenter(point, 6);

	// szukanie współrzędnych po kliknięciu
	GEvent.addListener(map, "click", function(overlay, point) {
		var x = document.getElementById('lat');
		var y = document.getElementById('lon');

		if (overlay) {
			map.removeOverlay(overlay);
			x.value = 0;
			y.value = 0;
		}
		else { 
			map.clearOverlays();
			map.addOverlay(new GMarker(point));
			x.value = point.y;
			y.value = point.x;
		}
	});
}

function directions(where){
	if(where.length < 2){
		alert('Proszę wpisać adres');
		return;
	}
	map.closeInfoWindow();
	if(gDirections == null)
		gDirections = new GDirections(map);
	
	GEvent.addListener(gDirections, "error", handleErrors);
	gDirections.load('from: ' + where + ' to: ' + lat + ', ' + lon);
}

function handleErrors(){
	var stat = gDirections.getStatus().code;
	if (stat == G_GEO_UNKNOWN_ADDRESS)
		alert("Podana lokalizacja nie została odnaleziona.\nSpróbuj inaczej lub dokładniej sformułować adres.");
	else if (stat == G_GEO_SERVER_ERROR)
		alert('Błąd serwera');
	else if (stat == G_GEO_MISSING_QUERY)
		alert('Błąd podczas komunikacji z serwerem');
	else if (stat == G_GEO_BAD_KEY)
		alert('Nieprawidłowy klucz');
	else if (stat == G_GEO_BAD_REQUEST)
		alert('Błąd podczas przetwarzania danych');
	else
		alert('Wystąpił nieznany błąd');

	marker.openInfoWindowHtml(info);
}