var gmarkers = [];
var htmls = [];
var googleIcon;
var requestCat;
var markers;
var request;
var marker;
var xmlDoc;
var i = 0;
var html;
var map;

/* Overige */
var point;
var image;
var label;
var html;
var lat;
var lng;
				

/* Initialiseren */
function googleMaps(cat){
	
	/* Controle GoogleMaps pagina */
	if( document.getElementById("googleMapsArea") != null ){
		
		/* Browser controle */
		if (GBrowserIsCompatible()){        
			
			/* GoogleMaps laden */
			var map = new GMap2(document.getElementById("googleMapsArea"));
			map.addControl(new GLargeMapControl3D());
			map.addControl(new GMapTypeControl());
			map.setCenter(new GLatLng(0,0),0);
			map.enableScrollWheelZoom();
			
			/* Geocoder for searching trough addresses */
			geocoder = new GClientGeocoder();
			
			/* Data inladen */
			showData(map, cat);
		
		} else {
			/* Foutmelding laden */
			alert('Sorry, uw browser wordt niet door GoogleMaps ondersteund !\nControleer uw instellingen en schakel Javascript in.');
		}
		
	}

}	

/* Functie marker aanmaken */
function createMarker(point,image,name,html,map,i){
			
	/* Afbeelding (marker) weergeven */
	var googleIcon = new GIcon(G_DEFAULT_ICON);
	googleIcon.image = "http://www.vlietkinderen.nl/media/afbeeldingen/"+image;
	googleIcon.infoWindowAnchor = new GPoint(16,0);
	googleIcon.iconAnchor = new GPoint(16,32);
	googleIcon.iconSize = new GSize(32,32);
			
	var marker = new GMarker(point, { icon:googleIcon, zoom:true });
	GEvent.addListener(marker, "mouseover", function() {
		marker.openInfoWindowHtml(html);
		//map.setCenter(point);
	});
	
	/* Opslaan */
	gmarkers[i] = marker;
	htmls[i] = html;
			
	return marker;
}

/* AJAX data ophalen */
function showData(map, cat, lat, lng, radius){
		
	/* Cache legen... */
	map.clearOverlays();

	/* Array maken */
	var bounds = new GLatLngBounds();
	var request = GXmlHttp.create();
		
	if( cat != null && cat != '' ){
		request.open("GET", "include/ajax.php?vestigingCategorie="+cat, true);
	} else if( lat != null && lat != '' && lng != null && lng != '' ){
		request.open("GET", "include/ajax.php?lat="+lat+"&lng="+lng+"&radius="+radius, true);
	} else {
		request.open("GET", "include/ajax.php", true);
	}
	
	/* Resultaat GoogleMaps */
	request.onreadystatechange = function(){
	
		/* AJAX status */
		if (request.readyState == 4){
			
			if( request.responseText != '' ){
			
				var xmlDoc = GXml.parse(request.responseText);
				// obtain the array of markers and loop through it
				var markers = xmlDoc.documentElement.getElementsByTagName("marker");
					  
				for (var i = 0; i < markers.length; i++){
				
					// obtain the attribues of each marker
					var lat = parseFloat(markers[i].getAttribute("lat"));
					var lng = parseFloat(markers[i].getAttribute("lng"));
					var image = markers[i].getAttribute("image");
					var label = markers[i].getAttribute("label");
					var html = markers[i].getAttribute("html");
					var point = new GLatLng(lat,lng);
			
					// create the marker
					var marker = createMarker(point,image,label,html,map,i);
					map.addOverlay(marker);
						
					/* Marker opslaan */
					bounds.extend(point);
					
				}       
				
				/* Center bepalen */
				map.setCenter(bounds.getCenter());
	
				/* Zoomlevel bepalen */
				map.setZoom(13);
				
			} else {
				alert('Er zijn geen (dichtstbijzijnde) vestigingen gevonden.');
				googleMaps();
			}

		}
		
	}
			
	/* Data inlezen */
	request.send(null);
	showCats(map, cat);
		
}

/* AJAX data ophalen */
function showCats(map, cat){
		
	/* XML HTTP */		
	var requestCat = GXmlHttp.create();
		
	if( cat != null && cat != '' ){
		requestCat.open("GET", "include/ajax.php?type=cat&vestigingCategorie="+cat, true);
	} else {
		requestCat.open("GET", "include/ajax.php?type=cat", true);
	}
	
	/* Resultaat GoogleCats */
	requestCat.onreadystatechange = function(){
	
		/* AJAX status */
		if (requestCat.readyState == 4){
				
			/* Categorien weergeven */
			document.getElementById('googleCats').innerHTML = requestCat.responseText;

		}
		
	}
			
	/* Data inlezen */
	requestCat.send(null);
		
}

/* AJAX data ophalen */
function showVest(ID){
		
	/* XML HTTP */		
	var requestVest = GXmlHttp.create();
		
	if( ID != null && ID != '' ){
		requestVest.open("GET", "include/ajax.php?type=vestiging&vestigingID="+ID, true);
	} else {
		requestVest.open("GET", "include/ajax.php?type=vestiging", true);
	}
	
	/* Resultaat GoogleCats */
	requestVest.onreadystatechange = function(){
	
		/* AJAX status */
		if (requestVest.readyState == 4){
				
			/* Categorien weergeven */
			document.getElementById('vestigingInfo').innerHTML = requestVest.responseText;

		}
		
	}
			
	/* Data inlezen */
	requestVest.send(null);
		
}

/* Click naar map */
function googleClick(i){
	GEvent.trigger(gmarkers[i], "click");
}




/* Search address */
function searchLocations() {
	var address = document.getElementById('address').value;
	geocoder.getLatLng(address, function(latlng) {
		if (!latlng) {
			alert(address + ' kan niet worden gevonden');
		} else {
			searchLocationsNear(latlng);
		}
	});
}

/* Search locations */
function searchLocationsNear(center) {
	
	/* Controle GoogleMaps pagina */
	if( document.getElementById("googleMapsArea") != null ){
		
		/* Browser controle */
		if (GBrowserIsCompatible()){        
			
			/* GoogleMaps laden */
			var map = new GMap2(document.getElementById("googleMapsArea"));
			map.addControl(new GLargeMapControl3D());
			map.addControl(new GMapTypeControl());
			map.setCenter(new GLatLng(0,0),0);
			map.enableScrollWheelZoom();
			
			/* Data inladen */
			var selObj = document.googleSearch.radius.selectedIndex;
			var radius = document.googleSearch.radius.options[selObj].value;
			showData(map, '', center.lat(), center.lng(), radius);
		
		} else {
			/* Foutmelding laden */
			alert('Sorry, uw browser wordt niet door GoogleMaps ondersteund !\nControleer uw instellingen en schakel Javascript in.');
		}
		
	}
	
}
