google.load("maps","2.x");

var map			= null;
var geocoder	= null;
var address;

var lastResponse	= null;

function initialize()
{
//	var t = new AJAX();
//	t.send(true, "123", true);

	if (google.maps.BrowserIsCompatible())
	{
		var mapDiv	= document.getElementById("map");
		
		if (mapDiv)
		{	
			map			= new google.maps.Map2(mapDiv);
//			map.setUIToDefault();

			geocoder	= new google.maps.ClientGeocoder();

			if (mapDiv.region == '')
				map.setCenter(new google.maps.LatLng(30, 0), 1);
		
			map.addControl(new google.maps.SmallMapControl())

//			google.maps.Event.addListener(map, "click", getAddress);
		}
	}
}

function getAddress(overlay, latlng)
{
	if (latlng != null)
	{
		address = latlng;
		geocoder.getLocations(latlng, handleAddress);

//		alert(lastResponse);
	}
}

function handleAddress(response)
{
	lastResponse	= response;

/*	var output = document.getElementById('id_address');

	if (output)
	{
		var placeMark		= response['Placemark'][0];
		var addressDeatils	= placeMark['AddressDetails'];
		var country			= addressDeatils['Country'];
		var adminArea		= country['AdministrativeArea'];

		output.innerHTML	= placeMark['address']+"<br />";

		address				= placeMark['address'];
	}*/
//	debug(response);
}

function debug(anything)
{
	var output_elm	= document.getElementById('id_debug');

	if (output_elm && anything)
	{
		var output	= "";

		switch (typeof anything)
		{
			case 'number':
			case 'string':
			{
				output = anything;
				break;
			}
			case 'boolean':
			{
				output = anything ? "true" : "false";
				break;
			}
			case 'object':
			{
				output = showObjectElms(anything, "");
				break;
			}
		}

		output_elm.innerHTML += "<hr />"+output+"<hr />";
	}
}

function showObjectElms(obj, parentkey)
{
	var output	= "";

	for (var key in obj)
	{
		if ((typeof obj[key]) == 'object')
			output += showObjectElms(obj[key], parentkey+"["+key+"]");
		else
			output += parentkey+"<b>["+key+"]</b>=><i>"+obj[key]+"</i><br />";
	}

	return output;
}

function showAddress(address)
{
	if (geocoder && map)
		geocoder.getLatLng(address, markPoint);
}

function markPoint(point)
{
	if (map)
	{
		if (!point)
			alert(address + " not found");
		else
		{
			map.setCenter(point, 13);
	
			var marker = new google.maps.Marker(point);
			map.addOverlay(marker);
//			marker.openInfoWindowHtml("hier kommt der Text f&uuml;r den Marker rein");

			geocoder.getLocations(point, handleAddress);
		}
	}
}

