var map = null;
var mgr = null;

function getMarker(n, detail) {
    
    if(!detail) { var detail = false; }
    
    // Standaard marker
    var nkMarker = new GIcon(G_DEFAULT_ICON);
    nkMarker.image = "img/plaatsmarkering.gif";
    nkMarker.iconAnchor = new GPoint(Math.round(n / 2), Math.round(n / 2));
    nkMarker.shadow = "";
    nkMarker.iconSize = new GSize(n, n);

    // Detail marker gebruikt een ander plaatje en de punt van het logo is het gedeelte waarmee
    // de marker op de kaart wordt geprikt
    if(detail) {
        nkMarker.image = "img/plaatsmarkering-detail.gif";
        nkMarker.iconAnchor = new GPoint(Math.round(n / 2), n);
    }
    
    return nkMarker;
}



function getMarkers(n, zoom) {
    var a = [];
    var locatieData = "";
    
    if(zoom < 9) { locatieData = locatieData6; }
    else if(zoom == 9) { locatieData = locatieData9 }
    else if(zoom == 10) { locatieData = locatieData10 }
    else if(zoom == 11) { locatieData = locatieData11 }
    else if(zoom == 12) { locatieData = locatieData12 }
    else { locatieData = locatieData13 };
    
    jQuery.each(locatieData, function (i, item) {
        var point = new GLatLng(item[1], item[2]);
        var marker = new GMarker(point, { icon: getMarker(n, (zoom > 12)) });
        a[i] = marker;
        
        if(zoom > 12) {
            // Zoomniveau is zo hoog dat alle kantoren weergegeven worden, dus we kunnen nu
            // onderscheid gaan maken en info van een kantoor weergeven
            GEvent.addListener(marker, "click", function() {

				var naamClass = 'normale-naam';
				// als lange kantoornaam
				if(item[0].length > 40) {
					naamClass = 'lange-naam';
				}
                marker.openInfoWindowHtml('<div class="maps-kantoorinfo"><h1 class="'+ naamClass +'">' + item[0] + '</h1><a href="' + item[3] + '">Meer informatie en beoordelingen</a><br />'+item[4]+'</div>');
            });        
        }
        else {
            // Nog niet alle kantoren worden weergegeven: zoom in op de locatie waarop geklikt wordt
            GEvent.addListener(marker, "click", function() {
                map.setZoom(13);
                map.panTo(point);
            });        
        }
    });
    
    return a;
}

function setupMarkers() {
  mgr = new MarkerManager(map);
  mgr.addMarkers(getMarkers(15,  6),  6,  8);
  mgr.addMarkers(getMarkers(15,  9),  9,  9);
  mgr.addMarkers(getMarkers(15, 10), 10, 10);
  mgr.addMarkers(getMarkers(15, 11), 11, 11);
  mgr.addMarkers(getMarkers(15, 12), 12, 12);
  mgr.addMarkers(getMarkers(15, 13), 13, 17);
  mgr.refresh();
}

