function ReverseGeocode(oMap, oPoint)
{
    g_map.removeGroupOverlay("WITPoint");
    var _loader = document.getElementById("divLoader");    
    var _mapSize = g_map.getSize();
    var _mapWidth = _mapSize.width;
    var _mapHeight = _mapSize.height;
    var _centreX = (_mapWidth / 2) - 112;
    var _centreY = (_mapHeight / 2) - 32;
    _loader.style.left = _centreX + "px";
    _loader.style.top = _centreY + "px";
    _loader.style.zIndex = 1000;
    _loader.style.display = '';
    var _oClickedCoord = g_map.getCoordFromVisibleArea(oPoint);
    var _lon = _oClickedCoord.longitude();
    var _lat = _oClickedCoord.latitude();
    var _level = g_map.getZoomLevel();
    var _url = "ashx/ReverseGeocode.ashx?Longitude=" + _lon.toString() + "&Latitude=" + _lat.toString() + "&Level=" + _level.toString();
    
    $.getJSON(_url, function(json)
                    {
                        ReverseGeocodeResult(json)
                    }
             );
}

function ReverseGeocodeResult(json)
{
  var _loader = document.getElementById("divLoader");    
  _loader.style.display = 'none';  
  if(json.NewDataSet.ResultSet == null)
  {
    alert("No result found.");
  }
  else
  {
    var _lat = parseFloat(json.NewDataSet.ResultSet.Latitude);
    var _lon = parseFloat(json.NewDataSet.ResultSet.Longitude);
    var _coord = new AGCoord(_lat, _lon);
    
    var _oAGIcon = new AGIcon();
    _oAGIcon.image = "Images/Pin_Red_32x32_24bit.png";
    _oAGIcon.iconSize = new AGSize(32, 32);
    _oAGIcon.iconAnchor = new AGPoint(-5, -32);
    _oAGIcon.infoDisplayAnchor = new AGPoint(5, -32);
    
    var _defaultMarkerOption = new AGMarkerOptions(_oAGIcon);    
    var _description = json.NewDataSet.ResultSet.Description;
    while(_description[0] == ",")
    {
        _description = _description.substr(1, _description.length);
    }
    _description = _description.replace(/,/g, ", ");    
    _defaultMarkerOption.title = _description;
    
    var _oMarker = new AGMarker(_coord, _defaultMarkerOption);
    _description = "<b>Description:</b><br />" + _description + "<br /><br /><b>Longitude: </b>" + _lon.toString() + "<br /><b>Latitude: </b>" + _lat.toString();
    var _infoDisplayOptions = new AGInfoDisplayOptions(250, 100);
    _oMarker.bindInfoDisplayHTML(_description, _infoDisplayOptions);
    g_map.addOverlay(_oMarker, "WITPoint");
    _oMarker.openInfoDisplayHTML(_description, _infoDisplayOptions);
    
    //g_map.centreAndScale(_coord, g_map.getZoomLevel());
            
    //alert(_description);
  }
}
   