var dblGoogleMapMarkerLat = 0;
var dblGoogleMapMarkerLng = 0;

    var map = null;
    var geocoder = null;

    function GoogleMap()
    {
        if (GBrowserIsCompatible())
        {
            map = new GMap2(document.getElementById("map"));
            map.setUIToDefault();
        }
    }
    function GoogleMapMarker(Lat, Lng)
    {
        var icon = new GIcon();
        icon.image = "http://www.google.com/mapfiles/marker.png";
        icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
        icon.iconSize = new GSize(12, 20);
        icon.shadowSize = new GSize(22, 20);
        icon.iconAnchor = new GPoint(6, 20);
        icon.infoWindowAnchor = new GPoint(5, 1);
        
        var point = new GLatLng(Lat, Lng);
        
        map.addOverlay(new GMarker(point, icon));
    }
    function GoogleMapCenter(Lat, Lng, Zoom)
    {
        map.setCenter(new GLatLng(Lat, Lng), Zoom);
    }
    
    function GoogleMapAddress(address)
    {
        geocoder = new GClientGeocoder();
        geocoder.getLatLng( address, function(point)
        {
            if (!point)
            {
                alert(address + " not found");
            } else {
                $('#points').val(point);
                map.setCenter(point, 13);
                var marker = new GMarker(point);
                map.addOverlay(marker);
                marker.openInfoWindowHtml(address);
            }
        });
    }
    function GoogleMapType(strType)
    {
        switch (strType)
        {
            case 'Map':
                map.setMapType(G_NORMAL_MAP);
                break;
            case 'Satellite':
                map.setMapType(G_SATELLITE_MAP);
                break;
            case 'Hybrid':
                map.setMapType(G_HYBRID_MAP);
                break;
            case 'Terrain':
                map.setMapType(G_PHYSICAL_MAP);
                break;
        }
    }
    function GoogleMapZoom(zoom)
    {
        map.setZoom(zoom);
    }

    function GoogleMapLocation(address)
    {
        geocoder = new GClientGeocoder();
        geocoder.getLocations(address, GoogleMapLocationShow);
    }

    function GoogleMapLocationShow(response)
    {
        map.clearOverlays();
        if (!response || response.Status.code != 200)
        {
            alert("\"" + response + "\" not found");
        } else {
            place = response.Placemark[0];
            dblGoogleMapMarkerLat = place.Point.coordinates[1];
            dblGoogleMapMarkerLng = place.Point.coordinates[0];
            point = new GLatLng(dblGoogleMapMarkerLat, dblGoogleMapMarkerLng);
            marker = new GMarker(point);
            map.addOverlay(marker);
            map.setCenter(new GLatLng(dblGoogleMapMarkerLat, dblGoogleMapMarkerLng), map.getZoom());
          
            var p;
            p = p + place.Point.coordinates[1];
            p = p + ",";
            p = p + place.Point.coordinates[0];
            $('#points').val(point);
        }
    }

