// JavaScript Document

var map = null;

function GetMap() {
	if (document.getElementById('tw_map')) {
		
		var provider = readCookie('provider');
		switch (provider)
		{
			case 'VirtualEarthMapProvider':
				map = new VirtualEarthMapProvider()
				eraseCookie('provider')
				createCookie('provider', 'VirtualEarthMapProvider', 30)
				break
			case 'GoogleMapProvider':
				map = new GoogleMapProvider()
				eraseCookie('provider')
				createCookie('provider', 'GoogleMapProvider', 30)
				break
			default:
				map = new VirtualEarthMapProvider()
				createCookie('provider', 'VirtualEarthMapProvider', 30)
				break
		}
		map.LoadMap('tw_map');
    }
}

function SwitchMap(provider) {
	
	eraseCookie('provider');
	if (map != null)
		deleteContent(document.getElementById('incident_info'));
		map.DisposeMap();

	switch (provider) {
		case 'VirtualEarthMapProvider':
			map = new VirtualEarthMapProvider()
			createCookie('provider', 'VirtualEarthMapProvider', 30)
			break
		case 'GoogleMapProvider':
			map = new GoogleMapProvider()
			createCookie('provider', 'GoogleMapProvider', 30)
			break
		default:
			break
	}
	map.LoadMap('tw_map');
	PlotCameras('all');
}

function PlotCameras(mask)
{
	/* Clear map and plot the locations on the map. */
	map.ClearMap();
	for (i=0; i<cameras.length; i++) {
		var node = cameras[i];
	    var id = i;
		
		//create a osgb coordinate
		osgb=new GT_OSGB();
		osgb.setGridCoordinates(node[2], node[3]);
		
		//convert to a wgs84 coordinate
		wgs84 = osgb.getWGS84();
		
	    var pos = map.LatLong(
	    	parseFloat(wgs84.latitude), 
	        parseFloat(wgs84.longitude)
	    );
	    var title = node[0];
	    var desc = node[1];
		var icon = 'img/map_cam.gif';
		switch (node[0])
		{
			case 'Static':
				icon = 'img/map_static.gif'
				break
			case 'Mobile':
				icon = 'img/map_mobile.gif'
				break
			case 'Red Light':
				icon = 'img/map_redlight.gif'
				break
			default:
				break
		}
		if (node[0] == mask || mask == 'all')
		{
			map.AddMarker(id, pos, title, desc, icon, '', true);
		}
	}
}