//<![CDATA[
	if (GBrowserIsCompatible()) {
		var debug = false;
		var normalIcon;
		var highlightIcon;
		var map;
		var cookiehelp;

		function InitMap() {
			normalIcon = new GIcon();
			normalIcon.image = "images/marker_default.png";
			//normalIcon.shadow = "/cs/B2C/googlemap/images/shadow50.png";
			normalIcon.iconSize = new GSize(20, 34);
			normalIcon.shadowSize = new GSize(0, 0);
			normalIcon.iconAnchor = new GPoint(10, 17);
			normalIcon.infoWindowAnchor = new GPoint(10, 0);
			normalIcon.infoShadowAnchor = new GPoint(20, 34);

			highlightIcon = new GIcon(normalIcon);
			highlightIcon.image = "images/marker_hover.png";
		
			// create the map
			map = new GMap2(document.getElementById("map"));
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());

			if(country=='FR'){
				map.setCenter(new GLatLng(47.80577611936809, 1.593017578125), 6);
			}
			else if(country=='DE'){
				map.setCenter(new GLatLng(51.10383267274113, 10.554921875), 6);
			}
			else {
				map.setCenter(new GLatLng(51.10383267274113, 5.554921875), 6);
			}

			if(debug) {					
				GEvent.addListener(map,'mousemove',function(latlng) {
				var pixelLocation = map.fromLatLngToDivPixel(latlng);
					GLog.write('||:' + latlng + ' at:' + pixelLocation + ' zoom:' + map.getZoom());
				});
			}
			
			// Check help balloon
			cookiehelp = readCookie('helpwindow');
			if (!cookiehelp) {
				createCookie('helpwindow','help', 180);
				togglehelp("helpwindow");
			}

			// Collect and generate info
			generateparcdata("landing/centerparcs_"+country+".xml"); // jsp language code
		
			GEvent.bind(map,"zoomend",this,function() { moveMarker(); });

			GEvent.addListener(map, "dragstart", function(event)
			{
				resetmarkerstates();
			})
			
			GEvent.addListener(map, "click", function(marker, point)
			{
				if(!marker)
				{
					resetmarkerstates();
				}
			})
			
			GEvent.addListener(map.getInfoWindow(), "closeclick", function(event)
			{
				resetmarkerstates();
			});
		}
		
		function resetmarkerstates()
		{
			map.closeInfoWindow();
			
			for(i=1; i < country_markers.length; i++) {
				for(j=0; j < country_markers[i].length; j++) {
					marker = normalmarkers[country_markers[i][j]];
					marker.setImage("images/marker_default.png");
					document.getElementById('sidebar_parcname_'+country_markers[i][j]).style.backgroundColor = '#FFFFFF';
					marker_open = false;
				}
			}		
		}
		
		// A function to create the marker and set up the event window
		// There are now two arrays of markers, one for normal icons and one for highlights
		var normalmarkers = [];			// Contains the regular markers
		var htmls = [];					// Parc texts
		var country_codes = [];
		var country_markers = [];
		var country_parc_names = [];
		var selectedcountry = 0;
		var marker_open = false;
		
		function createMarker(id, point, name, html, link_label_1, link_label_2, country)
		{
			var marker = new GMarker(point, normalIcon);
			marker.id = parseInt(id);
			marker.url = urllookup[parseInt(id)];
			marker.country = country
			marker.routeurl = urllookup[parseInt(id)]+'route.htm';
//			var html = this.html;
			html += "<div class='balloonLink' style='clear:both; float:left; width:320px;'>\n";
			html += '<br /><a href="Javascript:document.location.href = \''+marker.url+'\'">&raquo '+link_label_1+'</a>';
			html += '<div style="height:5px;">&nbsp;</div><a href="Javascript:document.location.href = \''+marker.routeurl+'\'">&raquo '+link_label_2+'</a><br>';
			html += "</div>\n";			
			marker.html = html;
			marker.linkLabel1 = link_label_1;
			marker.linkLabel2 = link_label_2;
			normalmarkers[id] = marker;
			htmls[id] = html;
			

			GEvent.addListener(marker, "mouseover", function() {
				mouseoveraction(this.id, this.country);
				document.getElementById('sidebar_parcname_'+this.id).style.backgroundColor = '#F2FDDD';
			});

			GEvent.addListener(marker, "mouseout", function() {
				//document.getElementById('sidebar_parcname_'+this.id).style.backgroundColor = '#ffffff';
			});

			GEvent.addListener(marker, "click", function() {
				var html = this.html;
				/*html += "<div class='balloonLink' style='clear:both; float:left; width:320px;'>\n";
				html += '<br /><a href="Javascript:document.location.href = \''+this.url+'\'">&raquo '+this.linkLabel1+'</a>';
				html += '<div style="height:5px;">&nbsp;</div><a href="Javascript:document.location.href = \''+this.routeurl+'\'">&raquo '+this.linkLabel2+'</a><br>';
				html += "</div>\n";*/
				marker.openInfoWindowHtml(html);
			});

			return marker;
		}
		
		function mouseoveraction(id, country)
		{
			// first reset all markers
			var marker;
			if(marker_open == id) { return false; }
			
			if(selectedcountry != 0) {
				if(country == selectedcountry) {
					for(j=0; j < country_markers[country].length; j++) {
						marker = normalmarkers[country_markers[country][j]];
						marker.setImage("images/marker_default.png");
						document.getElementById('sidebar_parcname_'+country_markers[country][j]).style.backgroundColor = '#FFFFFF';
					}
					if(typeof(country_markers[country])=="object") {
						if(country_markers[country].in_array(id)) {
							marker = normalmarkers[id];
							marker.setImage("images/marker_hover.png");
							marker.openInfoWindowHtml(htmls[id]);
							marker_open = id;
						}
					}
				}
			} else {
				for(i=1; i < country_markers.length; i++) {
					for(j=0; j < country_markers[i].length; j++) {
						marker = normalmarkers[country_markers[i][j]];
						marker.setImage("images/marker_default.png");
						document.getElementById('sidebar_parcname_'+country_markers[i][j]).style.backgroundColor = '#FFFFFF';
					}
				}
			
				var marker = normalmarkers[id];
				marker.setImage("images/marker_hover.png");
				marker.openInfoWindowHtml(htmls[id]);
				marker_open = id;
			}
		}
		
		function goto(lat, lng, zoom)
		{
			var point = new GLatLng(lat,lng);
			map.setCenter(point, zoom);
		}
		
		function gotoAndGroupMarkers(country_id, lat, lng, zoom)
		{
			var point = new GLatLng(lat,lng);
			map.setCenter(point, zoom);
			
			map.getInfoWindow().hide();
			map.clearOverlays();
			
			selectedcountry = country_id;
			
			if(country_id == 0)
			{
				for(i=1; i < country_markers.length; i++) {
					for(j=0; j < country_markers[i].length; j++)
					{
						marker = normalmarkers[country_markers[i][j]];
						map.addOverlay(marker);
					}
				}
			}
			else
			{
				for(j=0; j < country_markers[country_id].length; j++)
				{
					marker = normalmarkers[country_markers[country_id][j]];
					map.addOverlay(marker);
				}
			}
		}
		
		function generateparcdata(url) {
			var request = GXmlHttp.create();
			request.open("GET", url, true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDoc = request.responseXML;
					
					// Help text
					var helpdesc = xmlDoc.getElementsByTagName("helpdescription")[0].childNodes[0].nodeValue;
					var helpdescnav = xmlDoc.getElementsByTagName("helpdescriptionnav")[0].childNodes[0].nodeValue;
					var helpdesctitle = xmlDoc.getElementsByTagName("helpdescriptiontitle")[0].childNodes[0].nodeValue;
					
					// Link labels
					var link_label_1 = xmlDoc.getElementsByTagName("linklabelparc")[0].childNodes[0].nodeValue;
					var link_label_2 = xmlDoc.getElementsByTagName("linklabelroute")[0].childNodes[0].nodeValue;
					
					// obtain the array of parcs and loop through it
					var parcs = xmlDoc.documentElement.getElementsByTagName("parc");
					var parc_ids = [];		// make array of all markers
					var parc_names = [];	// make array of all parcnames
					
					// obtain the country codes
					for (var i = 0; i < parcs.length; i++) {
						country_codes[i] = parcs[i].getElementsByTagName("country")[0].getAttribute("countryid");
						country_markers[i] = new Array();
						country_parc_names[i] = new Array();
					}
					
					// hide the info window, otherwise it still stays open where the removed marker used to be
					map.getInfoWindow().hide();
					map.clearOverlays();

					for (var i = 0; i < parcs.length; i++) {
						// obtain the attribues of each parc
						var parc_id = parseFloat(parcs[i].getAttribute("parcid"));
						var country_id = parcs[i].getElementsByTagName("country")[0].getAttribute("countryid");

						var lat = parseFloat(parcs[i].getElementsByTagName("latitude")[0].childNodes[0].nodeValue);
						var lng = parseFloat(parcs[i].getElementsByTagName("longitude")[0].childNodes[0].nodeValue);
						var point = new GLatLng(lat,lng);

						var parcname = parcs[i].getElementsByTagName("parcname")[0].childNodes[0].nodeValue;
						var postcode = parcs[i].getElementsByTagName("parczipcode")[0].childNodes[0].nodeValue;
						var street = parcs[i].getElementsByTagName("parcaddress")[0].childNodes[0].nodeValue;
						var city = parcs[i].getElementsByTagName("parccity")[0].childNodes[0].nodeValue;
						var gmquery = parcs[i].getElementsByTagName("routingaddress")[0].childNodes[0].nodeValue;
						var parcdistances = parcs[i].getElementsByTagName("parcdistances")[0].childNodes[0].nodeValue;
						
						var rating = parseInt(parcs[i].getAttribute("rating"));
						var category = parcs[i].getElementsByTagName("category")[0].childNodes[0].nodeValue;
						
						var detailtitle = parcs[i].getElementsByTagName("parcdetailtitle")[0].childNodes[0].nodeValue;
						
						var html = "";
						
						html+= "<div style='width:320px;'>\n";
						
						html+= "<div style='width:200px; float:left;'>\
									<h3 style='font-size:110%; margin-bottom:0px;'>" + parcname + "</h3>\
									"+category+ "\
								</div>\n";
						
						html+= "<div style='width:120px; float:left;'>\
									<ul class='mapTooltipRating'>\n";
						for(var rat = 0; rat < rating; rat++) {
							html+= "<li>" + rat + " star</li>\n";
						}
						html+= "	</ul>\
								</div>\
								<div style='clear:both; width:200px; float:left;'>\
									<ul class='mapTooltipInfo'>\n";
						// usps
						var usps = parcs[i].getElementsByTagName("usp");
						for(var usp = 0; usp < usps.length; usp++) {
							html+= "<li>" + usps[usp].childNodes[0].nodeValue + "</li>\n";
						}
						html+= "	</ul>\
									<div class='mapTooltipDetail' style='margin-bottom:0px;'>\
									<h3 style='font-size:11px; margin-bottom:5px;'>" + detailtitle + "</h3>\
									" + street + "<br />\
									" + postcode + " " + city + "<br />\
									</div>\
								</div>\
								<div style='width:120px; float:left;'>\
									<div>\n<img src='images/"+parc_id+".jpg' width='100' height='100'></div>\
								</div>\
						</div>";

						// Remember all id's for lookup
						parc_ids[i] = parc_id;
						parc_names[i] = parcname;
						
						// And also per country
						country_markers[parseInt(country_id)].push(parc_id);
						country_parc_names[parseInt(country_id)].push(parcname);
						
						// create the marker
						var marker = createMarker(parc_id, point, parcname, html, link_label_1, link_label_2, country_id);
						map.addOverlay(marker);
					}

					//moveMarker();
					// Side bar
					var sidebar = document.getElementById('sidebar');
					var countryClasses = new Array('countryColA', 'countryColB', 'countryColC', 'countryColD');
					var countryTitleClasses = new Array('countryTitleNL', 'countryTitleBE', 'countryTitleDE', 'countryTitleFR');
					
					var sidebar_html = '';
					var sidebar_htmlA = '';
					var sidebar_htmlB = '';
					var sidebar_htmlC = '';					
					var sidebar_htmlD = '';
					
					var outside_urlA = '';
					var outside_urlB = '';
					var outside_urlC = '';
					var outside_urlD = '';
					
					// Country choice
					document.getElementById('countrytitle').innerHTML = '<h3>' + xmlDoc.getElementsByTagName("countrychoicetitle")[0].childNodes[0].nodeValue + '</h3>';
					document.getElementById('sidebar_instruct').innerHTML = '<h3>' + xmlDoc.getElementsByTagName("countrychoicecontent")[0].childNodes[0].nodeValue + '</h3>';
					
					var countrychoices = xmlDoc.documentElement.getElementsByTagName("countrychoicecoordinate");

					for (var i = 0; i < countrychoices.length; i++) {
						var lat = parseFloat(countrychoices[i].getElementsByTagName("lat")[0].childNodes[0].nodeValue);
						var lng = parseFloat(countrychoices[i].getElementsByTagName("lng")[0].childNodes[0].nodeValue);
						var zoom = parseInt(countrychoices[i].getElementsByTagName("zoomfactor")[0].childNodes[0].nodeValue);
						var label = countrychoices[i].getElementsByTagName("label")[0].childNodes[0].nodeValue;
						var flagimg = countrychoices[i].getElementsByTagName("flag")[0].childNodes[0].nodeValue;
						var parccount = countrychoices[i].getElementsByTagName("parccount")[0].childNodes[0].nodeValue;
						
						if(i > 0)
						{
							if(i == 1)
							{
								outside_urlA = 'gotoAndGroupMarkers('+i+','+lat+','+lng+','+zoom+');';
								sidebar_htmlA += '\
								<div class="'+countryClasses[i - 1]+'">\
									<div class="sideNav">\
										<h3 class="'+countryTitleClasses[i - 1]+'" style="background-image:url(images/'+flagimg+')"><a href="Javascript:'+outside_urlA+'" class="countryTitle">'+label+' ('+parccount+')</a></h3>\
										<ul>';
								for(j=0; j < country_markers[i].length; j++)
								{
									id = country_markers[i][j];
									sidebar_htmlA += '<li id="sidebar_parcname_'+id+'"><a href="'+urllookup[id]+'" onmouseover="mouseoveraction(\''+id+'\', \''+i+'\');">'+country_parc_names[i][j]+'</a></li>';
								}
								sidebar_htmlA += '\
										</ul>\
									</div>\
								</div>';
							}
							if(i == 2)
							{
								outside_urlB = 'gotoAndGroupMarkers('+i+','+lat+','+lng+','+zoom+');';
								sidebar_htmlB += '\
								<div class="'+countryClasses[i - 1]+'">\
									<div class="sideNav">\
										<h3 class="'+countryTitleClasses[i - 1]+'" style="background-image:url(images/'+flagimg+')"><a href="Javascript:'+outside_urlB+'" class="countryTitle">'+label+' ('+parccount+')</a></h3>\
										<ul>';
								for(j=0; j < country_markers[i].length; j++)
								{
									id = country_markers[i][j];
									sidebar_htmlB += '<li id="sidebar_parcname_'+id+'"><a href="'+urllookup[id]+'" onmouseover="mouseoveraction(\''+id+'\', \''+i+'\');">'+country_parc_names[i][j]+'</a></li>';
								}
								sidebar_htmlB += '\
										</ul>\
									</div>\
								</div>';
							}
							if(i == 3)
							{
								outside_urlC = 'gotoAndGroupMarkers('+i+','+lat+','+lng+','+zoom+');';
								sidebar_htmlC += '\
								<div class="'+countryClasses[i - 1]+'">\
									<div class="sideNav">\
										<h3 class="'+countryTitleClasses[i - 1]+'" style="background-image:url(images/'+flagimg+')"><a href="Javascript:'+outside_urlC+'" class="countryTitle">'+label+' ('+parccount+')</a></h3>\
										<ul>';
								for(j=0; j < country_markers[i].length; j++)
								{
									id = country_markers[i][j];
									sidebar_htmlC += '<li id="sidebar_parcname_'+id+'"><a href="'+urllookup[id]+'" onmouseover="mouseoveraction(\''+id+'\', \''+i+'\');">'+country_parc_names[i][j]+'</a></li>';
								}
								sidebar_htmlC += '\
										</ul>\
									</div>\
								</div>';
							}
							if(i == 4)
							{
								outside_urlD = 'gotoAndGroupMarkers('+i+','+lat+','+lng+','+zoom+');';
								sidebar_htmlD += '\
								<div class="'+countryClasses[i - 1]+'">\
									<div class="sideNav">\
										<h3 class="'+countryTitleClasses[i - 1]+'" style="background-image:url(images/'+flagimg+')"><a href="Javascript:'+outside_urlD+'" class="countryTitle">'+label+' ('+parccount+')</a></h3>\
										<ul>';
								for(j=0; j < country_markers[i].length; j++)
								{
									id = country_markers[i][j];
									sidebar_htmlD += '<li id="sidebar_parcname_'+id+'"><a href="'+urllookup[id]+'" onmouseover="mouseoveraction(\''+id+'\', \''+i+'\');">'+country_parc_names[i][j]+'</a></li>';
								}
								sidebar_htmlD += '\
										</ul>\
									</div>\
								</div>';
							}
						}
						else
						{
//							document.getElementById('allparcs').innerHTML = '<a href="Javascript:gotoAndGroupMarkers(0, '+lat+','+lng+','+zoom+');" class="countryTitle"><h3>'+label+'</h3></a>';
						}
					}
					
					// Determine sequence
					switch(language) {
						case "NL" :
							sidebar_html+= sidebar_htmlA + sidebar_htmlB + sidebar_htmlC + sidebar_htmlD;
							break;
						case "VL" :
							sidebar_html+= sidebar_htmlB + sidebar_htmlA + sidebar_htmlC + sidebar_htmlD;
							break;
						case "WL" :
							sidebar_html+= sidebar_htmlB + sidebar_htmlA + sidebar_htmlC + sidebar_htmlD;
							break;
						case "DE" :
							sidebar_html+= sidebar_htmlC + sidebar_htmlA + sidebar_htmlB + sidebar_htmlD;
							break;
						case "FR" :
							sidebar_html+= sidebar_htmlD + sidebar_htmlA + sidebar_htmlB + sidebar_htmlC;
							break;
						case "EN" :
							sidebar_html+= sidebar_htmlA + sidebar_htmlB + sidebar_htmlC + sidebar_htmlD;
							break;
					}
		
					sidebar.innerHTML = sidebar_html;
					
					// Help window
					document.getElementById('helpbutton').style.visibility = 'visible';
					document.getElementById('helpbutton').innerHTML = "<div style='padding-top:3px;' class='mapHelpButtonText' onclick='togglehelp(\"helpwindow\");'>" + xmlDoc.getElementsByTagName("buttonlabel")[0].childNodes[0].nodeValue + "</div>";
					
					var helphtml = "";

					helphtml+= "<table cellpadding='0' cellspacing='0' border='0' width='258' height='288'>\n";
					helphtml+= "<tr>\n";
					helphtml+= "<td width='248' height='278' bgcolor='#E9F9D5' valign='top'>\n";
					helphtml+= "<div align='right' style='height:21px; padding-right:5px;'><a href='#' onclick='closehelp(\"helpwindow\");'><img src='images/help_button_close.gif' width='12' height='13' border='0'></a></div>\n";
					helphtml+= "<div style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#3F3F3F; padding-left:20px; padding-right:20px;'>\n";
					helphtml+= "<div style='font-size:11px; font-weight:bold;'>"+helpdesctitle+"</div><br>\n";
					helphtml+= helpdesc+"\n";
					helphtml+= "<div style='background-image:url(images/divider.gif); background-repeat:repeat-x; width:100%; height:16px;'></div>\n";
					helphtml+= "<div style='float:left; padding-right:15px;'><img src='images/help_content.gif' width='57' height='102'></div>\n";
					helphtml+= "<div>"+helpdescnav+"</div>\n";
					helphtml+= "</div>\n";
					helphtml+= "</td>\n";
					helphtml+= "<td width='10' height='10' class='transRightBG'></td>\n";
					helphtml+= "</tr>\n";
					helphtml+= "<tr>\n";
					helphtml+= "<td height='10' class='transBottomBG'></td>\n";
					helphtml+= "<td height='10' class='transCornerBG'></td>\n";
					helphtml+= "</tr>";
					helphtml+= "</table>\n";

					document.getElementById('helpwindow').innerHTML = helphtml;
					
					// Check if from external page
					country_id = queryString('language');
					switch(country_id) {
						case "NL":
							eval(outside_urlA);
							break;
						case "BE":
							eval(outside_urlB);
							break;
						case "DE":
							eval(outside_urlC);
							break;
						case "FR":
							eval(outside_urlD);
							break;
					}
				}
			}
			request.send(null);
		}

		function moveMarker() {
			marker = normalmarkers[1171382624273];
			id = marker.id
			map.removeOverlay(marker);
			if(map.getZoom() > 9) {
				lng = 5.962657928466797;
				lat = 51.44758828725229;
			} else {
				if(map.getZoom() > 8) {
					lng = 5.986175537109375;
					lat = 51.44887208400473;					
				} else {
					if(map.getZoom() > 7) {
						lng = 6.051285362243652;
						lat = 51.45742980658965;					
					} else {
						if(map.getZoom() > 6) {
							lng = 6.25059814453125;
							lat = 51.45742980658965;
						} else {
							lng = 6.45059814453125;
							lat = 51.45742980658965;							
						}
					}
				}
			}
			var point = new GLatLng(lat,lng);
			marker.setPoint(point);
			
			normalmarkers[1171382624273] = marker;
			
			map.addOverlay(marker);
		}
	} else {
		switch(language) {
			case "NL" :
				alert("Uw browser is helaas niet geschikt om deze kaart weer te geven.");
				break;
			case "VL" :
				alert("Uw browser is helaas niet geschikt om deze kaart weer te geven.");
				break;
			case "WL" :
				alert("Malheureusement, votre navigateur ne soutient pas l'affichage de cette carte.");
				break;
			case "DE" :
				alert("Leider stützt Ihre Datenbanksuchroutine nicht die Anzeige dieses Diagramms.");
				break;
			case "FR" :
				alert("Malheureusement, votre navigateur ne soutient pas l'affichage de cette carte.");
				break;
			case "EN" :
				alert("Unfortunately, your browser does not support the display of this map.");
				break;
		}
	} 
//]]>
