/* GMaps */

var map = null;
var geocoder = null;
var markerManager = null;

function showAddress(address, zoom) {
	geocoder.getLatLng(
		address, 
		function(point) {
			if (!point) {
				alert('Adres nie został znaleziony');
			} else {
				map.setCenter(point, zoom, G_NORMAL_MAP);
				markerManager = new GMarkerManager(map);
			}
		}
	);
}

function panAddress(address, text, zoom) {
	geocoder.getLatLng(
		address, 
		function(point) {
			if (!point) {
				alert('Adres nie został znaleziony');
			} else {
				map.setCenter(point);
				map.setZoom(zoom);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(text);
				
			}
		}
	);
}

function bindMarker(address, text, minZoom, maxZoom) {
	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				alert('Adres nie został znaleziony');
			} else {
				var marker = new GMarker(point);
				markerManager.addMarker(marker, minZoom, maxZoom);
				markerManager.refresh();
				marker.bindInfoWindowHtml(text);
			}
		}
	);
}

function showMarker(address, text, minZoom, maxZoom) {
	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				alert('Adres nie został znaleziony');
			} else {
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(text);
			}
		}
	);
}

function loadMap() {
	if (GBrowserIsCompatible()) {
		
		map = new GMap2(document.getElementById("map"));
		geocoder = new GClientGeocoder();
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
				
		// startup 
		showAddress("PL", 5);

		/* pick coordinates */
		var invokers = document.getElementsByTagName('li');
		for (var i = 0; i < invokers.length; i++) {
			if (invokers[i].className.indexOf('address') != -1) {
				invokers[i].onmouseover = function() { addClass(this, 'hove'); }
				invokers[i].onmouseout = function() { remClass(this, 'hove'); }
				invokers[i].onclick = function() {
					var lis = document.getElementsByTagName('li');
					for (var j = 0; j < lis.length; j++) {
						if (lis[j].className.indexOf('address') != -1) {
							if (lis[j].className.indexOf('current') != -1) {
								remClass(lis[j], 'current');
							}
						}
					}
					addClass(this, 'current');
					var as = this.getElementsByTagName('a');
					if (as[0].className.indexOf('coord') != -1) {
						var rel = as[0].getAttribute('rel');
						panAddress(rel,this.innerHTML , 15);
					}
				}
			}
		}
	}
}

addLoadEvent(loadMap);


