// === Global variable that can be used by the context handling functions ==
var clickedPixel;
var menuVisible = false;

var map;
var mgr;
var numLevels = 6; //Aantal zoomlevels
var number_colors = 20; // Aantal kleuren in onderstaande array
var colors = new Array( //0 - 7
new Array("red",	"#FF0000"), 	
new Array("green",	"#00FF00"), 	
new Array("blue",	"#0000FF"), 	
new Array("orange",	"#DE4B04"),
new Array("black",	"#000000"),
new Array("white",	"#FFFFFF"), 
new Array("dim_grey",	"#545454"),
new Array("firebrick",	"#8E2323"),
new Array("magenta",	"#FF00FF"),
new Array("copper",	"#B87333"),
new Array("cyan",	"#00FFFF"), 	
new Array("yellow",	"#FFFF00"),
new Array("aquamarine", "#70DB93"),
new Array("brass",	"#B5A642"),
new Array("cadet_blue",	"#5F9F9F"),
new Array("dark_green", "#2F4F2F "),
new Array("dark_purple",	"#871F78"),
new Array("flesh",	"#F5CCB0"),
new Array("forest_green",	"#238E23"),
new Array("quartz",	"#D9D9F3"),
new Array("rich_blue",	"#5959AB")
);

// === create the context menu div ===
var contextmenu = document.createElement("div");
contextmenu.style.visibility="hidden";
contextmenu.style.background="#ffffff";
contextmenu.style.color="#000000";
contextmenu.style.border="1px solid #000000";

contextmenu.innerHTML = '<div class="google_map_contextmenu">&nbsp;&nbsp;<a href="javascript:zoomIn()">Zoom in</a><br>'
                      + '&nbsp;&nbsp;<a href="javascript:zoomOut()">Zoom out</a><br>'
                      + '&nbsp;&nbsp;<a href="javascript:zoomInHere()">Zoom in here</a><br>'
                      + '&nbsp;&nbsp;<a href="javascript:zoomOutHere()">Zoom out here</a><br>'
                      + '&nbsp;&nbsp;<a href="javascript:centreMapHere()">Centre map here</a>&nbsp;&nbsp;</div>';
                      
function doLoad(myMapType) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"),{draggableCursor:'crosshair'});
		
		if(myMapType == 1) map.setMapType(G_SATELLITE_MAP);
		map.addControl(new GScaleControl());
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(52.964301,6.017761), 8);
		//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); //5
		map.getContainer().appendChild(contextmenu);
		GEvent.addListener(map, 'click', mapClick);
		
		// === listen for singlerightclick ===
		GEvent.addListener(map,"singlerightclick",function(pixel,tile) {
		  // store the "pixel" info in case we need it later
		  // adjust the context menu location if near an egde
		  // create a GControlPosition
		  // apply it to the context menu, and make the context menu visible
		  menuVisible = true; //Zodat bij een klik op de kaart het menu wordt weggehaald
		  clickedPixel = pixel;
		  var x=pixel.x;
		  var y=pixel.y;
		  if (x > map.getSize().width - 120) { x = map.getSize().width - 120 }
		  if (y > map.getSize().height - 100) { y = map.getSize().height - 100 }
		  var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y));  
		  pos.apply(contextmenu);
		  contextmenu.style.visibility = "visible";
		});
	}
}
function mapClick(marker, point) {
	if (!menuVisible) {
		myClick(marker, point);
	}else{
		hideMenu();
		menuVisible = false;
	}
}
// === functions that perform the context menu options ===
function zoomIn() {
  // perform the requested operation
  map.zoomIn();
  // hide the context menu now that it has been used
  contextmenu.style.visibility="hidden";
}      
function zoomOut() {
  // perform the requested operation
  map.zoomOut();
  // hide the context menu now that it has been used
  contextmenu.style.visibility="hidden";
}      
function zoomInHere() {
  // perform the requested operation
  var point = map.fromContainerPixelToLatLng(clickedPixel)
  map.zoomIn(point,true);
  // hide the context menu now that it has been used
  contextmenu.style.visibility="hidden";
}      
function zoomOutHere() {
  // perform the requested operation
  var point = map.fromContainerPixelToLatLng(clickedPixel)
  map.setCenter(point,map.getZoom()-1); // There is no map.zoomOut() equivalent
  // hide the context menu now that it has been used
  contextmenu.style.visibility="hidden";
}      
function centreMapHere() {
  // perform the requested operation
  var point = map.fromContainerPixelToLatLng(clickedPixel)
  map.setCenter(point);
  // hide the context menu now that it has been used
  contextmenu.style.visibility="hidden";
}
// === If the user clicks on the map, close the context menu ===
GEvent.addListener(map, "click", function() {
  contextmenu.style.visibility="hidden";
});
// === If the user clicks on the map, close the context menu ===
function hideMenu(){
  contextmenu.style.visibility="hidden";
};
//---------- GOOGLE MAPS FUNCTIES ----------------//

/**
 * Marker icon
 */
function tinyImage(opt_color, opt_preload){
  var color = opt_color||"red";
  var src_ = "pics/markers/mm_20_"+color+".png";
  if(opt_preload){
    var preImage = new Image();
    preImage.src = src_;
  }
  return  src_;
} 
function sailImage(opt_color, opt_preload){
  var color = colors[(opt_color%number_colors)+1][0]||"red";
  var src_ = "pics/markers/sail_"+color+".png";
  if(opt_preload){
    var preImage = new Image();
    preImage.src = src_;
  }
  return  src_;
}
function markerImage(opt_color, opt_preload){
	var color = colors[opt_color][0]||"red";
  var src_ = "pics/markers/marker_"+color+".png";
  if(opt_preload){
    var preImage = new Image();
    preImage.src = src_;
  }
  return  src_;
}    
function tinyIcon(opt_color){
  var tiny = new GIcon();
  tiny.image = tinyImage(opt_color);
  tiny.shadow = "pics/markers/mm_20_shadow.png";
  tiny.iconSize = new GSize(12, 20);
  tiny.shadowSize = new GSize(22, 20);
  tiny.iconAnchor = new GPoint(6, 20);
  tiny.infoWindowAnchor = new GPoint(5, 1);
  tiny.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0];
  tiny.transparent = "pics/markers/transparent.png"; 
  return tiny;
}
function sailIcon(opt_color, highlight){
  var tiny = new GIcon();
  tiny.image = sailImage(opt_color);
  if(highlight == "1"){
  	tiny.shadow = "pics/markers/sail_shadow_highlight.png";
  }else{
  	tiny.shadow = "pics/markers/sail_shadow.png";
  }
  tiny.iconSize = new GSize(21, 30);
  tiny.shadowSize = new GSize(21, 30);
  tiny.iconAnchor = new GPoint(4, 19);
  tiny.infoWindowAnchor = new GPoint(4, 19);
  tiny.imageMap = [2,20,16,0,18,0,18,18,18,28];
  tiny.transparent = "pics/markers/transparent.png"; 
  return tiny;
}
function markerIcon(opt_color){
  var tiny = new GIcon();
  tiny.image = markerImage(opt_color);
  tiny.shadow = "pics/markers/marker_shadow.png";
  tiny.iconSize = new GSize(16, 31);
  tiny.shadowSize = new GSize(16, 31);
  tiny.iconAnchor = new GPoint(10, 17);
  tiny.infoWindowAnchor = new GPoint(10, 17);
  tiny.imageMap = [0,17,6,0,14,0,14,17];
  tiny.transparent = "pics/markers/transparent.png"; 
  return tiny;
}
function createMarker(point, title2,punaiseid, color, iconType, highlight) {
	if(iconType == "merkteken"){
		var marker = new GMarker(point,{title:title2, icon:markerIcon(color)});
		if(punaiseid > 0)
			GEvent.addListener(marker, "click", function(){LoadInfoWindow(marker,punaiseid,iconType)});
	}else{
		var marker = new GMarker(point,{title:title2, icon:sailIcon(color, highlight)});//fmod($counter,8)+1 8 is number of colors - 1 for markers
		GEvent.addListener(marker, "click", function(){LoadInfoWindow(marker,punaiseid,iconType)});
	}
	return marker;
}
function LoadAndPlotPositions(nummer,toDraw, useForce){
	if(!useForce) useForce = false;
	if(!positions_batch[nummer] || useForce){
		GDownloadUrl("positions_xml.php?type=punaise&raceid="+raceid+"&rak="+rak+"&number="+nummer, function(data) {
			var xml = GXml.parse(data);
		  //Posities voor iconen opslaan in array
			  var markers = xml.documentElement.getElementsByTagName("marker");
			  //Array voor elke zoomlevel maken
			  positions_batch[nummer] = new Array(numLevels);
			  for (var i = 0; i < numLevels; i++) {
					positions_batch[nummer][i] = [];
				}
				//Over posities itereren en in array bij juiste zoomlevel zetten
			  for (var i = 0; i < markers.length; i++) {
			    var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
			                            parseFloat(markers[i].getAttribute("longitude")));	    
			    var titel = markers[i].getAttribute("titel");
			    var color = markers[i].getAttribute("number");
			    var zoomlevel = markers[i].getAttribute("zoomlevel");
			    var type = markers[i].getAttribute("type");
			    var punaiseid = markers[i].getAttribute("punaiseid");
			    var highlight = markers[i].getAttribute("merktekenid");
			    new_marker = createMarker(point, titel, punaiseid, color, type, highlight); //breedte, lengte, Titel, MarkerInfoWindow, kleurnummer, line_id, line_color, iconType, highlight
					positions_batch[nummer][zoomlevel].push(new_marker);
			  }
			//Laatste positie voor zoomen opslaan
			  positions_zoom[nummer] = new_marker;
		  //Overlays voor lijnen opslaan in array
			  var marker_encoded = xml.documentElement.getElementsByTagName("marker_encoded");
			  var my_points = new String();
			  var my_levels = new String();
			  //encodedPolyline = new GPolyline(Array(GLatLng(0,0),GLatLng(0,-1)));
			  for (var i = 0; i < marker_encoded.length; i++) {
			  	my_points = marker_encoded[i].getAttribute("points");    
			    my_levels = marker_encoded[i].getAttribute("levels");    
			    var my_zoomFactor = marker_encoded[i].getAttribute("zoomFactor");    
			    var my_numLevels = marker_encoded[i].getAttribute("numLevels");    
			    var encodedPolyline = new GPolyline.fromEncoded({
	          color: colors[(nummer%number_colors)+1][1],
	          weight: 3,
	          points: my_points,
	          levels: my_levels,
	          zoomFactor: my_zoomFactor,
	          numLevels: my_numLevels
	        });
				  positions_overlays[nummer] = encodedPolyline;
		    }
			//Icoontjes tekenen
		  if(toDraw == 'icons' || toDraw == 'both' || toDraw == 'zoom'){
		  	for (var i = 0; i < numLevels; i++) {
		  		if(positions_batch[nummer][i].length > 0){
		  			mgr.addMarkers(positions_batch[nummer][i], i*3); //7 -> Nederland, Engeland en Duitsland op groot scherm
		  		}
		  	}
		  	mgr.refresh();
		  	if(toDraw == 'zoom'){
		  		ZoomOnPosition(nummer);
		  	}
		  }
		  //Lijnen tekenen
		  if((toDraw == 'lines' || toDraw == 'both')){
		  	map.addOverlay(positions_overlays[nummer]);
		  }
		});	
	}else{
		//Op nieuwe posities checken
		
		 //Icoontjes tekenen
		 if(toDraw == 'icons' || toDraw == 'both' || toDraw == 'zoom'){
	  	for (var i = 0; i < numLevels; i++) {
	  		if(positions_batch[nummer][i].length > 0){
	  			mgr.addMarkers(positions_batch[nummer][i], i*3); //7 -> Nederland, Engeland en Duitsland op groot scherm
	  		}
	  	}
		  mgr.refresh();
		  if(toDraw == 'zoom'){
		  	ZoomOnPosition(nummer);
		  }
	  }
	  //Lijnen tekenen
		if(toDraw == 'lines' || toDraw == 'both'){
	  	map.addOverlay(positions_overlays[nummer]);
	  }
	}
}
function UpdatePositions(nummer, toDraw){
	//Array maken om de nieuwste merktekens tijdelijk in op te slaan, zodat alleen deze geplot worden
	updates_batch = new Array(numLevels);
  for (var i = 0; i < numLevels; i++) {
		updates_batch[i] = [];
	}
	if(positions_batch[nummer]){
		var current_total = 0;
		for (var i = 0; i < numLevels; i++) {
  		current_total += positions_batch[nummer][i].length;
  	}
  	GDownloadUrl("positions_xml.php?type=punaise&raceid="+raceid+"&rak="+rak+"&number="+nummer+"&current_total="+current_total, function(data) {
			var xml = GXml.parse(data);
		  //Posities voor iconen opslaan in array
			  var markers = xml.documentElement.getElementsByTagName("marker");
			  //Over posities itereren en in array bij juiste zoomlevel zetten
			  for (var i = 0; i < markers.length; i++) {
		    var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
		                            parseFloat(markers[i].getAttribute("longitude")));	    
		    var titel = markers[i].getAttribute("titel");
		    var color = markers[i].getAttribute("number");
		    var zoomlevel = markers[i].getAttribute("zoomlevel");
		    var type = markers[i].getAttribute("type");
		    var punaiseid = markers[i].getAttribute("punaiseid");
		    var highlight = markers[i].getAttribute("merktekenid");
		    new_marker = createMarker(point, titel, punaiseid, color, type, highlight); //breedte, lengte, Titel, MarkerInfoWindow, kleurnummer, line_id, line_color, iconType, highlight
				positions_batch[nummer][zoomlevel].push(new_marker);
				updates_batch[zoomlevel].push(new_marker)
		  }
		//Laatste positie voor zoomen opslaan
		  positions_zoom[nummer] = new_marker;
	  //Overlays voor lijnen opslaan in array
		  var marker_encoded = xml.documentElement.getElementsByTagName("marker_encoded");
		  var my_points = new String();
		  var my_levels = new String();
		  //encodedPolyline = new GPolyline(Array(GLatLng(0,0),GLatLng(0,-1)));
		  for (var i = 0; i < marker_encoded.length; i++) {
		  	my_points = marker_encoded[i].getAttribute("points");    
		    my_levels = marker_encoded[i].getAttribute("levels");    
		    var my_zoomFactor = marker_encoded[i].getAttribute("zoomFactor");    
		    var my_numLevels = marker_encoded[i].getAttribute("numLevels");    			  
			}
			//Icoontjes tekenen (alleen nieuwste posities)
		 	if(markers.length > 0 && (toDraw == 'icons' || toDraw == 'both' || toDraw == 'zoom')){
		  	for (var i = 0; i < numLevels; i++) {
		  		if(updates_batch[i].length > 0){
		  			mgr.addMarkers(updates_batch[i], i*3); //7 -> Nederland, Engeland en Duitsland op groot scherm
		  		}
		  	}
		  	mgr.refresh();
		  }
		  //Lijnen tekenen --- VOLGORDE VAN COMMANDOS BELANGRIJK!
		  if(markers.length > 0){
		  	if(toDraw == 'lines' || toDraw == 'both')
		  		RemovePositionsOverlay(nummer); //Oude lijnen verwijderen
		  	var encodedPolyline = new GPolyline.fromEncoded({
          color: colors[(nummer%number_colors)+1][1],
          weight: 3,
          points: my_points,
          levels: my_levels,
          zoomFactor: my_zoomFactor,
          numLevels: my_numLevels
        });
        positions_overlays[nummer] = encodedPolyline;
		  	if(toDraw == 'lines' || toDraw == 'both')
		  		map.addOverlay(positions_overlays[nummer]);
		  }
		  if(toDraw == 'zoom'){
	  		ZoomOnPosition(nummer);
	  	}
		});
	}
}
function RemovePositions(nummer){
	for (var i = 0; i < numLevels; i++) {
		for(marker in positions_batch[nummer][i]){
			mgr.removeMarker(positions_batch[nummer][i][marker]);
		}
	}
}
function RemovePositionsOverlay(nummer){
	map.removeOverlay(positions_overlays[nummer]);
}
function LoadInfoWindow(marker,the_id,iconType) {
	if(iconType == 'positie'){
		GDownloadUrl("positions_xml.php?type=punaise_info&punaiseid="+the_id, function(data) {
			var xml = GXml.parse(data);
		  var windows = xml.documentElement.getElementsByTagName("window");
		  for (var i = 0; i < windows.length; i++) {	  	
		  	var time = windows[i].getAttribute("time");
		  	var scheepsnaam = windows[i].getAttribute("scheepsnaam");
		  	var persoonsnaam = windows[i].getAttribute("persoonsnaam");
		  	var text_speed = windows[i].getAttribute("text_speed");
		  	var speed = windows[i].getAttribute("speed");
		  	var text_direction = windows[i].getAttribute("text_direction");
		  	var direction = windows[i].getAttribute("direction");
		  	var merktekennaam = windows[i].getAttribute("merktekennaam");
		  	var text_distance = windows[i].getAttribute("text_distance");
		  	var distance = windows[i].getAttribute("distance");
		  	var text_factor = windows[i].getAttribute("text_factor");
		  	var factor = windows[i].getAttribute("factor");
		  	var photo = windows[i].getAttribute("photo");
		  	var br = "<br>";
		  	//BASISINFORMATIE
		  	window_html = time + br + scheepsnaam + br + persoonsnaam + br + text_speed + ": " + speed + br + text_direction + ": " + direction;
		  	//MERKTEKENINFORMATIE
		  	if(merktekennaam && merktekennaam != ''){
		 			window_html = window_html + "<p>" + merktekennaam  + br+ text_distance + ": " + distance
		 			//FACTOR
		 			if(factor && factor != ''){
		 				window_html = window_html + br + text_factor + ": " + factor;
		  		}	  	
		  	}
		  	if(photo != ''){
		  		window_html = '<img src="'+photo+'" border="0" \>' + "<p>" + window_html;
		  	}
		  	marker.openInfoWindowHtml('<div class = "google_map_info_window">' + window_html + '</div>');
			}
		});
	}else if(iconType == 'merkteken'){
		GDownloadUrl("positions_xml.php?type=marker_info&merktekenid="+the_id, function(data) {
			var xml = GXml.parse(data);
		  var windows = xml.documentElement.getElementsByTagName("window");
		  var window_html = '';
		  for (var i = 0; i < windows.length; i++) {	  	
		  	var placewithinleg = windows[i].getAttribute("placewithinleg");
		  	var markername = windows[i].getAttribute("name");
		  	var markertype = windows[i].getAttribute("markertype");
		  	var text_range = windows[i].getAttribute("text_range");
		  	var range = windows[i].getAttribute("range");
		  	var br = "<br>";
		  	//BASISINFORMATIE
		  	window_html = window_html + br + placewithinleg + ": " + markername + br + markertype + br + text_range + ": " + range + "nm";
		  	marker.openInfoWindowHtml('<div class = "google_map_info_window">' + window_html + '</div>');
			}
		});
	}
}
function LoadAndPlotMarkers(rak, my_route, toDraw){
	if(rak > 1){//Niet tegelijk merdere routes en rakken
		nummer = rak; 
	}else{
		nummer = my_route;
	}
	if(!markers_batch[nummer]){
		_url = "positions_xml.php?type=marker&raceid="+raceid+"&rak="+rak+"&route="+my_route;
		GDownloadUrl(_url, function(data) {
			var xml = GXml.parse(data);
		  var markers = xml.documentElement.getElementsByTagName("marker");
		  markers_batch[nummer] = [];
		  point = new Array(markers.length);
		  var bounds = new GLatLngBounds();
		  //Array voor elke zoomlevel maken
		  markers_batch[nummer] = new Array(numLevels);
		  for (var i = 0; i < numLevels; i++) {
				markers_batch[nummer][i] = [];
			}
		  for (var i = 0; i < markers.length; i++) {
		    point[i] = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
		                            parseFloat(markers[i].getAttribute("longitude")));	    
		    var titel = markers[i].getAttribute("titel");
		    var MarkerInfoWindow = titel;
		    var color = markers[i].getAttribute("color");
		    var type = markers[i].getAttribute("type");
		    var merktekenid = markers[i].getAttribute("merktekenid");
		   	var zoomlevel = markers[i].getAttribute("zoomlevel");
		   	new_marker = createMarker(point[i], titel, merktekenid, color, type, 0); //breedte, lengte, Titel, MarkerInfoWindow, kleurnummer, line_id, line_color, iconType, extendBounds (0||1)
				markers_batch[nummer][zoomlevel].push(new_marker);
				//BOUNDS uitbreiden (eventueel kieskeurig als een merkteken is gekozen)
				bounds.extend(point[i]);
		  }
		  if(markers.length > 1){
				map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)-1);
			}else{
				map.setCenter(bounds.getCenter(), 18);
			}		
		  //Lijnen opslaan
		  var polyline = new GPolyline(point,colors[color][1], 2);
			markers_overlays[nummer] = polyline;
			
			//Icoontjes tekenen
		  if(toDraw == 'icons' || toDraw == 'both'){
		  	for (var i = 0; i < numLevels; i++) {
		  		if(markers_batch[nummer][i].length > 0){
		  			mgr.addMarkers(markers_batch[nummer][i], i*3); //7 -> Nederland, Engeland en Duitsland op groot scherm
		  		}
		  	}
		  	mgr.refresh();
		  }
		  //Lijnen tekenen
		  if(toDraw == 'lines' || toDraw == 'both'){
				map.addOverlay(markers_overlays[nummer]);
			}
		});	
	}else{
		 //Icoontjes tekenen
		 if(toDraw == 'icons' || toDraw == 'both'){
	  	for (var i = 0; i < numLevels; i++) {
	  		if(markers_batch[nummer][i].length > 0){
	  			mgr.addMarkers(markers_batch[nummer][i], i*3); //7 -> Nederland, Engeland en Duitsland op groot scherm
	  		}
	  	}
		  mgr.refresh();
	  }
	  //Lijnen tekenen
		if(toDraw == 'lines' || toDraw == 'both'){
			map.addOverlay(markers_overlays[nummer]);
		}
	}
}
function RemoveMarkers(rak,my_route){
	if(route > 1){
		nummer = my_route;
	}else{
		nummer = rak;
	}
	for(marker in markers_batch[nummer]){
		mgr.removeMarker(markers_batch[nummer][marker]);
	}
}
function RemoveMarkerOverlay(my_route){
	map.removeOverlay(markers_overlays[my_route]);
}
function LoadAndPlotWaypoint(wp_id){
	_url = "positions_xml.php?type=waypoint&wp_id="+wp_id;
	GDownloadUrl(_url, function(data) {
		var xml = GXml.parse(data);
	  var markers = xml.documentElement.getElementsByTagName("marker");
	  
	  var bounds = new GLatLngBounds();
	  //Array voor elke zoomlevel maken
	  for (var i = 0; i < markers.length; i++) {
	    point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
	                            parseFloat(markers[i].getAttribute("longitude")));	    
	    var naam = markers[i].getAttribute("naam");
	    var color = markers[i].getAttribute("color");
	    var type = markers[i].getAttribute("type");
	    new_marker = createMarker(point, naam, -1, color, type, 0); //breedte, lengte, Titel, MarkerInfoWindow, kleurnummer, line_id, line_color, iconType, extendBounds (0||1)
			//BOUNDS uitbreiden (eventueel kieskeurig als een merkteken is gekozen)
			bounds.extend(point);
	  }
	  if(markers.length > 1){
			map.setCenter(bounds.getCenter(), 7);
		}else{
			map.setCenter(bounds.getCenter(), 10);
		}		
	 	mgr.addMarker(new_marker,0); //7 -> Nederland, Engeland en Duitsland op groot scherm
	  mgr.refresh();
  });
}
function ZoomOnPosition(nummer){
	if(positions_batch[nummer]){
		var bounds = new GLatLngBounds();
		the_point = positions_zoom[nummer];
		point = the_point.getLatLng();
		bounds.extend(point);
		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)-2);
	}
	return false;
}
function ZoomOnMarker(lat,lng){
	var bounds = new GLatLngBounds();
	point = new GLatLng(lat,lng);
	bounds.extend(point);
	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)-2);
	return false;
}
function clearAll(){
	mgr.clearMarkers();
	map.clearOverlays();
}
//---------- EINDE GOOGLE MAPS FUNCTIES ----------------//
