function MapInitByLocation(sLocation, sWindow)
{
  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.";
  
  map_layer = document.getElementById("map");
  
  map = new GMap2(map_layer);
  map.addControl(new GSmallMapControl());
  
  geo = new GClientGeocoder();
  geo.getLocations(sLocation, function(result)
  {
    if (result.Status.code == G_GEO_SUCCESS)
    {
      map.clearOverlays(); 
      
      var p = result.Placemark[0].Point.coordinates;
      var center = new GLatLng(p[1], p[0]);
      map.setCenter(center, 15);
      
      marker = new GMarker(center, {draggable: false});
      map.addOverlay(marker);
      
      if(sWindow)
        marker.openInfoWindowHtml(sWindow);
    }
  });
}