// Javascript functions for Google Maps

	function myClient(clientName, clientAddress, clientURL, clientId, thumb, lat, lng, icon) {
	  this.clientName = clientName;
	  this.clientAddress = clientAddress;
	  this.clientURL = clientURL;
	  this.clientId = clientId;
	  this.thumb = thumb;
	  this.lat = lat;
	  this.lng = lng;
	  this.icon = icon;
	}
	
	var map = null;
	var mgr = null;
	//zoom 0 is world, 4 Sthn Europe, 7 1/2 France, 9 roughly departmental
	var minZoom = 8;
	var initLat = null;
	var initLng = null;
	var geocoder = null;
	
	function load(addresses, initZoom, initLat, initLng) {
	  if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
	
		//Add zoom controls
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
	
		// Centre the map to Fa initially
		map.setCenter(new GLatLng(initLat, initLng), initZoom);
	
		mgr = new GMarkerManager(map, {trackMarkers:true});
		geocoder = new GClientGeocoder();
	
		// Create markers
		var markers = [];
		for (x=0; x<addresses.length; x++) {
		  marker = createMarker(addresses[x]);
		  markers.push(marker);
		}
	
	
		mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
		mgr.refresh();
	
	  }
	}
	
	function createMarker(client) {
		var point = new GLatLng(client.lat, client.lng);
		var new_icon = new GIcon();
		new_icon.image = client.icon;
		new_icon.size = new GSize(20,34);
		new_icon.iconAnchor = new GPoint(8,20);
		new_icon.infoWindowAnchor = new GPoint(7,7);
		var opt;
		opt = {};
		opt.icon = new_icon;
		opt.draggable = false;
		opt.clickable = true;
		opt.dragCrossMove = true;
		
		var marker = new GMarker(point, opt);
		mgr.addMarker(marker, minZoom);
		//map.addOverlay(marker);
			GEvent.addListener(marker, "click", function() {
					  marker.openInfoWindowHtml("<a href='" + client.clientURL +"' alt='" + client.clientURL + "'><img src='" + client.thumb + "' />&nbsp;" + client.clientName + "</a>");
				});
	}
	
	function getLatLng(address, latFld, lngFld) {
		geocoder = new GClientGeocoder();
		geocoder.getLatLng(address, function(point) {
			if (!point) {
				return 0;
			} else {
				latFld.value = point.lat();
				lngFld.value = point.lng();
			}
		});
	}
	
	function pointPlacer(latFld, lngFld, lat, lng) {
		map = new GMap2(document.getElementById("mapSmall"));
		
		//Add zoom controls
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());

		// Start at Fa of course if nothing else!
		if (lat == 0) {
			lat = 42.938206;
		}
		if (lng == 0) {
			lng = 2.191199;
		}
		var center = new GLatLng(lat, lng);
		map.setCenter(center, initZoom);
		
		var marker = new GMarker(center, {draggable: true});
		
		GEvent.addListener(marker, "dragstart", function() {
		  map.closeInfoWindow();
		  });
		
		GEvent.addListener(marker, "dragend", function() {
				latFld.value = marker.getPoint().lat();
				lngFld.value = marker.getPoint().lng();
				map.setCenter(marker.getPoint());
		  });
		
		map.addOverlay(marker);
	}
	
	function panMap(lat, lng) {
		var center = new GLatLng(lat, lng);
		var timeDelay = 500;
		window.setTimeout(function() {
			map.panTo(center);
		}, timeDelay);
	}
