$(function() {
	if($(".gmap").length > 0){
		$(".gmap").each(function(i,gmap) {
			if(i == 0){
				var props = $(gmap).attr("data").split("~");
				var gmkey = props[4];
				var gscr = $('<script type="text/javascript" src="http://www.google.com/jsapi?key='+gmkey+'&callback=LoadMaps"></script>');
				gscr.appendTo($("head"));
			}			
		});
	}
});

function LoadMaps()
{	
	google.load("maps", "2", {"callback" : InitMaps});
}
function InitMaps()
{
	$(".gmap").each(function(i, gmap){
		//grab all the map properties from the data property
		var props =$(gmap).attr("data").split("~");
		var address = props[0];
		var postcode = props[1];
		var zoom = parseInt(props[2]);
		var driving = props[3];
		var ll = props[5];
		var title  = $(gmap).attr("title");

		var apoint;
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(address+","+postcode,function(point){
			if(!point)
			{
				var lls = ll.split(",")
				point = new GLatLng(lls[0], lls[1])
			}
			if(point){
				SetMap(gmap, point, title, zoom, driving, address+","+postcode);
			}else{
				gmap.remove();
			}
		});		
	});
}
function SetMap(gmap, point, title, zoom, driving, address){

	var map = new google.maps.Map2(gmap);
	var mapTypes = map.getMapTypes();
	map.addControl(new GLargeMapControl());
	map.setCenter(point, zoom, mapTypes[0]);
	if(driving == "14" && (address.length > 3)){
		var bubble = $("<p>");
		bubble.attr("align", "left");
		bubble.attr("style", "font-family:arial");
//		bubble.html("<b>"+title+"</b><br />Get directions from:<br /><input type=\"text\" id=\"from_location\" /><input type=\"button\" value=\"Go\" onclick=\"window.open('http://maps.google.co.uk/maps?f=d&hl=en&saddr=' + document.getElementById('from_location').value + '&daddr="+escape(address)+"');\"/>"); 		
		map.openInfoWindow(map.getCenter(), bubble);
	}
	else{
		map.addOverlay(new GMarker(point));
	}
}
