	var map = null;
	var maptypecontrol = null;
	var container = null;
	
	var zoom = null;
	var contouren = "geen";
	var tilelayeroverlay = null;
	var largemapcontrol = null;
	var smallmapcontrol =  null;
	var smallzoomcontrol = null;
	var scalecontrol = null;
	var overviewmapcontrol = null;
	var geocoder = null;					
	var postcode = null;
	var coordinatenwaarde = null;
	
	var halmarkers = [];
	var halhtmls = [];
	var hallats = [];
	var hallons = [];
	var i = 0;	
			
	var icon = new GIcon();
	icon.image = "";
	icon.shadow = "";
	icon.iconSize = new GSize(28, 28);
	icon.shadowSize = new GSize(37, 34);
	icon.iconAnchor = new GPoint(0, 0);
	icon.infoWindowAnchor = new GPoint(0, 0);
	icon.infoShadowAnchor = new GPoint(0, 0);
	
	function createMarker(point,html) 
	{
		var marker = new GMarker(point,icon);
        GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});
		return marker;
	}
	
	function load() 
	{
		if (GBrowserIsCompatible()) 
		{
			map = new GMap2(document.getElementById("map"));
			maptypecontrol = new GMapTypeControl();
			largemapcontrol = new GLargeMapControl();
			smallmapcontrol =  new GSmallMapControl();
			smallzoomcontrol = new GSmallZoomControl();
			scalecontrol = new GScaleControl();
			overviewmapcontrol = new GOverviewMapControl();
			geocoder = new GClientGeocoder();

			var mt = map.getMapTypes();
			for (var i=0; i<mt.length; i++) 
			{
				mt[i].getMaximumResolution = function() {return 14;}
			}

			map.addControl(largemapcontrol);
			map.addControl(maptypecontrol);
			map.addControl(overviewmapcontrol);			
			map.setCenter(new GLatLng(52.087193, 5.114951), 11);
			GEvent.addListener(map, "zoomend", ToonContouren);
			GEvent.addListener(map, "click", ToonContouren);
			GEvent.addListener(map, "maptypechanged", ToonContouren);
			
			document.getElementById("TeZoekenPostcode").value='';
			document.getElementById("TeZoekenPostcode").focus();
			document.getElementById("geen").checked = true;
		}
		else 
		{
			alert("Sorry, de Google Maps API is niet compatible met deze browser");
		}
	}

	function ToonContouren()
	
	{
		if (GBrowserIsCompatible(tilelayeroverlay)) 
		{	
			
			if (tilelayeroverlay != null)
			{
				map.removeOverlay(tilelayeroverlay);
			}

			zoom = map.getZoom();
			
			if (contouren != 'geen')
			{
				var tilelayer = new GTileLayer(new GCopyrightCollection(""), zoom, zoom+1); 
				tilelayer.getTileUrl = function(a,b) { 
				if ((b > 14) || (b < 8))
				{ 
					return "http://www.prorail.nl/internetresources/geluidskaart/blanktile.png"; 
				};
				b=this.maxResolution()-b; 
				
				var filename = "http://www.prorail.nl/internetresources/geluidskaart/data/" + contouren + "/" + zoom + "/" + a.x + "/" + a.y + ".png"; 
				//alert('x: ' + a.x + '  y:' + a.y + '  zoom:' + b + '\n' + filename + '\n' + map.GetCenter.x);
				
				return filename; 
				} 
				tilelayer.isPng = function() {return true;} 
				tilelayeroverlay = new GTileLayerOverlay(tilelayer); 

				map.addOverlay( tilelayeroverlay ); 
			}
		}
	}

	function WijzigContouren(ContourenType)
	
	{
		contouren = ContourenType;
		
		if (contouren == 'geen')
		{
			lden.innerHTML = '<table width="100%"><tr><td></td></tr></table>';
			lnight.innerHTML = '<table width="100%"><tr><td></td></tr></table>';
		}

		if (contouren == 'lden')
		{
			lden.innerHTML = '<table width="100%"> \
			<tr><td width="29"></td><td width="24" class="klasse2"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">55 - 59 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse3"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">60 - 64 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse4"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">65 - 69 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse5"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">70 - 74 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse6"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">>= 75 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr heihgt="5"><td colspan="5"><span class="tekstklein"><i>\'Lden\' staat voor de gemiddelde geluidbelasting gedurende een etmaal. Indicator voor hinder.</i></span></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			</table>';
			lnight.innerHTML = '<table width="100%"><tr><td></td></tr></table>';
		}

		if (contouren == 'lnight')
		{
			lden.innerHTML = '<table width="100%"><tr><td></td></tr></table>';
			lnight.innerHTML = '<table width="100%"> \
			<tr><td width="29"></td><td width="24" class="klasse1"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">50 - 54 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse2"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">55 - 59 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse3"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">60 - 64 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse4"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">65 - 69 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr><td width="29"></td><td width="24" class="klasse5"></td><td width="8"></td><td width="100" align="right"><span class="tekstklein">>= 70 dB</span></td><td width="75"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			<tr heihgt="5"><td colspan="5"><span class="tekstklein"><i>\'Lnight\' staat voor de gemiddelde geluidbelasting gedurende de nacht. Indicator voor slaapverstoring.</i></span></td></tr> \
			<tr heihgt="5"><td colspan="5"></td></tr> \
			</table>';
		}		
		
		ToonContouren();
	}
	
	function PostcodeOpKaart(response) 
	{
		map.clearOverlays();
		ToonContouren();
		
		if (!response || response.Status.code != 200) 
		{
				alert('De door u opgegeven postcode ' + postcode + ' is niet gevonden.');
				document.getElementById("TeZoekenPostcode").focus();
				document.getElementById("TeZoekenPostcode").select();		
		}
		else
		{
			place = response.Placemark[0];

			if ((place.AddressDetails.Accuracy != 5) || (place.address.indexOf("Netherlands") < 0))
			{
				alert('De door u opgegeven postcode ' + postcode + ' is niet gevonden.');
				document.getElementById("TeZoekenPostcode").focus();
				document.getElementById("TeZoekenPostcode").select();		
			}
			else
			{
				point = new GLatLng(place.Point.coordinates[1],
						place.Point.coordinates[0]);

				hetadres = place.address.replace(/,/g,"<br>");
				gevondenadres= hetadres.replace("The Netherlands","Nederland");
				gevondenadres = gevondenadres.replace("Netherlands","Nederland");
				gevondenadres = gevondenadres.replace("(","<br>Provincie ");
				gevondenadres = gevondenadres.replace(")","");

				htmlstring = '<table><tr align="left"><td class="tekstgroot">Postcode gevonden</td></tr><tr align="left"><td class="tekstklein">' + gevondenadres + '</td></tr></table>';	
				marker = createMarker(point, htmlstring);
				map.setCenter(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(htmlstring);
			}
		}
	}

	function ZoekPostcode()
	{	
		var juisteinvoer = true;
		postcode = document.getElementById("TeZoekenPostcode").value;

		if (postcode.length != 4) 
		{alert("De postcode dient uit 4 cijfers te bestaan.");
		 juisteinvoer = false;
		}
		else
		{
			if (isNaN(postcode)) 
			{alert("De postcode dient uit 4 cijfers te bestaan.");
			 juisteinvoer = false;
			}
		}
		
		if (juisteinvoer)
		{
			var codeerstring = postcode + ',Netherlands';
			geocoder.getLocations(codeerstring, PostcodeOpKaart);
		}
		else
		{
			document.getElementById("TeZoekenPostcode").focus();
			document.getElementById("TeZoekenPostcode").select();
		}
	}

	function enterKnop(e)
	{ 
	   var key = e.keyCode || e.which; 
	   if (key==13)
	   { 
		   ZoekPostcode(); 
	   } 
	} 

	function MM_displayStatusMsg(msgStr) 
	{
	  status=msgStr;
	  document.MM_returnValue = true;
	}

