 function createMarkeradres(point,bungalowpark,adres,pcwoonplaats,plaats,link_image) {
	var titel = bungalowpark + ", " + plaats; 
	var src = '<div class="foto"><img src="' + link_image + '" alt="' + titel + '"></div>';
	var detail = '<div style="width: 350px; height: 200px; overflow: auto"><div class="kader" style="margin: 0px,5px,0px,5px;"><h4 class="head">' + bungalowpark + '</h4>' + src +  '<div style="margin-left: 10px; padding-top: 5px;font-size:x-small;"><div style="float: left; width: 50px; padding-bottom: 5px;"><b>Adres:</b>&nbsp;</div><div>' + adres + '<br/>' + pcwoonplaats + '</div><div style="padding-bottom: 5px; clear: both;"><strong>Routebeschrijving: </strong><a href="http://maps.google.com/maps?saddr=&daddr=' + point.lat() + ',' + point.lng() + '" title="Als u deze link volgt, wordt er een nieuw venster geopend" target="_blank">Hier naartoe</a> - <a href="http://maps.google.com/maps?daddr=&saddr=' + point.lat() + ',' + point.lng() + '" title="Als u deze link volgt, wordt er een nieuw venster geopend" target="_blank">Hier vandaan</a></div></div></div></div>';
	var icon = new GIcon();
    	icon.image = "/images/bungalow.gif";
	icon.shadow = "/images/shadow-bungalow.png";
	icon.iconSize = new GSize(30.0, 30.0);
	icon.shadowSize = new GSize(46.0, 30.0);
	icon.iconAnchor = new GPoint(15.0, 15.0);
	icon.infoWindowAnchor = new GPoint(15.0, 15.0);
        var marker = new GMarker(point,{icon:icon,title:titel});
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(detail);
        });
        return marker;
    }

function createMarkerinfo(point,adv, bungalowpark, plaats, regio_weergeven) {
	var titel = bungalowpark + ", " + plaats;
	var icon = new GIcon();
    	icon.image = "/images/bungalow.gif";
	icon.shadow = "/images/shadow-bungalow.png";
	icon.iconSize = new GSize(30.0, 30.0);
	icon.shadowSize = new GSize(46.0, 30.0);
	icon.iconAnchor = new GPoint(15.0, 15.0);
	icon.infoWindowAnchor = new GPoint(15.0, 15.0);
        var marker = new GMarker(point,{icon:icon,title:titel});
        GEvent.addListener(marker, "click", function() {
	 var searchUrl = '/php/openinfowindowtab.php?adv=' + adv + '&regio=' + regio_weergeven;
         GDownloadUrl(searchUrl, function(data, responseCode){
	    var xml = GXml.parse(data);
	    var markers = xml.documentElement.getElementsByTagName("marker");
            var html1 = GXml.value(markers[0].getElementsByTagName("info")[0]);
	    var html2 = GXml.value(markers[0].getElementsByTagName("meerfoto")[0]);
	    var html3 = GXml.value(markers[0].getElementsByTagName("video")[0]);
	    if (html3 == "") {
            	marker.openInfoWindowTabsHtml([new GInfoWindowTab("Info",html1), new GInfoWindowTab("Meerfoto's",html2)]);}
	    else {	
            	marker.openInfoWindowTabsHtml([new GInfoWindowTab("Info",html1), new GInfoWindowTab("Meerfoto's",html2), new GInfoWindowTab("Video",html3)]);}
           });
        });
        return marker;
}

function show_parken(land,regio,show_regio) {
     var searchUrl = '/php/zoek_bungalows.php?land=' + land + '&regio=' + regio; //alert(searchUrl)
     map.clearOverlays();
     var bounds = new GLatLngBounds();
     removechilds();
     kop_tekst = '<span style="width: 100%;  font-weight: bold; background-color: #FFE721; margin: 0,0,5,0; padding-left:5px;font-family: Arial; font-size: x-small">Toon vakantiepark op de kaart:</span>';
     document.getElementById("sidebar").innerHTML = kop_tekst;
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);  
       var markers = xml.documentElement.getElementsByTagName("marker");
       for (var i = 0; i < markers.length; i++) {
	 var adv = markers[i].getAttribute('adv');
         var bungalowpark = markers[i].getAttribute('bungalowpark');
         var plaats = markers[i].getAttribute('plaats');
         var gebied = markers[i].getAttribute('regio');
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
	 var sidebar_html = GXml.value(markers[i].getElementsByTagName("sidebar_html")[0]);
         var marker = createMarkerinfo(point,adv,bungalowpark,plaats,show_regio);
	 map.addOverlay(marker);
	 bounds.extend(point);
         var sidebarEntry = createSidebar(marker,sidebar_html);
         document.getElementById("sidebar").appendChild(sidebarEntry);
       }
      map.setZoom(map.getBoundsZoomLevel(bounds));
      map.setCenter(bounds.getCenter());
     });
     zoek_vliegvelden(land);
     if (document.getElementById("vliegveldbox").checked == false){hide('vliegveld');}
}

function toon_parken(land,regio,show_regio) {
     var searchUrl = '/php/zoek_bungalows.php?land=' + land + '&regio=' + regio; //alert(searchUrl)
     map.clearOverlays();
     var bounds = new GLatLngBounds();
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);  
       var markers = xml.documentElement.getElementsByTagName("marker");
       for (var i = 0; i < markers.length; i++) {
	 var adv = markers[i].getAttribute('adv');
         var bungalowpark = markers[i].getAttribute('bungalowpark');
         var plaats = markers[i].getAttribute('plaats');
         var gebied = markers[i].getAttribute('regio');
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         var marker = createMarkerinfo(point,adv,bungalowpark,plaats,show_regio);
	 map.addOverlay(marker);
	 bounds.extend(point);
         bmarkers[adv] = marker;
       }
      map.setZoom(map.getBoundsZoomLevel(bounds));
      map.setCenter(bounds.getCenter());
     });
     zoek_vliegvelden(land);
     if (document.getElementById("vliegveldbox").checked == false){hide('vliegveld');}
}

function myclick(i) {
        GEvent.trigger(bmarkers[i], "click");
}

function searchLocations(breedte,lengte,land) {
     var distance = document.getElementById("distance").value;
     mapCenter = new GLatLng(breedte, lengte); 
     map.setCenter(mapCenter, defzoom);
     var searchUrl = '/php/zoek_straal.php?breedtegraad=' + breedte + '&lengtegraad=' + lengte + '&afstand=' + distance;
     map.clearOverlays();
     remove("sidebar");
     if (document.getElementById("lijstbox").checked == true){document.getElementById("sidebar1").style.display="";}	
     document.getElementById("sidebar2").style.display="";
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);  
       var markers = xml.documentElement.getElementsByTagName("marker");
       if (markers.length == 0) {
		document.getElementById("sidebar").innerHTML = '<div style="margin: 5px; color: black; font-weight: bold;font-family: Verdana; font-size:75%;">Geen resultaten gevonden.</div>';
		}
       else {	document.getElementById("sidebar").innerHTML = '<div style="color:#FFFFFF;width: 100%;background-color: #3399FF; margin: 0,0,5,0; margin: 0,0,5,0; padding:3px 0 3px 3px;font-family: Verdana; font-size:75%;">Resultaten <strong>1 - ' + markers.length + '</strong></div>';

       }
       for (var i = 0; i < markers.length; i++) {
	 var adv = markers[i].getAttribute('adv');
         var bungalowpark = markers[i].getAttribute('bungalowpark');
         var plaats = markers[i].getAttribute('plaats');
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
	 var sidebar_html = GXml.value(markers[i].getElementsByTagName("sidebar_html")[0]);
	 var marker = createMarkerinfo(point,adv,bungalowpark,plaats,"ja");
	 map.addOverlay(marker);
         bmarkers[adv] = marker;
         var sidebarEntry = createSidebar(sidebar_html);
         sidebar.appendChild(sidebarEntry);
       }
      if (markers.length > 0) {
	var div = document.createElement('div');
	div.innerHTML = '<span style="width: 100%; margin: 0,0,5,0; padding-left:5px;font-family: Verdana; font-size:75%;">* Afstanden in vogelvlucht.</span>';
     	sidebar.appendChild(div);
      }
     });
     drawCircle(map.getCenter(),distance, '#3399FF', 2, 1.0);
     zoek_vliegvelden(land); 
     if (document.getElementById("vliegveldbox").checked == false){ 
		hide("vliegveld");
     }
}

function createSidebar(html) {
      var div = document.createElement('div');
      div.innerHTML = html;
      return div;
}

function removechilds()
{
	var oElement = document.getElementById("sidebar");
	oElement.parentNode.replaceChild(oElement.cloneNode(false),oElement);
}

function createvliegveldMarker(point,id, vliegveld) {
	var titel = vliegveld;
	var icon = new GIcon();
    	icon.image = "/images/vliegveld.gif";
	icon.shadow = "/images/shadow-vliegveld.png";
	icon.iconSize = new GSize(24.0, 24.0);
	icon.shadowSize = new GSize(37.0, 24.0);
	icon.iconAnchor = new GPoint(12.0, 12.0);
	icon.infoWindowAnchor = new GPoint(12.0, 12.0);
        var vliegveldmarker = new GMarker(point,{icon:icon,title:titel});
	vliegveldmarker.mycategory = 'vliegveld';
        GEvent.addListener(vliegveldmarker, "click", function() {
	 var Url = '/php/uit_markering.php?id=' + id;
			 window.open(Url, 'reserveren','toolbar=1,status=1,menubar=1,scrollbars=1,width=800,height=600,resizable=yes');
        });
	gmarkers.push(vliegveldmarker);
        return vliegveldmarker;
}

function zoek_vliegvelden(land){
	var searchUrl = '/php/zoek_vliegvelden.php?land=' + land;
        GDownloadUrl(searchUrl, function(data) {
          var xml = GXml.parse(data);  
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
	    var id = markers[i].getAttribute('id');
            var vliegveld = markers[i].getAttribute('vliegveld');
            var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                    parseFloat(markers[i].getAttribute('lng')));
	    var vliegveldmarker = createvliegveldMarker(point,id,vliegveld);
	    map.addOverlay(vliegveldmarker);
          }
       });
}

      function show(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].show();
          }
        }
        // == check the checkbox ==
        document.getElementById(category+"box").checked = true;
      }

      // == hides all markers of a particular category, and ensures the checkbox is cleared ==
      function hide(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].hide();
          }
        }
        // == clear the checkbox ==
        document.getElementById(category+"box").checked = false;
        // == close the info window, in case its open on a marker that we just hid
      }

      // == a checkbox has been clicked ==
      function boxclick(box,category) {
        if (box.checked) {
          show(category);
        } else {
          hide(category);
        }
      }

function drawCircle(center, radius, color, thickness, opacity) {
        var bounds = new GLatLngBounds();
	var circleQuality = 10;			//1 is best but more points, 5 looks pretty good, too
	var M = Math.PI / 180;			//Create Radian conversion constant

	//The map is not completely square so this calculates the lat/lon ratio
	// this works because we create a square map
        var radiusLat = radius / 111.12; // there are 111.12 miles per degree latitude 
        var radiusLon = radiusLat / Math.cos(parseFloat(center.lat()) * M); 

	var points = [];							//Init Point Array
	//Loop through all degrees from 0 to 360
	for(var i=0; i<360; i+=circleQuality){
		var P = new GLatLng(
			center.lat() + (radiusLat * Math.sin(i * M)),
			center.lng() + (radiusLon * Math.cos(i * M)) 
			);
		points.push(P);
		bounds.extend(P);
	}
	points.push(points[0]);	// close the circle
	var p = new GPolyline(points, color, thickness, opacity)
	map.addOverlay(p);
        map.panTo(bounds.getCenter()); 
        map.setZoom(map.getBoundsZoomLevel(bounds));
}

function lijstclick(box) {
      if (box.checked) {
          document.getElementById("sidebar1").style.display="";
        } else {
          document.getElementById("sidebar1").style.display="none";
        }
}
