    //<![CDATA[
	var baseIcon = new GIcon();
	baseIcon.iconSize=new GSize(32,32);
	baseIcon.shadowSize=new GSize(56,32);
	baseIcon.iconAnchor=new GPoint(16,32);
	baseIcon.infoWindowAnchor=new GPoint(16,0);
	var course = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal3/icon26.png", null, "http://maps.google.com/mapfiles/kml/pal3/icon26s.png");
	var infoTabs = [
	new GInfoWindowTab("Details", "<div style='width:230px;'><h2 style='margin:0px; margin-bottom:10px; font-size:14px; color:#7AB82F; font-weight:700;'>Aquarium Gardening.</h2><p style='margin-bottom:0px;'>01600 772647</p><p style='margin-bottom:0px;'><a href='mailto:enquiries@aquarium-gardening.com'>enquiries@aquarium-gardening.com</a></p><p style='margin-bottom:0px;'>"),
	new GInfoWindowTab("Address", "<h2 style='margin:0px; margin-bottom:5px; font-size:14px; color:#7AB82F; font-weight:700;'>Aquarium Gardening.</h2><p style='margin:0px;'>Unit 3<br />Wonastow Road Industrial Estate West<br />Monmouth.<br />NP25 5JA</p>")
	];
	var GetDirect;
	GetDirect = document.GetDirections;
    var map = null;
	var marker = [];
    var geocoder = null;
	var startpoint = null;
	var to_htmls = [];
	var lon3;
	var lat3;
	// == use different GDirections for adding and dragging, it is just simpler that way ==
	var lastmarker;
    var dirn1 = new GDirections();
    var dirn2 = new GDirections();
	
    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));	

        GEvent.addListener(map, "moveend", function() {
	    var center = map.getCenter();
	    var latmany = 1.0 * center.lat();
        var lat3 = latmany.toFixed(4); 
        lat3 = lat3+'';
        
        var lonmany = 1.0 * center.lng();
        var lon3 = lonmany.toFixed(4); 
        lon3 = lon3+'';

        //var latLngStr = '<b>Latitude = ' + lat3 + ', Longitude = ' + lon3 + ' </b>';
        //document.getElementById("message").innerHTML = latLngStr;
      });
		
        map.setCenter(new GLatLng(51.8070,-2.7315), 11);
		map.addControl(new GLargeMapControl());
        geocoder = new GClientGeocoder();
		
		// Place the marker and open the info window
		var marker = new GMarker(map.getCenter(), course);
		GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowTabsHtml(infoTabs);
		});
		map.addOverlay(marker);
		marker.openInfoWindowTabsHtml(infoTabs);
      }
    }
	
	function getDirections() {
		var center = map.getCenter();
		var latmany = 1.0 * center.lat();
        var lat3 = latmany.toFixed(4); 
        lat3 = lat3+'';
        
        var lonmany = 1.0 * center.lng();
        var lon3 = lonmany.toFixed(4); 
        lon3 = lon3+'';
		window.location=("./your_directions.php?lat="+lat3+"&lng="+lon3+"");
	}
	
    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
			dirn1.loadFromWaypoints([point.toUrlValue(6),point.toUrlValue(6)],{getPolyline:true});
			  startpoint = point;
              map.setCenter(point, 17);
			  map.setMapType(G_HYBRID_MAP);
              var marker = new GMarker(point, {draggable: true});
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address  + '<form id="GetDirect" name="GetDirect" action="javascript:getDirections()" method="post">' +
		   '<div style="margin:0px;margin-top:10px;"><p align="right"><input class="button" type="submit" name="submit" value="Get Directions" /><input type="hidden" name"startp1" id="startp1" value="' +lon3+ '" /><input type="hidden" name"startp2" id="startp2" value="'+lat3+'" /></p></form></div>');
            }
			GEvent.addListener(marker, "dragstart", function() {
        	map.closeInfoWindow();
        	});
			GEvent.addListener(marker, "dragend", function() {
			lastmarker = marker;
          	var point = marker.getPoint();
          	dirn2.loadFromWaypoints([point.toUrlValue(6),point.toUrlValue(6)],{getPolyline:true});
			map.panTo(marker.getLatLng(), 13);
        	});
			// == when the "drag marker" load event completes, move the marker ==
      		GEvent.addListener(dirn2,"load", function() {
        	var p=dirn2.getPolyline().getVertex(0);
        	lastmarker.setPoint(p);
      		});
			GEvent.addListener(marker, "click", function() {
			map.panTo(marker.getLatLng(), 13);
			marker.openInfoWindowHtml('Your Starting point based on -<br /><i>' + address  + '<form id="GetDirect" name="GetDirect" action="javascript:getDirections()" method="post"><div style="margin:0px;margin-top:10px;"><p align="right"><input class="button" type="submit" name="submit" value="Get Directions" /><input type="hidden" name"startp1" id="startp1" value="'+lat3+'" /><input type="hidden" name"startp2" id="startp2" value="'+lon3+'" /><input type="hidden" name"user" id="user" value="user" /></p></form></div></i>' );
        	});
          }
        );
      }
    }
    //]]>