    //<![CDATA[
	var map;
	var mgr;
	var geocoder;
	var baseIcon;
	var momentcoordinates='52.308478623663355, 5.679931640625';
	var momentzoom=7;
	var mapType="n";
	var lg='';
	var u='';
	var markerReference=[];
	var cluster;
	var MAX_NEW_MARKERS=10;
	var useCluster=1;
	//Deze variable zorgt ervoor dat de clustermanager niet te vroeg laad.
	var delay=2000;

			function addAddress(address, message, smallmessage, kleur)
			{
				var icoon = new GIcon(baseIcon);
				switch(kleur){
					default:
					icoon.image='../images/maps-icon-blauw.png';
					break;
					
					case "blauw":
					icoon.image='../images/maps-icon-blauw.png';
					break;
					
					case "geel":
					icoon.image='../images/maps-icon-geel.png';
					break;
					
					case "groen":
					icoon.image='../images/maps-icon-groen.png';
					break;
					
					case "paars":
					icoon.image='../images/maps-icon-paars.png';
					break;
					
					case "rood":
					icoon.image='../images/maps-icon-rood.png';
					break;
					
					case "bruin":
					icoon.image='../images/maps-icon-bruin.png';
					break;
					
					case "oranje":
					icoon.image='../images/maps-icon-oranje.png';
					break;
					
					case "rose":
					icoon.image='../images/maps-icon-rose.png';
					break;
				}
				var markerlocation=address;
				var marker = new GMarker(markerlocation,{icon:icoon});
				
				GEvent.addListener(marker, 'mouseover', function(){
				jQuery('#comment').show();
				if (document.getElementById) {
				document.getElementById('comment').innerHTML = smallmessage;
				}else{
				if (document.layers) {	
				document.comment.innerHTML = smallmessage;
				}else{
				document.all.comment.innerHTML = smallmessage;
				}
				}
				
				gotoMouse();
				});
				
				GEvent.addListener(marker, 'mouseout', function(){
				jQuery('#comment').hide();
				gotoMouse();
				});
				
				GEvent.addListener(marker, 'click', function(){
					if (document.getElementById) {
					document.getElementById('infoDiv').innerHTML=message;
					}else{
					if (document.layers) {
					document.infoDiv.innerHTML=message;	
					}else{
					document.all.infoDiv.innerHTML=message;
					}
					}
				});
				//map.addOverlay(marker);
				markerReference.push(marker);
			}
			
			function inzoomen(location)
			{
				map.setCenter(new GLatLng(location), 14);
			}
			
			function inCommaList(match,list)
			{
				var listarray=list.split(",");
				for(var i=0; i<listarray.length; i++){
					if(match==listarray[i]){
						return true;
					}
				}
				return false;
			}
			
			function loadXML(sort,regio)
			{
				if(typeof regio=="undefined"){regio=""; return;}
				if(sort==''){sort='lastlogo';}
				lg=sort;
				map.clearOverlays();
				
				GDownloadUrl("../data/bedrijven.xml", function(data) {
				  var xml = GXml.parse(data);
				  var markers = xml.documentElement.getElementsByTagName("marker");
				  var loop=markers.length;
				  if(sort=='lastlogo')
				  {
				  var loopend=0;
				  var loops=0;
					for (var i = 0; i < loop; i++) {
						if(markers[i].getAttribute("logonaam")!='')
						{
							if(markers[i].getAttribute("royal")==1){
							loops--;
							}
							loops++;
						}
						loopend++;
                        //aantal markers
						if(loops>=MAX_NEW_MARKERS)
						{
							break;
						}
					}
					loop=loopend;
				  }
				  for (var i = 0; i < loop; i++) {
					var add=false;
					switch(sort){
						default:
							if(inCommaList(sort,markers[i].getAttribute("groepen"))){ 
								if(regio!=""){ 
									if(regio.toLowerCase()==markers[i].getAttribute("provincie").toLowerCase()){add=true;}
								}else{add=true;}
							}
						break;
					
						case "lastlogo":
							if(markers[i].getAttribute("logonaam")==''){
							add=false;
							}else{
							add=true;
							}
                            // haal de dubbele royal sid er uit
							if(markers[i].getAttribute("sid")==temproyal){
                            add=false;
							}

						break;
						
						case "overzicht":
							if(regio!=""){ 
									if(regio.toLowerCase()==markers[i].getAttribute("provincie").toLowerCase()){add=true;}
							}else{add=true;}
						break;
					}
					if(add){
					//GEEFT DE LAATSTE (aantal = loops) NIEUWE SID'S WEER, LOOP BEGINT ALTIJD BIJ HET HOOGSTE SID
					var contact=0;
					var royal=0;
					var temproyal=markers[i].getAttribute("sid");
					var sid=markers[i].getAttribute("sid");
					var naam=markers[i].getAttribute("naam");
					var logonaam=markers[i].getAttribute("logonaam");
					var adres=markers[i].getAttribute("address");
					var plaats=markers[i].getAttribute("plaats");
					var postcode=markers[i].getAttribute("postcode");
					if(logonaam!=''){
					var logo="<img src='http://www.beveiligingnieuws.nl/logos/"+logonaam+"'><br />";	
					//var logoklein="<td align='left' valign='middle'><img style='vertical-align:middle;' height='30' src='http://www.beveiligingnieuws.nl/logos/"+logonaam+"'></td>";
					var logoklein="<img style='vertical-align:middle;' height='30' src='http://www.beveiligingnieuws.nl/logos/"+logonaam+"'>";
					}else{
					var logoklein="";
					var logo="";
					}
					if(postcode!=''){
						postcode+=",";
					}
					if(markers[i].getAttribute("contact")==1){
						contact=1;
					}else{
						contact=0;
					}
					if(markers[i].getAttribute("royal")==1){
						royal=1;
					}
					
					var info=createInfo(logo,naam,adres,postcode,plaats,sid,contact,royal);
					//var infosmall="<table border='0' align='center' height='50' width='200' cellpadding='5' cellspacing='0'><tr>"+logoklein+"<td align='center' valign='middle'>"+naam+"<br />"+plaats+"</td></tr></table><br />";
					var infosmall="<div style='float:left; padding:5px; margin:auto; vertical-align:middle;'>"+logoklein+"</div><div style='float:left; padding:5px;'>"+naam+"<br />"+plaats+"</div>";
					//var infosmall="<span>"+logoklein+"<span style='line-height:auto;>'"+naam+"<br />"+plaats+"</span></span>";

						var coordinaten = new GLatLng(parseFloat(markers[i].getAttribute("longitude")),
									parseFloat(markers[i].getAttribute("latitude")));
						var kleur="blauw";
						if(royal==1){
						kleur="rood";
						}
						addAddress(coordinaten,info, infosmall, kleur);
					}
				  }
				  
				});
			}
			
	function loadMarker(id)
			{
			map.clearOverlays();
			u=id;
			GDownloadUrl("../data/bedrijven.xml", function(data) {
			  var xml = GXml.parse(data);
			  var markers = xml.documentElement.getElementsByTagName("marker");
			  var loop=markers.length;
			  for (var i = 0; i < loop; i++) {
					var add=true;
					if(markers[i].getAttribute("sid")==id){add=true;}else{add=false;}
					if(add){
					var contact=0;
					var royal=0;
					var sid=markers[i].getAttribute("sid");
					var naam=markers[i].getAttribute("naam");
					var logonaam=markers[i].getAttribute("logonaam");
					var adres=markers[i].getAttribute("address");
					var plaats=markers[i].getAttribute("plaats");
					var postcode=markers[i].getAttribute("postcode");
					if(logonaam!=''){
					var logo="<img src='http://www.beveiligingnieuws.nl/logos/"+logonaam+"'><br />";	
					var logoklein="<td align='left' valign='middle'><img height='30' src='http://www.beveiligingnieuws.nl/logos/"+logonaam+"'></td>";	
					}else{
					var logoklein="";
					var logo="";
					}
					if(postcode!=''){
						postcode+=",";
					}
					if(markers[i].getAttribute("contact")==1){
						contact=1;
					}else{
						contact=0;
					}
					if(markers[i].getAttribute("royal")==1){
						royal=1;
					}
					
					var info=createInfo(logo,naam,adres,postcode,plaats,sid,contact,royal);
					var infosmall="<table border='0' align='center' height='50' width='200' cellpadding='5' cellspacing='0'><tr>"+logoklein+"<td align='center' valign='middle'>"+naam+"<br />"+plaats+"</td></tr></table><br />";

						var coordinaten = new GLatLng(parseFloat(markers[i].getAttribute("longitude")),
									parseFloat(markers[i].getAttribute("latitude")));
						var kleur="blauw";
						if(royal==1){
						kleur="rood";
						}
						addAddress(coordinaten,info, infosmall,kleur);
						map.setCenter(coordinaten, 17);
					}
				}
			});	
		}
	function Zoek(zoeken, filter)
	{
	geocoder.getLatLng(zoeken,function(point){
		if (!point) {
		alert('niets gevonden');
		}else{
		map.setCenter(point, 9);
		}
		});
	}
	
	//DE FUNCTIE DRAW BUTTON IS EEN LISTENER FUNCTIE, DEZE REGISTREERT DE HUIDIGE COORDINATEN OP DE MAP
	function drawButton(){
		var center=map.getCenter();
		center=center.toString().replace("(","");
		center=center.toString().replace(")","");
		var zoomer=map.getZoom();
		var type=map.getCurrentMapType();
		var tn="n";
		switch(type){
			default:
			break;
			case G_NORMAL_MAP:
			mapType="n";
			break;
			case G_SATELLITE_MAP:
			tn="s";
			mapType="s";
			break;
			case G_HYBRID_MAP:
			tn="b";
			mapType="b";
			break;
		}
		momentcoordinates=center;
		momentzoom=map.getZoom();
		if(document.getElementById('buttonvak')){
		document.getElementById('buttonvak').value="<a href='http://www.beveiligingkaart.nl/zoom/c="+center+"&z="+zoomer+"&t="+tn+"&lg="+lg+"&u="+u+"'><img border='0' src='http://www.beveiligingkaart.nl/logos/button.png' target='_blank' alt='Bekijk ons op Beveiliging Kaart.nl' title='Bekijk ons op Beveiliging Kaart.nl' /></a>";	
		}
	}
	
	function load(action, value, regio) {
	  if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById('mapDiv'));
		geocoder=new GClientGeocoder();
		
		//map.setMapType(G_HYBRID_MAP); Start om satteliet view
		baseIcon = new GIcon(G_DEFAULT_ICON);
		//map.enableScrollWheelZoom();
		baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
		baseIcon.iconSize = new GSize(20, 34);
		baseIcon.shadowSize = new GSize(37, 34);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(52.308478623663355, 5.679931640625), 7);
		jQuery('#comment').hide();
		GEvent.addListener(map, 'moveend', function(){
		drawButton();
		});
		if(value=='lastlogo'){useCluster=0;}
		switch(action)
		{
			default:
				loadXML('lastlogo',regio);
			break;
			
			case 'zoom':
				var data=value.split(";");
				var coordinaten=data[0].split(",");
				
				var inzoom=parseInt(data[1]);
				if(data[2]!='')
				{
					switch(data[2]){
						default:
						break;
						case "s":
						map.setMapType(G_SATELLITE_MAP);
						break;
						case "b":
						map.setMapType(G_HYBRID_MAP);
						break;
					}
				}
				if(data[4]==''){
				loadXML(data[3],"");
				}else{
				loadMarker(data[4]);
				}
				if(coordinaten[0]!=''&&coordinaten[1]!=''&&inzoom!=''){
					map.setCenter(new GLatLng(parseFloat(coordinaten[0]),parseFloat(coordinaten[1])), inzoom);
				}
			break;
	
			case 'zoeken':
				var zoekdata=value.split(";");
				Zoek(zoekdata[0]);
				loadXML(zoekdata[1],regio);
			break;
			
			case 'bedrijf':
				loadMarker(value);
				map.setMapType(G_HYBRID_MAP);
			break;
			
			case 'load':
				loadXML(value,regio);
			break;
		}
		
		if(regio!='')
		{
			switch(regio)
			{
				default:
					
				break;
				
				case "Drenthe":
				map.setCenter(new GLatLng(52.93208571886021, 6.602783203125), 9);
				break;
				
				case "Flevoland":
				map.setCenter(new GLatLng(52.49950372242746, 5.49041748046875), 9);
				break;
				
				case "Friesland":
				map.setCenter(new GLatLng(53.11875693043106, 5.8447265625), 9);
				break;
				
				case "Gelderland":
				map.setCenter(new GLatLng(52.07275365395317, 5.8282470703125),8);
				break;
				
				case "Groningen":
				map.setCenter(new GLatLng(53.212612189941574, 6.580810546875), 9);
				break;
				
				case "Limburg":
				map.setCenter(new GLatLng(51.10179728957699, 5.91064453125), 9);
				break;
				
				case "Noord-Brabant":
				map.setCenter(new GLatLng(51.590722643120145, 5.1910400390625), 9);
				break;	
				
				case "Overijssel":
				map.setCenter(new GLatLng(52.39739142194209, 6.57257080078125), 9);
				break;
				
				case "Utrecht":
				map.setCenter(new GLatLng(52.11493908614797, 5.11138916015625), 9);
				break;
				
				case "Noord-Holland":
				map.setCenter(new GLatLng(52.60971939156648, 4.87518310546875), 9);	
				break;
				
				case "Zeeland":
				map.setCenter(new GLatLng(51.60266574567797, 3.790283203125), 9);	
				break;
				
				case "Zuid-Holland":
				map.setCenter(new GLatLng(52.0001013752444, 4.50439453125), 9);	
				break;
			}		
		}
		setTimeout(function(){
		if(useCluster==1)
		{
		var cicoon = new GIcon(baseIcon);
		cicoon.image='../images/cluster-icon.png';
		cluster=new ClusterMarker(map, { markers:markerReference,clusterMarkerIcon:cicoon } );
		cluster.clusterMarkerTitle='%count plaatsmarkeringen';
		cluster.clusteringEnabled=true;
		cluster.clusterMarkerClick=function(args) { map.setCenter(args.clusterMarker.getPoint(),map.getZoom()+2);};
		cluster.refresh(true);
		}else{
			for(var i = 0; i<markerReference.length; i++)
			{
				map.addOverlay(markerReference[i]);
			}
		}} ,delay);		
	}
}
    //]]>