function google_load()
{
	if (!GBrowserIsCompatible()) {
		return;
	}
	
	var eMap = document.getElementById( "map" );
	if ( !eMap )
	{
		return;
	}
	
	var regex = new RegExp(/\s(\w+)((\s(g-[\w-]+\b))+|\b)/);
	x_class = ' ' + eMap.className;
	parts = x_class.split( /\bmap\b/ );
	
	for( var j=1; j<parts.length; j++ )
	{
		if( res = regex.exec(parts[j]) ) 
		{
			if ( typeof eval( "window." + res[1] ) == 'function' ) {
				eval( res[1] + "(res[2].replace( / g-/g, ',' ).replace( /^,/, '' ));" );
			}
		}
	}
	
	if ( parts.length == 1 ) {
		var location = eMap.innerHTML.split("|"); // (latitude|longitude)
		if ( location.length != 2 )
		{
			return;
		}
		
		var map = new GMap2(document.getElementById("map"));
		
		// Create our "tiny" marker icon
		var icon = new GIcon();
		icon.image = "/_img/map-pointer.png";
		icon.iconSize = new GSize(25, 25);
		icon.iconAnchor = new GPoint(12, 25);
		icon.infoWindowAnchor = new GPoint(5, 1);
		
		var point = new GLatLng( location[0],location[1] );
		
		map.setCenter(point, 16);
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		map.addControl(new GLargeMapControl());
		var marker = new GMarker(point, icon);
		map.addOverlay(marker);
	}
	
	return;
}

function draggable( args )
{
	var f = args.split(",");
	if ( f.length != 2 ) {
		return;
	}
	
	var lat, lon;
	
	lat = f[0];
	lon = f[1];
	
	lat = document.forms[0].elements[lat];
	lon = document.forms[0].elements[lon];
	
	var latitude = "-25.165173", longitude = "133.769531";
	var location = document.getElementById("map").innerHTML.split("|"); // (latitude|longitude)
	if ( location.length == 2 )
	{
		latitude = location[0];
		longitude = location[1];
	}
	
	var map = new GMap2(document.getElementById("map"));
	var center = new GLatLng(latitude,longitude); 
	
	if ( location.length == 2 ) {
		map.setCenter(center, 15);
	} else {
		map.setCenter(center, 3);
	}
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl() );
	map.addControl(new GLargeMapControl());
	
	var icon = new GIcon();
	icon.image = "/_img/map-pointer.png";
	icon.iconSize = new GSize(25, 25);
	icon.iconAnchor = new GPoint(12, 25);
	icon.infoWindowAnchor = new GPoint(5, 1);
	
	var marker = new GMarker(center, {icon: icon,draggable: true});
	
	GEvent.addListener( map, "zoomend", function() {
		this.setCenter(new GLatLng(marker.getPoint().lat(),marker.getPoint().lng()));
	});
	
	GEvent.addListener(marker, "dragend", function() {
		lat.value = marker.getPoint().lat();
		lon.value = marker.getPoint().lng();
		map.setCenter( new GLatLng(marker.getPoint().lat(), marker.getPoint().lng()) );
	});
	
	map.addOverlay(marker);
}

addLoadEvent( google_load );
