﻿// Script data for map of data protection laws
var centerLatitude = 25.00;
var centerLongitude = 25.00;
var startZoom = 2;

var map;

function addMarker(latitude, longitude, name, law, scope, subject, transfer) {
    var marker = new GMarker(new GLatLng(latitude, longitude));
    GEvent.addListener(marker, 'click',
        function() {
            marker.openInfoWindowHtml("<h2>" + name + "</h2><div><span><strong>Data protection law: </strong></span><span>" + law + "</span></div><div><span><strong>Scope of protection: </strong></span><span>" + scope + "</span></div><div><span><strong>Covered entities: </strong></span><span>" + subject + "</span></div><div><span><strong>Data transfers to countries w/o <br /> adequate data protection laws: </strong></span><span>" + transfer + "</span></div>");
        }
    );
    map.addOverlay(marker);
}

function init() {
    if (GBrowserIsCompatible()) {	
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);

        for(id in markers) {
            addMarker(markers[id].latitude, markers[id].longitude, markers[id].name, markers[id].law, markers[id].scope, markers[id].subject, markers[id].transfer);
        }
    }
}
function findCountry(which) {
	if (which != 0) {
   		map.clearOverlays();
    	map.setCenter(new GLatLng(markers[which-1].latitude, markers[which-1].longitude), 6);
    	var marker = new GMarker(new GLatLng(markers[which-1].latitude, markers[which-1].longitude));
    	GEvent.addListener(marker, 'click',
        	function() {
            	marker.openInfoWindowHtml("<h2>" + markers[which-1].name + "</h2><div><span><strong>Data protection law: </strong></span><span>" + markers[which-1].law + "</span></div><div><span><strong>Scope of protection: </strong></span><span>" + markers[which-1].scope + "</span></div><div><span><strong>Covered entities: </strong></span><span>" + markers[which-1].subject + "</span></div><div><span><strong>Data transfers to countries w/o <br /> adequate data protection laws: </strong></span><span>" + markers[which-1].transfer + "</span></div>");
        	}
    	);
    	map.addOverlay(marker);
    	marker.openInfoWindowHtml("<h2>" + markers[which-1].name + "</h2><div><span><strong>Data protection law: </strong></span><span>" + markers[which-1].law + "</span></div><div><span><strong>Scope of protection: </strong></span><span>" + markers[which-1].scope + "</span></div><div><span><strong>Covered entities: </strong></span><span>" + markers[which-1].subject + "</span></div><div><span><strong>Data transfers to countries w/o <br /> adequate data protection laws: </strong></span><span>" + markers[which-1].transfer + "</span></div>");
    }
}

function resetMapToCenter() {
	map.clearOverlays();
	map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
	for(id in markers) {
    	addMarker(markers[id].latitude, markers[id].longitude, markers[id].name, markers[id].law, markers[id].scope, markers[id].subject, markers[id].transfer);
    }
}

window.onload = init;
//window.onunload = GUnload(); Suppossed to prevent memory leaks