var map;
var localSearch;
var icon;
var postcode;
var adjx;
var adjy;

function initialize(){

	if (postcode){
		if (postcode!="none"){
			showMap(postcode);
		}
	} else {
		setTimeout("initialize();", 100);
	}
}
function setPostcode(pc,ax,ay){
	postcode = (pc=='')?"none":pc;
	adjx=(ax)?ax.valueOf():0;
	adjy=(ay)?ay.valueOf():0;
}
function usePointFromPostcode(postcode, callbackFunction) {
	
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				var resultLat = new Number(localSearch.results[0].lat);
				var resultLng = new Number(localSearch.results[0].lng);
				var point = new GLatLng(resultLat+adjx,resultLng+adjy);
				callbackFunction(point);
				
			}else{
				alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

function placeMarkerAtPoint(point)
{
	var marker = new GMarker(point,icon);
	map.addOverlay(marker);
	map.setCenter(point, 12, G_NORMAL_MAP);

}

function setCenterToPoint(point)
{
	map.setCenter(point, 17);
}

function showPointLatLng(point)
{
	alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
}

function showMap(postcode) {
	localSearch = new GlocalSearch();

	icon = new GIcon();
	icon.image = "http://www.google.com/mapfiles/marker.png";
	icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	icon.iconSize = new GSize(20, 34);
	icon.shadowSize = new GSize(37, 34);
	icon.iconAnchor = new GPoint(10, 34);
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		
		
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		usePointFromPostcode(postcode, placeMarkerAtPoint);
	} else {
		alert("Browser not compatible with Google Maps");
	}
}
google.load( 'maps' , '2' );
google.load( 'search' , '1' );
google.setOnLoadCallback(initialize);
