var map;
var geocoder;
var markers;
var type;
var GmCoord;

function gmLoad(tType, tDatabase, tTerrein) {
	// Type
	type = tType;
	terrein = tTerrein;
	if (type == undefined || type == '') {
		type = 'hoofdgroepen';
	}
//	alert('type: ' + tType + ' database: ' + tDatabase);

	database = tDatabase;
	
	if (GBrowserIsCompatible()) {
		// Show map		
		if(type == 'hoofdgroepen') {
			map.setCenter(new GLatLng(51.74,5.84721), 10);
		}else if(type == 'percelen') {
		}
		map.enableScrollWheelZoom();
		// Markers
		randomnumber = Math.floor(Math.random()*11111);
		url = '/googlemaps/googlemaps.php?ajax=' + type + '&database=' + database + '&terrein='+ terrein +'&random=' + randomnumber;
//		alert(url);
		GDownloadUrl(url, function(data, responseCode) {
			xml = GXml.parse(data);
			markers = xml.documentElement.getElementsByTagName("marker");
			
			// Markers
			for (var i = 0; i < markers.length; i++) {
				markers[i].setAttribute("type", type);
				gmMarker(i);
			}
			
		});		
	}
}

function gmMarker(i){
	coordLAT = markers[i].getAttribute("lat");
	coordLNG = markers[i].getAttribute("lng");
	panNaar = markers[i].getAttribute("panNaar");
	zoomLevel = markers[i].getAttribute("zoomLevel");
//alert(type)
	if(type == 'terreinen'){		
		point = new GLatLng(markers[i].getAttribute("lat"), markers[i].getAttribute("lng"));

		aPanNaar = panNaar.split(',');
		panNaar = new GLatLng(aPanNaar[0], aPanNaar[1]);

		zoomLevel = parseInt(zoomLevel);
		map.setCenter(panNaar, zoomLevel);
	}else if(type == 'percelen'){
//		rdtolb(coordLAT,coordLNG);
		aPanNaar = panNaar.split(',');
		panNaar = new GLatLng(aPanNaar[0], aPanNaar[1]);
		map.setCenter(panNaar, 14);
		
		point = new GLatLng(markers[i].getAttribute("lat"), markers[i].getAttribute("lng"));
		
	} else {
		point = new GLatLng(markers[i].getAttribute("lat"), markers[i].getAttribute("lng"));
	}
	
	var marker = new GMarker(point);

	GEvent.addListener(marker, "click", function() {
		type = markers[i].getAttribute("type");
		html = markers[i].getAttribute("html");
		database = markers[i].getAttribute("database");
		terrein = markers[i].getAttribute("terrein");
		//alert(terrein);
		
		if (html != '') {
			marker.openInfoWindowHtml(html);
		}
		
		// Actions
		if (type == 'hoofdgroepen') {
			gmLoad('terreinen', database, terrein);
			map.clearOverlays();
			showHideInfo(info);
		}else if (type == 'terreinen') {
			gmLoad('percelen', database, terrein);
			map.clearOverlays();
			showHideInfo(info);
		}		

	});
	
	GEvent.addListener(marker, "mouseover", function() {
		info = markers[i].getAttribute("info");		
		if(info != '') {
			showHideInfo(info);
		}
	});
	
	GEvent.addListener(marker, "mouseout", function() {
		info = markers[i].getAttribute("info");
		if(info != '') {
			showHideInfo(info);
		}
	});	

	map.addOverlay(marker);
}

function GoogleMapsRoute(postcode, plaats, land, end_addr) {
	start_addr = postcode + ',' + plaats + ',' + land;
	window.open('http://maps.google.com/maps?daddr=' + end_addr + '&saddr=' + start_addr);
}

function zoomInOut(action) {
	if(action == 'in') {
		map.zoomIn();
	}else{
		map.zoomOut();
	}
}

function pan(action) {
	if(action == 'down') {
		map.panBy(new GSize(0,-100)); 
	}else if(action == 'up') {
		map.panBy(new GSize(0,100)); 
	}else if(action == 'right') {
		map.panBy(new GSize(-100,0)); 
	}else if(action == 'left') {
		map.panBy(new GSize(100,0));  
	}
}

function changeMap(action) {
	if(action == 'satellite') {
		map.removeMapType(G_NORMAL_MAP);
		map.setMapType(G_SATELLITE_MAP); 
		$('changemap').attributes["onclick"].value = "changeMap('normal');";
	}else{
		map.removeMapType(G_SATELLITE_MAP);
		map.setMapType(G_NORMAL_MAP); 
		$('changemap').attributes["onclick"].value = "changeMap('satellite');";
	}

}

function showHideInfo(info) {
	$('gm_info').toggle();
	$('gm_info').innerHTML = info;
}





