function GroupMarkers(aMarkers){
	var markerPixPos = new Array();
	var aNewMarkers = new Array();
	var maxDistance = 20;
  
  if (document.getElementById('radGrondRR').checked) {
    maxDistance = 70;
  }
  else {
    maxDistance = 17;	
  }    
	for (m=0; m < aMarkers.length; m++)
	{
		var marker = aMarkers[m];
		var pixPos = map.fromLatLngToDivPixel(marker.getPoint());
		var count = 0;
		for (var i=0; i < markerPixPos.length && count<5; i++){
			dX = pixPos.x - markerPixPos[i].x;
			dY = pixPos.y - markerPixPos[i].y;
			
			pixDistance = Math.sqrt(Math.pow(dX, 2) + Math.pow(dY, 2))	

			if (pixDistance < maxDistance){
				if (pixDistance == 0){
					var rn = 1 - Math.round(Math.random() * 2)
					pixPos.x = pixPos.x + rn * maxDistance;
					rn = 1 - Math.round(Math.random() * 2)
          
          //Selectie heeft horizontale icons. Verticaal verschuiven wertk beter
          //if (document.getElementById('radGrondRR').checked)
          //  rn = 1,5*rn;
            
					pixPos.y = pixPos.y + rn * maxDistance;
				}
				else{
					var factor = maxDistance/pixDistance;
					pixPos.x = Math.round(pixPos.x + factor*dX);
					pixPos.y = Math.round(pixPos.y + factor*dY);
				}
				marker.setPoint(map.fromDivPixelToLatLng(pixPos));				
				
				i=0;
				count++;
			}
		}
		
		markerPixPos.push(pixPos);	
		aNewMarkers.push(marker);
	}
	return aNewMarkers;
}
function cloneArray(what) {
	var clone = new Array()
	for (i in what) {
		clone[i] = what[i];
	}
	return clone;
}

var _lastzoom = -1; 
function showMarkers(){
  var zoom = map.getZoom(); 
  var bounds = map.getBounds(); 
  if (zoom == _lastzoom) {
	  return;
  }
  _lastzoom = zoom;
  
  map.clearOverlays();
  var markers = addMarkers();
  newMarkers = GroupMarkers(markers);	 
  newMarkers = GroupMarkers(newMarkers);

  for (m=0; m < newMarkers.length; m++){
  	map.addOverlay(newMarkers[m]);
  }  
	if (newMarkers.length>0){
		showTooltip(newMarkers[0]); 	
		tooltip.style.visibility="hidden";
	}

}
