var dblGoogleMapMarkerLat = 0;
var dblGoogleMapMarkerLng = 0;

    var map = null;
    var geocoder = null;

    function GoogleMap()
    {
      if (GBrowserIsCompatible())
      {
        map = new GMap2(document.getElementById("map"));
        //map.setCenter(new GLatLng(52.905,-1.258), 13);
        //map.setCenter(new GLatLng(52.89258,-1.2599), 15);
        //map.setCenter(new GLatLng(52.898962,-1.301193), 11);
        //map.setCenter(new GLatLng(52.89258226860718, -1.2604424357414246), 11);
        map.setUIToDefault();
        
        // Create our "tiny" marker icon
        //map.openInfoWindowHtml(new GLatLng(52.89258226860718, -1.2604424357414246), "<div class='map_balloon'><b>eShotz Ltd<\/b><br\/>31-33 Meadow Lane, Long Eaton<br\/>Nottingham, NG10 2FE<br\/><img src='\/_admin\/_images\/offices_200.jpg' width='200' height='102' alt='eShotz Offices' \/><\/div>");
        }
    }
    function GoogleMapMarker(Lat, Lng)
    {
        var icon = new GIcon();
        //icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
        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());
            //marker.openInfoWindowHtml(place.address + '<br><b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);
          
            var p;
            p = p + place.Point.coordinates[1];
            p = p + ",";
            p = p + place.Point.coordinates[0];
            $('#points').val(point);
            
            //alert(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber);
            //alert(place.toString());
        }
    }