/* Load objects */
var geocoder = new GClientGeocoder();
var map;
var usermarker;
var useradres;
var teller = 0;
var allMarkers = new Array;  
var allMarkersIds = new Array; 

function buildMarkers(adres, html, adresgegevens, logo, locatie_id, pan, icon)
	{
		geocoder.getLatLng(adres, function(punt) {
			if (!punt) {
				if(icon == 'normal') {
					alert("Ongeldige postcode ingevoerd.");
				}
			} else {
				/* WZH Icon */
				var letteredIcon = new GIcon();
				letteredIcon.image = "http://www.wzh-hetanker.nl/img/mapicons/"+icon+".png";
				letteredIcon.iconSize = new GSize(80, 52);
				letteredIcon.iconAnchor = new GPoint(32, 35);
				letteredIcon.infoWindowAnchor = new GPoint(30, 40); 
				
				if(pan == true)
				{
					map.panTo(punt);
				}
				
				if(icon == 'normal') {
					markerOptions = {  };  
				} else {
					markerOptions = { icon:letteredIcon };  
				}
				
				// Nieuwe marker aanmaken
				var marker = new GMarker(punt, markerOptions); 
				
				if(icon == 'normal')
				{
					usermarker = marker;
					useradres = adres;
				}
				 
				GEvent.addListener(marker, "click", function(a) {
					
				  if (typeof document.getElementById('map_info') !== 'undefined') {
				  
				  	// Bereken afstand van hoofdmarker
					var routelink = "Routeplannen (u dient eerst uw postcode in te vullen)";
					if(usermarker != undefined) {
						var distance = this.getPoint().distanceFrom(usermarker.getPoint())/1000;
						distance = Math.ceil(distance.toFixed(2));
						
						if(icon != 'normal') {
							routelink = "<a target='_blank' href='http://maps.google.nl/maps?saddr="+useradres+"&daddr="+adres+"'>Routeplannen</a> (+- "+distance+" km)";
						} else {
							routelink = "";
						}
				  	}
				  	document.getElementById('map_info_adres').innerHTML = html + adresgegevens + routelink;
					if(logo != "")
					{
						document.getElementById('map_info_logo').innerHTML = "<img src='"+logo+"'>";
					} else {
						document.getElementById('map_info_logo').innerHTML = "";
					}
					
					map.setCenter(a, 16);
					document.getElementById('map_info').style.visibility="visible";	
				  } else {
					marker.openInfoWindowHtml(html);
				  }
				});
				// Markers bijhouden zodat je ze kan verwijderen
				allMarkers.push(marker);
				allMarkersIds.push(locatie_id);
				
				// Market op de kaart zetten
				map.addOverlay(marker);
			}
		}); 
	}
	
	
	function delMarker()
	{
		if(usermarker != undefined) {
			map.removeOverlay(usermarker);
		}
	}
	
	function checkPostcode(zipcode)
	{
		var zipcode = document.getElementById(zipcode).value;
		if(zipcode != "") {
			// Check postcodes op 1234 of 1234AB (+ eventuele spaties tussen getallen en letters)
			if (/^\s?\d{4}\s?([a-zA-Z]{2})?\s?$/.test(zipcode)) {
				zipcode = zipcode.replace(/ /g, '');	// spaties weg
				explicitSearch = true;
				delMarker(); // Remove old marker if exists
				buildMarkers(zipcode+', Nederland', '<b>U bevindt zich hier.</b>', '', '', '99999', true, 'normal');
				
				// Laat verfijning zien
				document.getElementById('mapStep2').style.visibility="visible";
			} else {
				//lastEnteredAddress = '';
				document.getElementById('mapStep2').style.visibility="hidden";
				alert("Geen geldige postcode");
			}
		}
	}
	
	function filterMap()
	{
		/* Alle markers op show */
		for(var i=0; i<allMarkers.length; i++)
		{
			if(allMarkersIds[i] != 99999) {
				allMarkers[i].hide();
			}
		}
		
		//closeOverlay();
		//map.setCenter(new GLatLng(52.07612995654167, 4.311103820800781), 12);
		
		checkOpties();
	}
	
	function radiusMap()
	{
		var setRadius = document.getElementById('opt_straal').value;
	
		/* Markers filteren */
		for(var i=0; i<allMarkers.length; i++)
		{
			// Bereken afstand tussen user punt en wzh locatie
			var radius = allMarkers[i].getPoint().distanceFrom(usermarker.getPoint())/1000;
			radius = Math.ceil(radius.toFixed(2));
			if(allMarkersIds[i] != 99999) {
				if(radius > setRadius) {
					allMarkers[i].hide();
				}
			}
		}
	}
	
	function checkOpties() {
		/* Caching voorkomen */
		var thisdate = new Date();
		var juisteDatum = thisdate.getMinutes() + '|' + thisdate.getSeconds();
		
		/* Kenmerken */
		var valCultuur = $('opt_cultuur').value;
		//var valLevensbeschouwing = $('opt_levensbeschouwing').value;
		
		var valTerminalezorg = isChecked($('opt_terminalezorg'));
		var valDagverzorging = isChecked($('opt_dagverzorging'));
		var valTandarts = isChecked($('opt_tandarts'));
		var valThuiszorg = isChecked($('opt_thuiszorg'));
		
		var valBegeleidwonen = isChecked($('opt_begeleidwonen'));
		var valVerzorgingshuis = isChecked($('opt_verzorgingshuis'));
		var valVerpleeghuis = isChecked($('opt_verpleeghuis'));
		
		var kenmerkString = 'cultuur='+valCultuur+'&terminalezorg='+valTerminalezorg+'&dagverzorging='+valDagverzorging+'&tandarts='+valTandarts+'&begeleidwonen='+valBegeleidwonen+'&verzorgingshuis='+valVerzorgingshuis+'&verpleeghuis='+valVerpleeghuis+'&thuiszorg='+valThuiszorg;
		
		var url = '/ajLocatieMap.asp?'+kenmerkString+'&time='+juisteDatum;
		//alert(url);
		var myAjax = new Ajax(url, 
		{
			method: 'get',
			onSuccess: function(hidString){
				var hideNumbers = hidString.split(","); 
				//alert(hideNumbers);
				for(var a=0; a<hideNumbers.length;a++)
				{
					for(var z=0; z<allMarkersIds.length; z++) {
						//alert("check: "+hideNumbers[a]+" - "+allMarkersIds[z]);
						if(hideNumbers[a] == allMarkersIds[z]) {
							if(allMarkersIds[z] != 99999) {
								//alert("show: "+allMarkersIds[z]);
								allMarkers[z].show();
							}
						}
					}
				}
				
				radiusMap();
				
				/* Kijken of er Markers getoond worden, zo niet melding */
				var markerFound = false;
				for(var i=0; i<allMarkers.length; i++) {
					if(allMarkersIds[i] != 99999) {
						if (!allMarkers[i].isHidden()) {
							markerFound = true;
						}
					}
				}
				if(markerFound == false) {
					alert("Er is geen woonzorgcentra gevonden die aan uw eisen voldoet.\nPas uw criteria aan en probeer opnieuw.");
				}
			}
		});
		myAjax.request();
	}
	
	function isChecked(input)
	{
		if(input.checked == true)
		{
			return 1;
		} else {
			return "";
		}
	}
	
	function selectPopup(url)
	{
		if(url != 0 && url != "0")
		{
			location.href = url;
		}
	}
	
	
function closeOverlay() {
  document.getElementById('map_info').style.visibility="hidden";	
}

function resetMap()
{
	map.setCenter(new GLatLng(52.07612995654167, 4.311103820800781), 12);
	closeOverlay();
}
