
var common = 1;
var region_zoomlevel = 8;
var dk_zoomlevel = 7;

var defaultIcon = function () {
    var icon = new GIcon (G_DEFAULT_ICON);
    icon.image = 'http://v2.spor.dk/sites/spor/gfx/KML/spor_marker.png';
    icon.shadow = 'http://v2.spor.dk/sites/spor/gfx/KML/spor_marker_shadow.png';
    icon.printImage = 'http://v2.spor.dk/sites/spor/gfx/KML/spor_marker_alt.png';
    icon.printShadow = 'http://v2.spor.dk/sites/spor/gfx/KML/spor_marker_shadow_alt.png';    
    icon.transparent = 'http://v2.spor.dk/sites/spor/gfx/KML/spor_marker_transparent.png';    
    icon.iconSize = new GSize (36, 33);
    icon.shadowSize = new GSize (39, 33);
    icon.iconAnchor = new GPoint (10, 33);
    icon.infoWindowAnchor = new GPoint (9, 2);
    
    return icon;
}

var refreshMap = function (map, region) {
    map.clearOverlays ();
    addOverlays (map, region.dataurl);
    map.setZoom (8);
    map.panTo (new GLatLng (region.lat, region.lng));
    //map.setZoom (8);
}

var addOverlays = function (map, url) {
    $.ajax ({
        url: url,
        dataType: 'json',
        success: function (d, s) {
            sporicon = defaultIcon ();
            $.each (d, function () {
                var point = new GLatLng (this.lat, this.lng);
                var marker = new GMarker (point, {icon: sporicon, title: this.name});
                var location = this.url;
                GEvent.addListener (marker, 'click', function () { document.location = location; });
                map.addOverlay(marker);
            });
        },
        error: function (x, h, r) {
            alert(h);
        }});
}

var regionMenuFixer = function (map) {
    return function () {
        var region = this;
        if ($('#' + this.id).length) {
            $('#' + this.id).bind ('click', function (event) {
                refreshMap (map, region);
                event.preventDefault();
                return false;
            });
        }
    }
}

// http://econym.org/gmap/example_range.html
var checkBounds = function (map, bounds) {
    if (bounds.contains (map.getCenter ())) {
        return;
    }
    
    var C = map.getCenter ();
    var X = C.lng ();
    var Y = C.lat ();
    
    var maxX = bounds.getNorthEast.lng ();
    var maxY = bounds.getNorthEast.lat ();
    var minX = bounds.getSouthWest.lng ();
    var minY = bounds.getSouthWest.lat ();
    
    if (X < minX) { X = minX; }
    if (X > maxX) { X = maxX; }
    if (Y < minY) { Y = minY; }
    if (Y > maxY) { Y = maxY; }
    
    map.setCenter(new GLatLng(X, Y));
};