function initialise(codes, messages, photos) {
if (GBrowserIsCompatible()) {
var center;
var map = new GMap2(document.getElementById("map_canvas"));
center = new GLatLng(51.454629, -0.969654);
map.setCenter(center, 12);
map.setUIToDefault();

var tinyIcon = new GIcon();
tinyIcon.image = "images/icons/key-icon.png";
tinyIcon.shadow = "images/icons/key-icon-shadow.png";
tinyIcon.iconSize = new GSize(20, 34);
tinyIcon.shadowSize = new GSize(28, 34);
tinyIcon.iconAnchor = new GPoint(2, 32);
tinyIcon.infoWindowAnchor = new GPoint(5, 1);

function getPoints(postcode, callbackFunction, number) {
	var localSearch = new GlocalSearch();
	
	localSearch.setSearchCompleteCallback(null, 
		function() {
			//alert(number);
			if (localSearch.results[0]) {		
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				callbackFunction(point, number);
			} else {
				alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

function addThisMarker(point, number) {
	//add markers
	map.addOverlay(createMarker(point, number));
}

function createMarker(point, number) {
	markerOptions = { icon:tinyIcon };

	var marker = new GMarker(point, markerOptions);
	//var marker = new GMarker(point);
	marker.value = number;
	
	var code = photos[number] + messages[number];
	
	GEvent.addListener(marker, "click", function() {
		map.openInfoWindowHtml(point, code);
	});
	return marker;
}

for (var i in codes) {
	getPoints(codes[i], addThisMarker, i);
}


}
}