var m_objGoogleMaps = null;
var m_objGeo = null;
var m_objIcon = null;
var m_objBounds = null;
var m_Icon = new Array
var m_intCount = 0;

google.load("maps", "2.x");
// Call this function when the page has been loaded  
function initialize() {
    m_objGeo = new GClientGeocoder(); 
    var l_objGoogleMap = document.getElementById("GoogleMap");
    if (l_objGoogleMap == null) return;
    m_objGoogleMaps = new google.maps.Map2(l_objGoogleMap);
    //m_objGoogleMaps.enableContinuousZoom();
    //m_objGoogleMaps.setMapType(G_SATELLITE_MAP);
    
    //Set center of map to Argos Groep B.V.
    m_objGoogleMaps.setCenter(new google.maps.LatLng(51.872503,4.373846), 13);
    
    m_objGoogleMaps.addControl(new GSmallZoomControl());
    m_objIcon = new GIcon();
    m_objIcon.iconSize = new GSize(35, 35);
    m_objIcon.iconAnchor = new GPoint(17, 17); 
    //m_objIcon.infoWindowAnchor = new GPoint(10, 10);
    
    m_objBounds = new GLatLngBounds();
    
    
    if (typeof(AddMarkers) == "function") {
        AddMarkers(m_objGoogleMaps);
        if (m_intCount > 0) {
            FitZoomToMarkers(m_objBounds.getCenter());
        }
    }
}

function AddMarker(p_strLat, p_strLng, p_strName, p_strIcon, p_strHtml, p_blnOpenInfoWindow) {
    m_intCount++;
    var l_objPoint = new GLatLng(p_strLat, p_strLng);
    var l_objIcon = null;
    if (p_strIcon != null) {
        if (p_strIcon.indexOf("/") == -1) p_strIcon = "/Images/GoogleMaps/" + p_strIcon;
        if (p_strIcon.indexOf(".") == -1) p_strIcon += ".png";
        l_objIcon = new GIcon(m_objIcon, p_strIcon);
    }
    var l_objMarker = new GMarker(l_objPoint, l_objIcon); 
    m_objGoogleMaps.addOverlay(l_objMarker);
    m_objBounds.extend(l_objPoint);
    if (p_strHtml == null || p_strHtml.length == 0) p_strHtml = "<div>" + p_strName + "</div>";
    GEvent.addListener(
        l_objMarker, 
        'click', 
        function() { 
            m_objGoogleMaps.openInfoWindowHtml(l_objPoint, p_strHtml);
        }
    );
    if (p_blnOpenInfoWindow == true) {
        m_objGoogleMaps.openInfoWindowHtml(l_objPoint, p_strHtml);
    }
    /*
    m_objGeo.getLocations(
        p_strStreet, 
        function (p_objResult) {    
            var l_strLat = p_objResult.Placemark[0].Point.coordinates[1];
            var l_strLng = p_objResult.Placemark[0].Point.coordinates[0]);
        }
    );
    */
}

function FitZoomToMarkers(p_objCenter) {
    if (p_objCenter == null) p_objCenter = m_objBounds.getCenter();
    var l_intZoomLevel = m_objGoogleMaps.getBoundsZoomLevel(m_objBounds);
    m_objGoogleMaps.setZoom(l_intZoomLevel - 1)
    m_objGoogleMaps.panTo(p_objCenter);
}

function SearchLocation() {
    var l_strCountry = document.getElementById('Country').value;
    var l_strCity = document.getElementById('City').value;
    var l_strPostcode = document.getElementById('Postcode').value;
    var l_strSearch = "";
    if (l_strPostcode.length > 0) l_strSearch += l_strPostcode + ", ";
    if (l_strCity.length > 0) l_strSearch += l_strCity + ", ";
    if (l_strCountry.length > 0) l_strSearch += l_strCountry + ", ";
    m_objGeo.getLocations(
        l_strSearch, 
        function (p_objResult) {
            if (p_objResult.Status.code != 200) {
                alert ("Locatie kan niet bepaald worden");
                return;
            }
            m_intCount++;
            var l_strLat = p_objResult.Placemark[0].Point.coordinates[1];
            var l_strLng = p_objResult.Placemark[0].Point.coordinates[0];
            document.getElementById('Lat').value = l_strLat;
            document.getElementById('Lng').value = l_strLng;
            document.getElementById('frmSearch').submit();
        }
    );
}
               
google.setOnLoadCallback(initialize);

