//<![CDATA[

window.onunload = Save;
var resetGmap;
var map;

function reloadGmap(province) { 
	load(province); 
}
    
function createMarker(point,html,icon){
    var marker = new GMarker(point,icon);
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
    });
    return marker;
}	
	
function Save() { 
	if(!resetGmap) {
		var mapzoom = map.getZoom(); 
		var mapcenter = map.getCenter(); 
		var maplat = mapcenter.lat(); 
		var maplng = mapcenter.lng(); 
		//var maptype = getCurrentMapType();
		var cookiestring = maplat + "_" + maplng + "_" + mapzoom; 
		
		var exp = new Date();
		exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30)); // 30 dagen
		setCookie("GMapLocation", cookiestring, exp); 
	}
} 

function getCookie(c_name) { 
	if (document.cookie.length>0) { 
		c_start=document.cookie.indexOf(c_name + "="); 
		if (c_start!=-1) { 
			c_start=c_start + c_name.length+1; 
			c_end=document.cookie.indexOf(";",c_start); 
			if (c_end==-1) c_end=document.cookie.length; 
			return unescape(document.cookie.substring(c_start,c_end)); 
		} 
	} 
	return ""; 
} 

function setCookie(name, value, expires) { 
	document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString()); 
} 

function resetCookie() {
	resetGmap = true;
	var exp = new Date();
	exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30)); // 30 dagen
	setCookie("GMapLocation", "52.12966647032986_5.113220438361168_7", exp); 
}

function load(province) {
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl3D());
		//map.addControl(new GLargeMapControl());
		//map.addControl(new GSmallMapControl());
		//map.addControl(new GSmallZoomControl());
		map.addControl(new GScaleControl());
		map.addControl(new GMapTypeControl());
		//map.addControl(new GOverviewMapControl());
		map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		
		var icon = new GIcon();
		icon.image = "http://www.encyclopedie-grofkeramiek.nl/sites/all/modules/grofkeramiek/img/gmap.png";
		icon.iconSize = new GSize(20, 32);
		icon.iconAnchor = new GPoint(0, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
  		
  		// set center of the map
  		var center_zoom, center_point;
  		
		switch (province) {
			case "D":	{ center_zoom = 9; center_point = new GLatLng("52.83064843879888","6.596374735236168"); break; }
			case "FL":	{ center_zoom = 9; center_point = new GLatLng("52.55097213355339","5.629577860236168"); break; }
			case "F":	{ center_zoom = 9; center_point = new GLatLng("53.06828676491643","5.934906117618084"); break; }
			case "GR":	{ center_zoom = 9; center_point = new GLatLng("53.20076809333145","6.695251688361168"); break; }
			case "GLD":	{ center_zoom = 9; center_point = new GLatLng("52.08085633060313","5.882263407111168"); break; }
			case "L":	{ center_zoom = 8; center_point = new GLatLng("51.215142288911","5.926208719611168"); break; }
			case "NB":	{ center_zoom = 9; center_point = new GLatLng("51.666422872501656","5.149383656680584"); break; }
			case "NH":	{ center_zoom = 8; center_point = new GLatLng("52.63039573288823","4.852752797305584"); break; }
			case "O":	{ center_zoom = 9; center_point = new GLatLng("52.530926668810615","6.332702860236168"); break; }
			case "U":	{ center_zoom = 9; center_point = new GLatLng("52.11055370082478","5.127411000430584"); break; }
			case "ZH":	{ center_zoom = 9; center_point = new GLatLng("52.070052469256105","4.633026234805584"); break; }
			case "Z":	{ center_zoom = 9; center_point = new GLatLng("51.62398490369225","3.979339711368084"); break; }
			default: { 
				center_zoom = 7; 
				center_point = new GLatLng("52.12966647032986","5.113220438361168"); 
				
				var cookiestring = getCookie("GMapLocation"); 
				var splitstring = cookiestring.split("_"); 
				if(cookiestring != '') {
					center_zoom = parseFloat(splitstring[2]); 
					center_point = new GLatLng(parseFloat(splitstring[0]),parseFloat(splitstring[1])); 
				}
			}
		}

		map.setCenter(center_point, center_zoom);
		
		//create randomnumber and retrieve xml file
		var randomnumber = Math.floor(Math.random()*11111);
		
		// Inlezen van makers
		GDownloadUrl("http://www.encyclopedie-grofkeramiek.nl/sites/all/modules/grofkeramiek/xml/data.xml?random=" + randomnumber, function(data, responseCode) {
			var xml = GXml.parse(data);
			
			//store markers in markers array
			var markers = xml.documentElement.getElementsByTagName("marker");
			
			//loop over the markers array
			for (var i = 0; i < markers.length; i++) {
				
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var html = markers[i].getAttribute("html");
				var marker = createMarker(point,html,icon);
				
				if(province) {
					if(province == markers[i].getAttribute("province")) {
						map.addOverlay(marker);
					}
				} else {
					map.addOverlay(marker);

				}

			} //close for loop
		}); //close GDownloadUrl
	} //close GBrowserIsCompatible
} //close load

//]]>
