var map;
function load() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(54.5, -3), 6);
        map.getInfoWindow();
        var s = document.createElement('script');
        s.setAttribute('src', 'http://www.theyworkforyou.com/api/getGeometry?key=Gbr9QgCDzHExFzRwPWGAiUJ5&callback=display&output=js');
        s.setAttribute('type', 'text/javascript');
        document.getElementsByTagName('head')[0].appendChild(s);

    }
}

function createMarker(d) {
    var area = d.area;
    var name = d.name;
    var point = new GLatLng(d.lat, d.lng);
    var marker = new GMarker(point);
    GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml("Area of " + name + " constituency is " + area + " square metres. <a href='http://www.theyworkforyou.com/mp/?c="+encodeURIComponent(name)+"'>TheyWorkForYou</a>", {maxWidth: 200});
    });
    return marker;
}

function display(r) {
    var data = r.data;
    var out = [];
    for (var match in data) {
        out[out.length] = {
            "name" : data[match].name,
            "lat" : data[match].centre_lat,
            "lng" : data[match].centre_lon,
            "area" : data[match].area
        }
    }
    var markers = out;
    var pos = 0;
    window.setTimeout(plotMarkers, 165);
    function plotMarkers() {
        if (pos < markers.length) {
            var max = Math.min(pos+10, markers.length);
            while (pos < max) {
                if (markers[pos].lat) {
                    map.addOverlay(createMarker(markers[pos]));
                }
                pos++;
            }
            window.setTimeout(plotMarkers, 165);
        }
    }
}
