if(GBrowserIsCompatible()){ 
      
  // ====== Create a Client Geocoder ======
  var geo = new GClientGeocoder(); 

  // ====== Array for decoding the failure codes ======
  var reasons=[];
  reasons[G_GEO_SUCCESS]            = "Success";
  reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
  reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
  reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
  reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
  reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
  reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";
  
  var GClonid = '';
  var GClatid = '';
      
  // ====== Geocoding ======
  function showAddress(search,lat,lon) {
  
    GClonid = lon;
    GClatid = lat;
    //var search = document.getElementById("search").value;
    // ====== Perform the Geocoding ======        
    geo.getLocations(search, function (result){ 
      // If that was successful
      if(result.Status.code == G_GEO_SUCCESS){
        // How many resuts were found
        document.getElementById("frmReplyTextIn").innerHTML = "Found " +result.Placemark.length +" results";
        document.getElementById("frmReplyText").style.display = 'block';
        // Loop through the results, placing markers
        for(var i=0; i<result.Placemark.length; i++){
          var p = result.Placemark[i].Point.coordinates;
          var marker = new GMarker(new GLatLng(p[1],p[0]));
          document.getElementById("frmReplyTextIn").innerHTML += '<br><a href="javascript:useAddress(\''+p[1]+'\',\''+p[0]+'\')">'+(i+1)+": "+ result.Placemark[i].address + marker.getPoint()+'</a>';
          document.getElementById("frmReplyText").style.display = 'block';
        }
        // centre the map on the first result
        var p = result.Placemark[0].Point.coordinates;
      }
      // ====== Decode the error status ======
      else {
        var reason="Code "+result.Status.code;
        if(reasons[result.Status.code]){
          reason = reasons[result.Status.code]
        } 
        alert('Could not find "'+search+ '" ' + reason);
      }
    });
  }
  
  function useAddress(lat,lon){
    document.getElementById(GClatid).value = lat;
    document.getElementById(GClonid).value = lon;
    document.getElementById("frmReplyText").style.display = 'none';
  }
}
// display a warning if the browser was not compatible
else{
  alert("Sorry, the Google Maps API is not compatible with this browser");
}

function v(div){
  var value = document.getElementById(div).value;
  return value;
}