// map
var defaultZoom = 15;
var defaultMapSate = {'latitude': 50.84789810610827, 'longitude': 4.343204498291016, 'zoom': defaultZoom};
var map;
function loadGMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		var mapState = loadMapSate();
		var co = new GLatLng(mapState.latitude, mapState.longitude);
		map.setCenter(co, mapState.zoom);
		map.addControl(new GSmallMapControl());
		map.setMapType(G_SATELLITE_MAP);
		//map.addControl(new GMapTypeControl());
	}
}
Event.observe(window, 'load', loadGMap);
window.onunload = function(){
	saveMapState();
	GUnload();
}
// This does not work in Prototype:
//Event.observe(window, 'unload', GUnload);
//Event.observe(window, 'unload', saveMapState);

// city select
function setMap(){
	// fetch address from form
	var cityName = $F('cityChooser');
	var city = cities[cityName];
	if(!city){
		return;
	}
	var zoom = (city.zoom) ? city.zoom : defaultZoom;
	// set map
	map.setCenter(new GLatLng(city.latitude, city.longitude), zoom);
	// reset <select>
	$('cityChooser').selectedIndex = 0;
}
Event.observe(window, 'load', function(){ 
		Event.observe('cityChooser', 'change', function(event){ setMap(); }); 
	}
);

function saveMapState(){
	var longLat = map.getCenter();
	var latitude = longLat.lat();
	var longitude = longLat.lng();
	var zoom = map.getZoom();
	var days = 365;
	createCookie('latitude', latitude, days);
	createCookie('longitude', longitude, days);
	createCookie('zoom', zoom, days);
}
function loadMapSate(){

	var latitude = readCookie('latitude');
	var longitude = readCookie('longitude');
	var zoom = readCookie('zoom');
	
	
	if(!latitude){
		latitude = defaultMapSate.latitude;
	}

	if(!longitude){
		longitude = defaultMapSate.longitude;
	}

	if(!zoom){
		zoom = defaultMapSate.zoom;
	}

	return {'latitude': parseFloat(latitude), 'longitude': parseFloat(longitude), 'zoom': parseFloat(zoom)};

}