//Google map initialiser

var map = null;
var geocoder = null;
var addressFailed = false;
var suburbFailed = false;
var stateFailed = false;
 

function initialize() {
  if (GBrowserIsCompatible()) 
  {
	map = new GMap2(document.getElementById("map_canvas"));
	var mapTypeControl = new GMapTypeControl();
	var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
	var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
	map.addControl(mapTypeControl, topRight);
	GEvent.addListener(map, "dblclick", function() {
	  map.removeControl(mapTypeControl);
	  map.addControl(new GMapTypeControl(), bottomRight);
	});
	map.addControl(new GSmallMapControl());

	geocoder = new GClientGeocoder();
	construct();
  }
}

function construct()
{
	if (!addressFailed)
	{
		var addressConcat = address + ', ' + suburb + ', ' + state + ', ' + country;
		addressFailed=true;
		plotAddress(addressConcat,16);
	}
	else if (!suburbFailed)
	{
		var addressConcat = suburb + ', ' + state + ', ' + country;
		suburbFailed=true;
		plotAddress(addressConcat,12);
	}
	else if (!stateFailed)
	{
		var addressConcat = state + ', ' + country;
		stateFailed=true;
		plotAddress(addressConcat,9);
	}
	else if (stateFailed)
	{
		var addressConcat = country;
		plotAddress(addressConcat,7);
	}
}
  
function plotAddress(addressDescriptor,depth)
{

 if (geocoder) 
 {
	geocoder.getLatLng(addressDescriptor, function(point) 
	{
		if (point) 
		{
			map.setCenter(point,depth);
			var marker = new GMarker(point);
			map.addOverlay(marker);
			success = true;
			marker.openInfoWindowHtml(address);
		}
		else
		{
			construct();
		}
	 }
	);
  }

}  






