var mapprojects = new Array();

// Main HTML nodes
var workMapNode = document.getElementById("GoogleMap");
var map

function load() {
  if (GBrowserIsCompatible()) {
    map = null
    if(!map)
    {
        map = new GMap2(workMapNode);
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(52.4, 4.9), 8);
        map.setMapType(G_SATELLITE_MAP);
        
        fillMap();


    }
  }
}

function fillMap()
{
    /*
    - Go through all works and save a reference + coordinates to the ones that have valid coordinates
    - Draw coordinates on the map, open popup with picture and description
    - Make pop-up clickable
    */
    mapprojects = new Array();
    map.clearOverlays();
    
    var icon = new GIcon(G_DEFAULT_ICON);

    icon.image = "/images/gm_icon.png";
    icon.iconSize = new GSize(7, 7);
    icon.shadow = "/images/gm_shadow.png";
    icon.shadowSize = new GSize(11, 11);
    icon.iconAnchor = new GPoint(1, 1);

    var icon_nietuitgevoerd = new GIcon(G_DEFAULT_ICON);
    icon_nietuitgevoerd.image = "/images/gm_icon_nietuitgevoerd.png";
    icon_nietuitgevoerd.iconSize = new GSize(7, 7);
    icon_nietuitgevoerd.shadow = "/images/gm_shadow.png";
    icon_nietuitgevoerd.shadowSize = new GSize(11, 11);
    icon_nietuitgevoerd.iconAnchor = new GPoint(1, 1);

    var icon_inuitvoering = new GIcon(G_DEFAULT_ICON);
    icon_inuitvoering.image = "/images/gm_icon_inuitvoering.png";
    icon_inuitvoering.iconSize = new GSize(7, 7);
    icon_inuitvoering.shadow = "/images/gm_shadow.png";
    icon_inuitvoering.shadowSize = new GSize(11, 11);
    icon_inuitvoering.iconAnchor = new GPoint(1, 1);

    var icon_invoorbereiding = new GIcon(G_DEFAULT_ICON);
    icon_invoorbereiding.image = "/images/gm_icon_invoorbereiding.png";
    icon_invoorbereiding.iconSize = new GSize(7, 7);
    icon_invoorbereiding.shadow = "/images/gm_shadow.png";
    icon_invoorbereiding.shadowSize = new GSize(11, 11);
    icon_invoorbereiding.iconAnchor = new GPoint(1, 1);

    for(var i = 0; i < projects.length; i++)
    {
        if(parseInt(projects[i].Breedtegraad) > 0 && parseInt(projects[i].Lengtegraad) > 0)
        {
            mapprojects.push(projects[i]);
        }
    }
    
    var minlng, maxlng, minlat, maxlat
    var focusedLng, focusedLat
    var decsep = ".";
    if((parseFloat("5.2")).toString().length < 3)
    {
        decsep = ",";
    }
    for(var i = 0; i < mapprojects.length; i++)
    {
        if(!minlat || minlat > parseFloat(mapprojects[i].Breedtegraad.replace(/\./, decsep)))
        {
            minlat = parseFloat(mapprojects[i].Breedtegraad.replace(/\./, decsep));
        }
        if(!maxlat || maxlat < parseFloat(mapprojects[i].Breedtegraad.replace(/\./, decsep)))
        {
            maxlat = parseFloat(mapprojects[i].Breedtegraad.replace(/\./, decsep));
        }
        if(!minlng || minlng > parseFloat(mapprojects[i].Lengtegraad.replace(/\./, decsep)))
        {
            minlng = parseFloat(mapprojects[i].Lengtegraad.replace(/\./, decsep));
        }
        if(!maxlng || maxlng < parseFloat(mapprojects[i].Lengtegraad.replace(/\./, decsep)))
        {
            maxlng = parseFloat(mapprojects[i].Lengtegraad.replace(/\./, decsep));
        }
                        
        if(mapprojects[i].Status.toLowerCase() == "niet uitgevoerd")
        {
            mapprojects[i].place = new GMarker(new GLatLng(mapprojects[i].Breedtegraad, mapprojects[i].Lengtegraad), icon_nietuitgevoerd); 
        }
        else if(mapprojects[i].Status.toLowerCase() == "in uitvoering")
        {
            mapprojects[i].place = new GMarker(new GLatLng(mapprojects[i].Breedtegraad, mapprojects[i].Lengtegraad), icon_inuitvoering); 
        }
        else if(mapprojects[i].Status.toLowerCase() == "in voorbereiding")
        {
            mapprojects[i].place = new GMarker(new GLatLng(mapprojects[i].Breedtegraad, mapprojects[i].Lengtegraad), icon_invoorbereiding); 
        }
        else
        {
            mapprojects[i].place = new GMarker(new GLatLng(mapprojects[i].Breedtegraad, mapprojects[i].Lengtegraad), icon); 
        }
        mapprojects[i].place.parent = mapprojects[i];
        map.addOverlay(mapprojects[i].place);
        GEvent.addListener(mapprojects[i].place, "mouseover", function() {
			this.openInfoWindowHtml(this.parent.Titel + '<br /><a href="' + this.parent.Url + '">Meer &raquo;</a>');
		});
    }
    if(mapprojects.length > 0)
    {
        var lat1 = (maxlat + minlat)/2;
        var lng1 = (minlng + maxlng)/2;
        var zoomlevel = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(minlat, minlng), new GLatLng(maxlat, maxlng)));

        //map.setCenter(new GLatLng(lat1, lng1), zoomlevel - 1);
    }
}

load()
