    var geocoder, location1, location2;
 
	function initialize() {
		geocoder = new GClientGeocoder();
	}
 
	function showLocation() {
		geocoder.getLocations(document.forms[0].address1.value, function (response) {
			if (!response || response.Status.code != 200)
			{
				alert("Sorry, we were unable to geocode the first address");
			}
			else
			{
				location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
				geocoder.getLocations(document.forms[0].address2.value, function (response) {
					if (!response || response.Status.code != 200)
					{
						alert("Sorry, we were unable to geocode the second address");
					}
					else
					{
						location2 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
						createMap();
						calculateDistance();
					}
				});
			}
		});
	}
 
	function calculateDistance()
	{
		try
		{
			var glatlng1 = new GLatLng(location1.lat, location1.lon);
			var glatlng2 = new GLatLng(location2.lat, location2.lon);
			var miledistance = glatlng1.distanceFrom(glatlng2, 3959).toFixed(1);
			var kmdistance = (miledistance * 1.609344).toFixed(1);
 
			document.getElementById('results').innerHTML = '<table align="center"><tr><td><font color="#FFFFFF"><strong>Origin City: </strong></font>' + location1.address + '</td><td><strong><font color="#FFFFFF">Latitude: </font></strong>' + location1.lat + '</td><td><strong><font color="#FFFFFF">Longitude: </font></strong>' + location1.lon +'</td></tr><tr><td><strong><font color="#FFFFFF">Destination City: </font></strong>' + location2.address + '</td><td><strong><font color="#FFFFFF">Latitude: </font></strong>' + location2.lat + '</td><td><strong><font color="#FFFFFF">Longitude: </font></strong>' + location2.lon + '</td></tr><tr><td><strong><font color="#FFFFFF">Distance: </font></strong>' + miledistance + 'miles (or ' + kmdistance + ' kilometers)</td></tr><table>';
			
			//document.getElementById('results').innerHTML = '<strong>Address 1: </strong>' + location1.address + '<strong>Latitude: </strong>' + location1.lat + '<strong>Longitude: </strong>' + location1.lon + '<br /><strong>Address 2: </strong>' + location2.address +'<strong>Latitude: </strong>' + location2.lat + '<strong>Longitude: </strong>' + location2.lon '<br /><strong>Distance: </strong>' + miledistance + ' miles (or ' + kmdistance + ' kilometers)';
		}
		catch (error)
		{
			alert(error);
		}
	}
   
    function createMap() {
		
        var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(9.2472222222222, 4.8486111111111), 1);
       
        var markers = [];
        var polys   = [];
        //function createMarker(lat,lng,name,link)
        function createMarker(lat,lng) {
          
          var marker = new GMarker(new GLatLng(lat,lng));
   	        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(html);
          });

          map.addOverlay(marker);
          markers.push(marker);

        }      
                             
       var marker = createMarker(location1.lat, location1.lon);
       var marker2 = createMarker(location2.lat, location2.lon);
       poly = new GPolyline(new Array(new GLatLng(location1.lat, location1.lon), new GLatLng(location2.lat, location2.lon)));
        polys.push(poly);
        map.addOverlay(poly);
		/*var polyOptions = {geodesic:true};
var polyline = new GPolyline([new GLatLng(location1.lat, location1.lon), new GLatLng(location2.lat, location2.lon)], "#ff0000", 3, 1, polyOptions);
map.addOverlay(polyline);*/
    }
    setTimeout('CreateMap()', 1000); 

    
