// (C) Copyright 2007 Adam Nowacki

function Tick() {
	g_map.Tick();
	window.setTimeout(Tick, 30);
}

function TileService_URL(server, dataset) {
	return "http://s" + server + "-${server_3x3}.tileservice.worldwindcentral.com/getTile?interface=map&version=1&dataset=" + dataset + "&level=${level}&x=${x}&y=${y}";
}

function TileServiceURL(server, dataset) {
	return "http://s" + server + "-${server_3x3}.tileservice.madmappers.com/getTile?interface=map&version=1&dataset=" + dataset + "&level=${level}&x=${x}&y=${y}";
}

function NewXMLHttpRequest() {
	if (window.XMLHttpRequest){ 
		return new XMLHttpRequest()
	} else if (window.ActiveXObject){
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
}
/*
function Test() {
	var r = NewXMLHttpRequest();
	r.onreadystatechange = function() { 
		Log(r.readyState); 
		if (r.readyState == 4) {
			var xmldoc = r.responseXML;
			var root_node = xmldoc.getElementsByTagName('root').item(0);
			for (var n = root_node.firstChild; n; n = n.nextSibling) {
				if (n.nodeName == "placemark") {
					Log(n.getAttribute("icon"));
				}
			}
		}
	};
	var now = new Date();
	r.open('GET', "test.xml?" + now.toString(), true);
	r.send(null);
}
*/
function onLoad() {
	g_map = new Map({
		container_id: "map_window"
	});

	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("spotimage_2005", 
		"<img src=\"img/copyright_spotimage2005.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("digitalglobe_2006", 
		"<img src=\"img/copyright_digitalglobe2006.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("madmappers_2006", 
		"<img src=\"img/copyright_madmappers2007.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("t4a_2007", 
		"<img src=\"img/copyright_t4a2007.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("osm_2007", 
		"<img src=\"img/copyright_OpenStreetMap2007.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("demis_2007", 
		"<img src=\"img/copyright_demis2007.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("fef_2006", 
		"<img src=\"img/copyright_fef2006.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("nasa_2006", 
		"<img src=\"img/copyright_nasa2006.png\" />"));
	g_map.copyright_manager.AddCopyright(new MapCopyrightNotice("customweather_2007", 
		"<img src=\"img/copyright_customweather2007.png\" />"));

	g_map.AddLayer("bmng_topo_bathy_200401", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -5, max_display_level: 7, z_index: 1,
		url: TileServiceURL(0, "bmng.topo.bathy.200401"), copyright: "fef_2006"
	}));

	g_map.AddLayer("bmng_topo_bathy_200402", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -5, max_display_level: 7, z_index: 1,
		url: TileServiceURL(0, "bmng.topo.bathy.200402"), copyright: "fef_2006"
	}));


	g_map.AddLayer("geocover2000", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 2.25 / 184320, y: 2.25 / 184320 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 5, min_display_level: 0, max_display_level: 8, inv_y_base: 80, z_index: 3, copyright: "nasa_2006",
		load_band: 0, keep_band: 1000,
		url: "http://worldwind25.arc.nasa.gov/tile/tile.aspx?T=geocover2000&L=${level}&X=${x}&Y=${inv_y}"
	}));
	g_map.AddLayer("geocover1990", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 2.25 / 184320, y: 2.25 / 184320 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 4, min_display_level: 0, max_display_level: 8, inv_y_base: 80, z_index: 3, copyright: "nasa_2006",
		load_band: 0, keep_band: 1000,
		url: "http://worldwind28.arc.nasa.gov/TestWebApp/WebForm1.aspx?T=es_1990jpg&L=${level}&X=${x}&Y=${inv_y}"
	}));
	g_map.AddLayer("i3_landsat", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 2.25 / 184320, y: 2.25 / 184320 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 5, min_display_level: 0, max_display_level: 8, inv_y_base: 80, z_index: 3, copyright: "nasa_2006",
		load_band: 0, keep_band: 1000,
		url: "http://worldwind25.arc.nasa.gov/lstile/lstile.aspx?T=esat_world&L=${level}&X=${x}&Y=${inv_y}"
	}));

	g_map.AddLayer("onearth_visual_global_mosaic", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 720, y: 1.0 / 720 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 12, min_display_level: -1, max_display_level: 13, z_index: 3,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=global_mosaic&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles=visual"
	}));
	g_map.AddLayer("onearth_pseudo_global_mosaic", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 720, y: 1.0 / 720 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 12, min_display_level: -1, max_display_level: 13, z_index: 3,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=global_mosaic&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));
	g_map.AddLayer("onearth_daily_terra", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -1, max_display_level: 7, z_index: 2,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_terra&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));
	g_map.AddLayer("onearth_daily_aqua", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -1, max_display_level: 7, z_index: 2,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_aqua&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));
	g_map.AddLayer("onearth_daily_terra_721", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -1, max_display_level: 7, z_index: 2,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_terra_721&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));
	g_map.AddLayer("onearth_daily_aqua_721", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -1, max_display_level: 7, z_index: 2,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_aqua_721&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));
	g_map.AddLayer("onearth_daily_terra_ndvi", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -1, max_display_level: 7, z_index: 2,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_terra_ndvi&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));
	g_map.AddLayer("onearth_daily_aqua_ndvi", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 7, min_display_level: -1, max_display_level: 7, z_index: 2,
		load_band: 0, keep_band: 1000,
		url: "http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_aqua_ndvi&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles="
	}));

// ======================== Aster

	g_map.AddLayer("aster_col", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 13, min_display_level: 0, max_display_level: 15, z_index: 8,
		url: TileService_URL(0, "aster3"), 
		copyright: "fef_2006"
	}));

	g_map.AddLayer("aster_vnir", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 12, min_display_level: 0, max_display_level: 14, z_index: 8,
		url: TileService_URL(0, "aster2"), 
		copyright: "fef_2006"
	}));
// ======================== Spot5

	g_map.AddLayer("za_spot5", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: {x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 13, min_display_level: 5, max_display_level: 15, z_index: 10,
		url: "http://www.madmappers.com/getTile.php?interface=map&version=1&dataset=Spot5&level=${level}&x=${x}&y=${y}", 
		copyright: "spotimage_2005"
	}));
	g_map.AddLayer("za_spot5_opacity", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: {x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 13, min_display_level: 6, max_display_level: 15, z_index: 10, opacity: 0.70,
//		url: "http://s0-${server_3x3}.tileservice.madmappers.com/getTile?interface=map&version=1&dataset=spot5&level=${level}&x=${x}&y=${y}", 
		url: "http://www.madmappers.com/getTile.php?interface=map&version=1&dataset=Spot5&level=${level}&x=${x}&y=${y}", 
		copyright: "spotimage_2005"
	}));


// ======================== RUSSIAN MAPS

	g_map.AddLayer("RU_topo200k", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 9, min_display_level: 5, max_display_level: 11, z_index: 7,
		url: "http://www.madmappers.com/getTile.php?interface=map&version=1&dataset=RU_topo200k&level=${level}&x=${x}&y=${y}",
		copyright: "madmappers_2006"
	}));

	g_map.AddLayer("Ru_200k_index", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: {x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 3, min_display_level: 0, max_display_level: 4, z_index: 70,
		url: "http://www.madmappers.com/getTile.php?interface=map&version=1&dataset=RU_200k_Index&level=${level}&x=${x}&y=${y}", 
		copyright: "madmappers_2006"
	}));


	g_map.AddLayer("za.johannesburg_2006_20cm_re", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 15, min_display_level: 10, max_display_level: 20, z_index: 10,
		url: "http://www.madmappers.com/getTile.php?interface=map&version=1&dataset=Joburg2006&level=${level}&x=${x}&y=${y}", 
		copyright: "madmappers_2006"
	}));



	g_map.AddLayer("za_topo250k", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 360 / 512, y: 1.0 / 360 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 4, min_display_level: -1, max_display_level: 4, z_index: 8,
		url: "http://s0-${server_3x3}.tileservice.madmappers.com/sa250k.php?level=${level}&x=${x}&y=${y}", 
		copyright: "madmappers_2006"
	}));

	g_map.AddLayer("za_topo50k", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 360 / 512, y: 1.0 / 360 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 6, min_display_level: 4, max_display_level: 7, z_index: 8,
		url: "http://s0-${server_3x3}.tileservice.worldwindcentral.com/sa50k.php?level=${level}&x=${x}&y=${y}", 
		copyright: "madmappers_2006"
	}));

	g_map.AddLayer("so_mogadishu_roads", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 17, min_display_level: 12, max_display_level: 18, z_index: 20,
		url: TileServiceURL(0, "so_mogadishu_roads"), copyright: "madmappers_2006"
	}));

	g_map.AddLayer("t4a_roads", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 17, min_display_level: 2, max_display_level: 18, z_index: 20,
		url: TileServiceURL(0, "t4a_roads"), copyright: "t4a_2007"
	}));



	g_map.AddLayer("osm-map", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512 , y: 1.0 / 512 }, tile_size: { x: 256, y: 256 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 13, min_display_level: 0, max_display_level: 21, z_index: 30, copyright: "osm_2007",
		load_band: 0, keep_band: 1000,
		url: "http://labs.metacarta.com/wms-c/Basic.py?T=osm-map&L=${level}&X=${x}&Y=${inv_y}"
	}));

	g_map.AddLayer("osm-map_tr", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 256, y: 256 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 13, min_display_level: 0, max_display_level: 21,  opacity: 0.65, z_index: 30, copyright: "osm_2007",
		load_band: 0, keep_band: 1000,
		url: "http://labs.metacarta.com/wms-c/Basic.py?T=osm-map&L=${level}&X=${x}&Y=${inv_y}"
// 		url: "http://labs.metacarta.com/wms-c/Basic.py?T=hfoot&L=${level}&X=${x}&Y=${inv_y}"
	}));

	g_map.AddLayer("osm-1", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: -1, max_display_level: 21, z_index: 50,  copyright: "osm_2007",
		load_band: 0, keep_band: 1000,
		url: "http://208.80.140.107/wms-c/Basic.py?request=GetMap&layers=osm-map&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&styles=" 
		}));

	g_map.AddLayer("osm-4326", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512 , y: 1.0 / 512 }, tile_size: { x: 256, y: 256 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: 0, max_display_level: 21, z_index: 30, copyright: "osm_2007",
		load_band: 0, keep_band: 1000,
		url: "http://hypercube.telascience.org/tiles?T=osm-4326&L=${level}&X=${x}&Y=${inv_y}"
	}));

	g_map.AddLayer("osm-4326-hybrid", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512 , y: 1.0 / 512 }, tile_size: { x: 256, y: 256 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: 0, max_display_level: 21, z_index: 30, copyright: "osm_2007",
		load_band: 0, keep_band: 1000,
		url: "http://hypercube.telascience.org/tiles?T=osm-4326-hybrid&L=${level}&X=${x}&Y=${inv_y}"
	}));


//	THIS IS FROM LOCAL SERVER (za50k index map)
	g_map.AddLayer("za50k_index2", new MapTileLayerWMS({
//		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 1024, y: 1024 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: -1, max_display_level: 19, z_index: 50, 
 opacity: 0.7,
		load_band: 0, keep_band: 1000,
		url: "http://localhost/cgi-bin/madstreets.exe?request=GetMap&layers=za50k_index&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=1024&height=1024&bbox=${bbox}&format=image/png&version=1.1.1&map=Index.map&styles=",
//		url: "http://localhost/cgi-bin/madstreets.exe?request=GetMap&layers=za_province,za10k_index,za50k_index&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=1024&height=1024&bbox=${bbox}&format=image/png&version=1.1.1&map=Index.map&styles=",		copyright: "madmappers_2006"
		copyright: "madmappers_2006"
	}));

//	THIS IS FROM LOCAL SERVER
	g_map.AddLayer("za10k_index", new MapTileLayerWMS({
//		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 1024, y: 1024 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: -1, max_display_level: 19, z_index: 50, 
 opacity: 0.7,
		load_band: 0, keep_band: 1000,
		url: "http://localhost/cgi-bin/madstreets.exe?request=GetMap&layers=za10k_index&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=1024&height=1024&bbox=${bbox}&format=image/png&version=1.1.1&map=Index.map&styles=",
//		url: "http://localhost/cgi-bin/madstreets.exe?request=GetMap&layers=za_province,za10k_index&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&map=Index.map&styles=",
		copyright: "madmappers_2006"
	}));

//	THIS IS FROM LOCAL SERVER (Mapstudio style)
	g_map.AddLayer("Gauteng_1", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: -1, max_display_level: 19, z_index: 50, 
 opacity: 0.7,
		load_band: 0, keep_band: 1000,
		url: "http://localhost/cgi-bin/madstreets.exe?request=GetMap&layers=za_province,za_roads_minor,za_roads_main,za_roads_reg,za_roads_freeway&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&map=test2.map&styles=",
//		url: "http://192.168.0.2/cgi-bin/mapserv2.cgi?request=GetMap&layers=za_province,za_roads_minor,za_roads_main,za_roads_reg,za_roads_freeway&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&styles=",
//		url: "http://192.168.0.2/cgi-bin/mapserv2.cgi?request=GetMap&layers=za_province,za_roads_nat,za_roads_art,za_roads_main,za_roads_constr,za_roads_sec,za_roads_street,za_roads_acc,world_countries&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&styles=",
		copyright: "madmappers_2006"
	}));

//	THIS IS FROM LOCAL SERVER
	g_map.AddLayer("Gauteng_2", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 },	tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 20, min_display_level: -1, max_display_level: 19, z_index: 50, 
 opacity: 0.7,
		load_band: 0, keep_band: 1000,
		url: "http://localhost/cgi-bin/mdfwms.exe?request=GetMap&layers=za_province,za_roads_minor,za_roads_main,za_roads_reg,za_roads_freeway&SERVICE=WMS&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&map=test2test.map&styles=",
// ,za_roads_freeway,za_roads_reg,za_roads_main,za_roads_minor
		copyright: "madmappers_2006"
	}));

        g_map.AddLayer("weather_conditions", new MapTileLayer({
                start_point: { x: 0.0, y: 0.0 },
                scale: { x: 1.0 / 4096, y: 1.0 / 4096 },
                tile_size: { x: 1024, y: 1024 },
                world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
                max_level: 0, min_display_level: -1, max_display_level: 1, z_index: 20,
                url: "http://s0-${server_3x3}.tileservice.worldwindcentral.org/getTile?interface=map&version=1&dataset=weather_conditions&level=${level}&x=${x}&y=${y}"
        }));
        g_map.AddLayer("weather_global_ir_satellite_10km", new MapTileLayer({
                start_point: { x: 0.0, y: 0.0 },
                scale: { x: 1.0 / 512, y: 1.0 / 512 },
                tile_size: { x: 512, y: 512 },
                world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
                max_level: 5, min_display_level: -1, max_display_level: 6, z_index: 2,
                url: "http://s0-${server_3x3}.tileservice.worldwindcentral.org/getTile?interface=map&version=1&dataset=weather_global_ir_satellite_10km&level=${level}&x=${x}&y=${y}"
        }));


	g_map.AddLayer("world_countries", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 512, y: 1.0 / 512 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 10, min_display_level: 0, max_display_level: 12, z_index: 60,
		url: TileServiceURL(0, "world_countries"), copyright: "madmappers_2006"
	}));

	g_map.AddLayer("za_geology", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 4, min_display_level: 0, max_display_level: 5, z_index: 20,
		url: "http://www.madmappers.com/getTile.php?interface=map&version=1&dataset=za_geology&level=${level}&x=${x}&y=${y}",
 		copyright: "madmappers_2006"
	}));

	g_map.AddLayer("Demis_WorldMap", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 4096, y: 1.0 / 4096 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 9, min_display_level: -5, max_display_level: 9, z_index: 20,
		url: "http://www2.demis.nl/wms/ww.ashx?T=WorldMap&L=${level}&X=${x}&Y=${inv_y}" , inv_y_base: 4, 
		copyright: "demis_2007"
		}));

	g_map.AddLayer("Demis_WorldMap_trasp", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 4096, y: 1.0 / 4096 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 9, min_display_level: -5, max_display_level: 9, z_index: 20,
		url: "http://www2.demis.nl/wms/ww.ashx?T=WorldMap&L=${level}&X=${x}&Y=${inv_y}" , inv_y_base: 4, opacity: 0.6,
		copyright: "demis_2007"
		}));

	g_map.AddLayer("Demis_Overlay", new MapTileLayer({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 4096, y: 1.0 / 4096 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 9, min_display_level: -5, max_display_level: 9, z_index: 20,
		url: "http://www2.demis.nl/wms/ww.ashx?T=Overlay&L=${level}&X=${x}&Y=${inv_y}" , inv_y_base: 4, opacity: 0.6,
		copyright: "demis_2007"
		}));

	g_map.AddLayer("plateboundaries", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 14, min_display_level: -1, max_display_level: 15, z_index: 50,
		load_band: 0, keep_band: 1000,
		url: "http://iceds.ge.ucl.ac.uk/cgi-bin/wms?request=GetMap&layers=plateboundaries&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&map=wms.map&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&styles=" 
//  layers usgs_aster,, lights_2, cities,Countries,plateboundaries
		}));

	g_map.AddLayer("GlobeXplorerWMS", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 14, min_display_level: 8, max_display_level: 15, z_index: 10,
		load_band: 0, keep_band: 1000,
		url: "http://wms.globexplorer.com/gexservlets/wms?request=GetMap&layers=GlobeXplorer Image&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles=" ,
		copyright: "digitalglobe_2006"
		}));

	g_map.AddLayer("GlobeXplorerWMS_transp", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 14, min_display_level: 8, max_display_level: 15, z_index: 10, opacity: 0.60,
		load_band: 0, keep_band: 1000,
		url: "http://wms.globexplorer.com/gexservlets/wms?request=GetMap&layers=GlobeXplorer Image&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/jpeg&version=1.1.1&styles=" ,
		copyright: "digitalglobe_2006"
		}));

	g_map.AddLayer("tiger_test", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 256, y: 1.0 / 256 }, tile_size: { x: 256, y: 256 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 8, min_display_level: -1, max_display_level: 9, z_index: 50,
		load_band: 0, keep_band: 2000,
		url: "http://sigma1.openplans.org/tilecache-1.3/tilecache.py?LAYERS=sigma&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application/vnd.ogc.se_inimage&FORMAT=image/jpeg&SRS=EPSG:4326&BBOX=${bbox}&WIDTH=256&HEIGHT=256"
		}));

	g_map.AddLayer("metarweather", new MapTileLayerWMS({
		start_point: { x: 0.0, y: 0.0 }, scale: { x: 1.0 / 16384, y: 1.0 / 16384 }, tile_size: { x: 512, y: 512 },
		world_box: { x0: 0.0, y0: 0.0, x1: 1.0, y1: 0.5 },
		max_level: 14, min_display_level: -1, max_display_level: 15, z_index: 40,
		load_band: 0, keep_band: 1000,
		url: "http://iceds.ge.ucl.ac.uk/cgi-bin/wms?request=GetMap&layers=metarweather&TRANSPARENT=TRUE&BGCOLOR=0xFF00FF&map=wms.map&srs=EPSG:4326&width=512&height=512&bbox=${bbox}&format=image/png&version=1.1.1&styles=" 
//  layers usgs_aster,, lights_2, cities,Countries,plateboundaries
		}));

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Blue Marble Next Generation" });
	new MapLayerManagerNode(g, { layer_id: "bmng_topo_bathy_200401", name: "January 2004" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Landsat Satellite Imagery" });
	new MapLayerManagerNode(g, { layer_id: "i3_landsat", name: "i-cubed Landsat7" });
	new MapLayerManagerNode(g, { layer_id: "geocover1990", name: "Geocover 1990" });
	new MapLayerManagerNode(g, { layer_id: "geocover2000", name: "Geocover 2000" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "OnEarth WMS" });
	new MapLayerManagerNode(g, { layer_id: "onearth_visual_global_mosaic", name: "Global Landsat Mosaic" });
	new MapLayerManagerNode(g, { layer_id: "onearth_pseudo_global_mosaic", name: "Global Landsat Mosaic (pseudo-color)" });
	new MapLayerManagerNode(g, { layer_id: "onearth_daily_terra", name: "Daily TERRA MODIS" });
	new MapLayerManagerNode(g, { layer_id: "onearth_daily_aqua", name: "Daily AQUA MODIS" });
	new MapLayerManagerNode(g, { layer_id: "onearth_daily_terra_721", name: "Daily TERRA MODIS 721" });
	new MapLayerManagerNode(g, { layer_id: "onearth_daily_aqua_721", name: "Daily AQUA MODIS 721" });
	new MapLayerManagerNode(g, { layer_id: "onearth_daily_terra_ndvi", name: "Daily TERRA MODIS NDVI" });
	new MapLayerManagerNode(g, { layer_id: "onearth_daily_aqua_ndvi", name: "Daily AQUA MODIS NDVI" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Aster Satellite Imagery" });
	new MapLayerManagerNode(g, { layer_id: "aster_vnir", name: "Aster VNIR" });
	new MapLayerManagerNode(g, { layer_id: "aster_col", name: "Aster Simulated Colour" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Spot5 Satellite Imagery" });
	new MapLayerManagerNode(g, { layer_id: "za_spot5", name: "South Africa - 10m/px" });
	new MapLayerManagerNode(g, { layer_id: "za_spot5_opacity", name: "South Africa - 10m/px(70% opacity)" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Hi Resolution Imagery" });
	new MapLayerManagerNode(g, { layer_id: "GlobeXplorerWMS", name: "GlobeXplorer" });
	new MapLayerManagerNode(g, { layer_id: "GlobeXplorerWMS_transp", name: "GlobeXplorer (transparent)" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Index Maps" });
	new MapLayerManagerNode(g, { layer_id: "Ru_200k_index", name: "Russian Map Index scale 1:200 000" });
//	new MapLayerManagerNode(g, { layer_id: "za50k_index2", name: "South Africa Maps 1:50 000" });
//	new MapLayerManagerNode(g, { layer_id: "za10k_index", name: "South Africa Aerials 1:10 000" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Russian Topographic Maps" });
	new MapLayerManagerNode(g, { layer_id: "RU_topo200k", name: "Maps scale 1:200 000" });
	new MapLayerManagerNode(g, { layer_id: "Ru_200k_index", name: "Map Index scale 1:200 000" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "South Africa" });
	var g2 = new MapLayerManagerGroup(g, { name: "Aerial Imagery" });
	var g3 = new MapLayerManagerGroup(g2, { name: "Johannesburg" });
	new MapLayerManagerNode(g3, { layer_id: "za.johannesburg_2006_20cm_re", name: "Johannesburg 2006 (2.5m/px)" });

	new MapLayerManagerNode(g, { layer_id: "za_topo250k", name: "Topo 1:250&nbsp;000" });
	new MapLayerManagerNode(g, { layer_id: "za_topo50k", name: "Topo 1:50&nbsp;000" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "MadMappers' African Streets" });
//	new MapLayerManagerNode(g, { layer_id: "Gauteng_1", name: "Gauteng Streets 1 *" });
//	new MapLayerManagerNode(g, { layer_id: "Gauteng_2", name: "Gauteng Streets 2 *" });
	new MapLayerManagerNode(g, { layer_id: "so_mogadishu_roads", name: "Mogadishu Streets" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name:"<a href=\"http://www.tracks4africa.com\" target=\"_blank\">Tracks4Africa</a>" });
	new MapLayerManagerNode(g, { layer_id: "t4a_roads", name: "Roads & Tracks" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name:"<a href=\"http://wiki.openstreetmap.org/index.php?title=South_Africa\" target=\"_blank\">OpenStreetMap</a>" });
//	new MapLayerManagerNode(g, { layer_id: "osm-map", name: "OSM" });
//	new MapLayerManagerNode(g, { layer_id: "osm-map_tr", name: "OSM (transparent)" });
//	new MapLayerManagerNode(g, { layer_id: "osm-1", name: "OSM wms" });
	new MapLayerManagerNode(g, { layer_id: "osm-4326-hybrid", name: "OSM (hybrid)" });
	new MapLayerManagerNode(g, { layer_id: "osm-4326", name: "OSM (map)" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "African Geology" });
	new MapLayerManagerNode(g, { layer_id: "plateboundaries", name: "NOAA Plate Boundaries" });
	new MapLayerManagerNode(g, { layer_id: "za_geology", name: "South Africa (scale 1M)" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Administrative" });
	new MapLayerManagerNode(g, { layer_id: "world_countries", name: "Countries" });
	new MapLayerManagerNode(g, { layer_id: "tiger_test", name: "Localities"});

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "Weather" });
//	new MapLayerManagerNode(g, { layer_id: "weather_conditions", name: "Current conditions" });
//	new MapLayerManagerNode(g, { layer_id: "weather_global_ir_satellite_10km", name: "Global IR Satellite Imagery" });
	new MapLayerManagerNode(g, { layer_id: "metarweather", name: "Hourly METAR Weather" });

	var g = new MapLayerManagerGroup(g_map.layer_manager, { name: "*** Restricted Access ***" });
	var g2 = new MapLayerManagerGroup(g, { name: "Demis WorldMap (scale 1:1 000 000)" });
	new MapLayerManagerNode(g2, { layer_id: "Demis_WorldMap", name: "WorldMap" });
	new MapLayerManagerNode(g2, { layer_id: "Demis_WorldMap_trasp", name: "WorldMap (transparent)" });
	new MapLayerManagerNode(g2, { layer_id: "Demis_Overlay", name: "Vector Overlay" });



	OnLoadMapSetup(g_map);
//	Test();
	window.setTimeout(Tick, 10);
}
