﻿var map;
var coder;
function load() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(56.0000, 10.8874), 6);
    map.addControl(new GLargeMapControl());
    coder = new GClientGeocoder();
  }
}

function addSchoolsToMap(S) { /* Event callback from searchSchool_callback */
    zoomCorrectionFactor = 0.0002;
    
    if (S.minLatitude == 1000 || S.minLongitude == 1000) {
        map.setCenter(new GLatLng(56.0000, 10.8874), 6);
        map.addControl(new GLargeMapControl());
        map.clearOverlays();
        return;
    }
    
    zoomlevel = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(S.minLatitude-zoomCorrectionFactor, S.minLongitude-zoomCorrectionFactor), new GLatLng(S.maxLatitude+zoomCorrectionFactor, S.maxLongitude+zoomCorrectionFactor)));
    map.setCenter(new GLatLng(S.centerLatitude, S.centerLongitude), zoomlevel);
    if (S.ResultType != "none") {
        map.clearOverlays();
        for (i=0; i<S.schools.length; i++) {
            if (S.schools[i].Latitude == 0 || S.schools[i].Longitude == 0) { }
            else { addSchool(S.schools[i].ShortName, S.schools[i].Latitude, S.schools[i].Longitude, 3, S.schools[i].Id); }
        }
    }    
}

function addSchool(name, latitude, longitude, zoom, id) {
    if (latitude != 0 && longitude != 0)
    {
        var point = new GLatLng(latitude, longitude);
        var m0 = new GMarker(point);
        GEvent.addListener(m0, "click", function() { m0.openInfoWindowHtml(name + '<br /><a href=\'' + schoolUrl.replace('_name_', id) + '\'>Gå til skolens forside</a>'); });
        map.addOverlay(m0);
    }
}

function gotMunicipalitiesToMap(M) { /* Event callback from getMunicipalities_callback */
    zoomlevel = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(M.minLatitude, M.minLongitude), new GLatLng(M.maxLatitude, M.maxLongitude)));
    map.setCenter(new GLatLng(M.centerLatitude, M.centerLongitude), zoomlevel);
    map.clearOverlays();
}

function gotSchoolsToMap(S) { /* Event callback from getSchools_callback */
    zoomCorrectionFactor = 0.0003;
    
    if (S.minLatitude == 1000 || S.minLongitude == 1000) {
        map.setCenter(new GLatLng(56.0000, 10.8874), 6);
        map.addControl(new GLargeMapControl());
        map.clearOverlays();
        return;
    }
    
    zoomlevel = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(S.minLatitude-zoomCorrectionFactor, S.minLongitude-zoomCorrectionFactor), new GLatLng(S.maxLatitude+zoomCorrectionFactor, S.maxLongitude+zoomCorrectionFactor)));
    map.setCenter(new GLatLng(S.centerLatitude, S.centerLongitude), zoomlevel);
    map.clearOverlays();

    for (i=0; i<S.schools.length; i++) {
            if (S.schools[i].Latitude == 0 || S.schools[i].Longitude == 0) { }
            else { addSchool(S.schools[i].Name, S.schools[i].Latitude, S.schools[i].Longitude, 3, S.schools[i].EasyUrl); }
    }
}