function initialise(codes, messages) {
if (GBrowserIsCompatible()) {
var center;
var localSearch = new GlocalSearch();
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) {
	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 = "<p>" + number + "</p><p>" + messages[number] + "</p>";
	
	GEvent.addListener(marker, "click", function() {
		map.openInfoWindowHtml(point, code);
	});
	*/
	return marker;
}

var j;

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

}
}