
var points =
[
	{ name:  "Basingstoke, UK", distance: 0, lat: -1.08402, lng: 51.26250 },
	{ name:  "Brighton, UK", distance: 84.53, lat: -0.13985, lng: 50.82090 },
	{ name:  "Calais, France", distance: 225.73, lat: 1.85252, lng: 50.95792 },
	{ name:  "Paris, Fra", distance: 461.23, lat: 2.35097, lng: 48.85660 },
	{ name:  "Bordeaux, Fr", distance: 965.63, lat: -0.57614, lng: 44.83737 },
	{ name:  "Barcelona, Spa", distance: 1403.73, lat: 2.16992, lng: 41.38790 },
	{ name:  "Marseille, Fra", distance: 1743.33, lat: 5.38322, lng: 43.29830 },
	{ name:  "Nice, Italy", distance: 1907.03, lat: 7.26627, lng: 43.70340 },
	{ name:  "Rome, Ita", distance: 2378.53, lat: 12.48230, lng: 41.89550 },
	{ name:  "Napoli, Ita", distance: 2560.83, lat: 14.25290, lng: 40.84000 },
	{ name:  "Bari, Ita", distance: 2786.53, lat: 16.86930, lng: 41.12610 },
	{ name:  "Tirane, Albania", distance: 3038.63, lat: 19.81722, lng: 41.33166 },
	{ name:  "Bitola, Macedonia", distance: 3169.33, lat: 21.33968, lng: 41.03118 },
	{ name:  "Thessalonia, Greece", distance: 3316.03, lat: 22.97255, lng: 40.62503 },
	{ name:  "Edirne, Turkey", distance: 3636.33, lat: 26.56048, lng: 41.68112 },
	{ name:  "Istanbul, Tur", distance: 3848.73, lat: 28.97593, lng: 41.01238 },
	{ name:  "Karabuk, Tur", distance: 4041.29, lat: 32.62265, lng: 41.18210 },
	{ name:  "Samsun, Tur", distance: 4234.35, lat: 36.33784, lng: 41.28972 },
	{ name:  "Trabzon, Tur", distance: 4411.94, lat: 39.71910, lng: 41.00610 },
	{ name:  "Sochi, Russia", distance: 4593.87, lat: 39.72250, lng: 43.61160 },
	{ name:  "Pyatigorsk, Rus", distance: 4761.21, lat: 43.05874, lng: 44.04591 },
	{ name:  "Elista, Rus", distance: 4928.48, lat: 44.25346, lng: 46.31296 },
	{ name:  "Astrakhan, Rus", distance: 5108.8, lat: 48.05272, lng: 46.35489 },
	{ name:  "Gurgev, Kazakhstan", distance: 5299.19, lat: 51.89941, lng: 46.89023 },
	{ name:  "Aktjubinsk, Kaz", distance: 5622.74, lat: 57.21680, lng: 50.09239 },
	{ name:  "Orsk, Rus", distance: 5715.2, lat: 58.62038, lng: 51.21838 },
	{ name:  "Rudnyy, Kaz", distance: 5940.2, lat: 63.01758, lng: 53.02800 },
	{ name:  "Petropavlovsk, Kaz", distance: 6216.83, lat: 69.14140, lng: 54.86650 },
	{ name:  "Omsk, Rus", distance: 6386.34, lat: 73.39380, lng: 54.97090 },
	{ name:  "Kuybyshev, Rus", distance: 6584.5, lat: 78.30463, lng: 55.45403 },
	{ name:  "Tomsk, Rus", distance: 6849.02, lat: 84.96255, lng: 56.46399 },
	{ name:  "Lesosibirsk, Rus", distance: 7156.04, lat: 92.46490, lng: 58.24210 },
	{ name:  "Chemdalsk, Rus", distance: 7555.02, lat: 103.33252, lng: 59.63312 },
	{ name:  "Kamakskaya, Rus", distance: 7842.46, lat: 111.57242, lng: 60.13234 },
	{ name:  "Lensk, Rus", distance: 7964.07, lat: 114.94537, lng: 60.72688 },
	{ name:  "Yakutsk, Rus", distance: 8460.6, lat: 129.74600, lng: 62.03930 },
	{ name:  "Khandyga, Rus", distance: 8652.3, lat: 135.56000, lng: 62.65600 },
	{ name:  "Artyk, Rus", distance: 8966.46, lat: 145.13074, lng: 64.18161 },
//	{ name:  "Ryzhovo, Rus", distance: 9238.56, lat: 144.14063, lng: 67.74276 },
	{ name:  "Aliskekerovo, Rus", distance: 9648.36, lat: 167.52847, lng: 67.77728 },
	{ name:  "Dezhnevo, Rus", distance: 10266.87, lat: -169.94508, lng: 66.04819 },
	{ name:  "Ikpek Lagoon, Alaska, US", distance: 10462.7, lat: -167.08101, lng: 65.90824 },
	{ name:  "McGrath, Ala, US", distance: 11103.4, lat: -155.55528, lng: 62.94756 },
	{ name:  "Anchorage, Ala, US", distance: 11454.2, lat: -149.89960, lng: 61.21658 },
	{ name:  "Whitehorse, Yukon, Canada", distance: 12254, lat: -135.05229, lng: 60.71969 },
	{ name:  "Tuneau, Ala, US", distance: 12518.1, lat: -134.27490, lng: 58.61978 },
	{ name:  "Terrace, British Columbia,    Canada", distance: 13080.4, lat: -128.58700, lng: 54.51650 },
	{ name:  "Prince George, BC, Can", distance: 13466.5, lat: -122.74972, lng: 53.91711 },
	{ name:  "Hinton, Alberta, Can", distance: 13810.3, lat: -117.57573, lng: 53.40251 },
	{ name:  "Edmonton, Alb, Can", distance: 14081.3, lat: -113.49400, lng: 53.54100 },
	{ name:  "Calgary, Alb, Can", distance: 14361.6, lat: -114.06300, lng: 51.04510 },
	{ name:  "Brooks, Alb, Can", distance: 14518.8, lat: -111.89716, lng: 50.57210 },
	{ name:  "Maple Creek, Saskatchewan, Can", distance: 14707.4, lat: -109.47302, lng: 49.90821 },
	{ name:  "Havre, Montana, US", distance: 14859.8, lat: -109.67700, lng: 48.54380 },
	{ name:  "Lewistown, Mon, US", distance: 15026.5, lat: -109.42903, lng: 47.06338 },
	{ name:  "Yellowstone National Park, Wyoming, US", distance: 15317.3, lat: -110.44900, lng: 44.80690 },
	{ name:  "Idaho Falls, Idaho, US", distance: 15486.2, lat: -112.03909, lng: 43.49084 },
	{ name:  "Salt Lake City, Utah, US", distance: 15789, lat: -111.88800, lng: 40.77160 },
	{ name:  "Clifton, Colorado, US", distance: 16137.5, lat: -108.45944, lng: 39.07728 },
	{ name:  "Santa Fe, New Mexico, US", distance: 16578.3, lat: -105.93807, lng: 35.68162 },
	{ name:  "El Paso, Mexico", distance: 17064.6, lat: -106.49100, lng: 31.76320 },
	{ name:  "Chihuahua, Mex", distance: 17414.4, lat: -106.06750, lng: 28.63275 },
	{ name:  "Torreon, Mex", distance: 17847.2, lat: -103.44057, lng: 25.54466 },
	{ name:  "San Luis, Mex", distance: 18295.8, lat: -100.97502, lng: 22.14986 },
	{ name:  "Queretaro, Mex", distance: 18483.6, lat: -100.56885, lng: 20.63278 },
	{ name:  "Mexico City, Mex", distance: 18668.8, lat: -99.12760, lng: 19.42700 },
	{ name:  "Codoba, Mex", distance: 18907.3, lat: -96.92310, lng: 18.89006 },
	{ name:  "Coatzacoalcos, Mex", distance: 19185, lat: -94.41271, lng: 18.14045 },
	{ name:  "Palerique, Mex", distance: 19457, lat: -91.98129, lng: 17.50885 },
	{ name:  "Coban, Mex", distance: 19739.3, lat: -90.26310, lng: 14.87454 },
	{ name:  "Santa Ana, Mex", distance: 19923.8, lat: -89.54372, lng: 13.98504 },
	{ name:  "Tegucigalpa, Honduras", distance: 20179.9, lat: -87.17920, lng: 14.08580 },
	{ name:  "Managua, Nicaragua", distance: 20410.9, lat: -86.27339, lng: 12.14746 },
	{ name:  "San Miguel, Costa Rica", distance: 20711.7, lat: -84.18214, lng: 10.30944 },
	{ name:  "Puerto Armuelles, Panama", distance: 20986.9, lat: -82.86250, lng: 8.27870 },
	{ name:  "Santiago, Pan", distance: 21193, lat: -80.98333, lng: 8.10000 },
	{ name:  "Pacora, Pan", distance: 21409.3, lat: -79.36851, lng: 9.10746 },
	{ name:  "Monteria, Columbia", distance: 21783, lat: -75.88734, lng: 8.75979 },
	{ name:  "Ocana, Col", distance: 22068.8, lat: -73.35671, lng: 8.23342 },
	{ name:  "Paz de Aripora, Col", distance: 22373.6, lat: -71.89356, lng: 5.88290 },
	{ name:  "La Primavero, Col", distance: 22542.1, lat: -70.39027, lng: 5.49042 },
	{ name:  "Puerto Ayacucho, Venezuela", distance: 22851.3, lat: -67.63470, lng: 5.66578 },
	{ name:  "Boa Vista, Brazil", distance: 23682.4, lat: -60.69684, lng: 2.82582 },
	{ name:  "Macapa, Bra", distance: 24792.64, lat: -51.06656, lng: 0.03446 },
	{ name:  "Belem, Bra", distance: 25121.8, lat: -48.50237, lng: -1.45502 },
	{ name:  "Braganca, Bra", distance: 25317.3, lat: -46.78951, lng: -1.06595 },
	{ name:  "Bopolu, Liberia", distance: 33240.6, lat: -10.48929, lng: 7.07140 },
	{ name:  "Artes, Lib", distance: 33332.36, lat: -10.55786, lng: 7.70555 },
	{ name:  "Kudu, Sierra Leone", distance: 33479.86, lat: -10.36762, lng: 8.44934 },
	{ name:  "Faranah, Guinea", distance: 33667.46, lat: -10.74335, lng: 10.03901 },
	{ name:  "Badoumbe, Mali", distance: 34071.36, lat: -10.20355, lng: 13.63731 },
	{ name:  "Ayoun El Atrous, Mauritius", distance: 34412.56, lat: -9.61724, lng: 16.66101 },
	{ name:  "Tichit, Mau", distance: 34610.26, lat: -9.49577, lng: 18.44005 },
	{ name:  "Naga, Algeria", distance: 35789.26, lat: -7.52249, lng: 28.41870 },
	{ name:  "Marrakech, Morocco", distance: 36150.86, lat: -8.01750, lng: 31.63730 },
	{ name:  "Gibraltar", distance: 36690.46, lat: -5.34537, lng: 36.13770 },
	{ name:  "Sevilla, Spain", distance: 36843.46, lat: -5.99650, lng: 37.38330 },
	{ name:  "Madrid, Spa", distance: 37234.66, lat: -3.70327, lng: 40.41670 },
	{ name:  "Santander, Spa", distance: 37572.76, lat: -3.80793, lng: 43.46100 },
	{ name:  "San Sebastian, Spa", distance: 37782.36, lat: -1.98445, lng: 43.32073 },
	{ name:  "La Rochelle, France", distance: 38037.86, lat: -1.15364, lng: 46.15810 },
	{ name:  "Nantes, Fra", distance: 38164.66, lat: -1.55674, lng: 47.21680 },
	{ name:  "Rennes, Fra", distance: 38264.06, lat: -1.68026, lng: 48.11180 },
	{ name:  "Jersey", distance: 38391.06, lat: -2.13125, lng: 49.21440 },
	{ name:  "Guernsey", distance: 38434.46, lat: -2.60925, lng: 49.47169 },
	{ name:  "Plymouth, UK", distance: 38584.98, lat: -4.14265, lng: 50.37040 },
	{ name:  "Exeter, UK", distance: 38643.17, lat: -3.53362, lng: 50.72180 },
	{ name:  "Cardiff, UK", distance: 38730.02, lat: -3.18050, lng: 51.48130 },
	{ name:  "Birmingham, UK", distance: 38872.72, lat: -1.89362, lng: 52.48290 },
	{ name:  "Manchester, UK", distance: 38985.22, lat: -2.23438, lng: 53.48070 },
	{ name:  "Carlisle, UK", distance: 39148.12, lat: -2.93357, lng: 54.89510 },
	{ name:  "Edinburgh, UK", distance: 39267.22, lat: -3.18761, lng: 55.95030 },
	{ name:  "Newcastle, UK", distance: 39414.22, lat: -1.61292, lng: 54.97780 },
	{ name:  "Leeds, UK", distance: 39546.62, lat: -1.54911, lng: 53.79960 },
	{ name:  "Nottingham, UK", distance: 39643.94, lat: -1.14931, lng: 52.95510 },
	{ name:  "Newton Longville, UK", distance: 39753.04, lat: -0.76598, lng: 51.97459 },
	{ name:  "Westminster, London, UK", distance: 39822.19, lat: -0.13184, lng: 51.79503 },
	{ name:  "Slough, UK", distance: 39854.53, lat: -0.59545, lng: 51.50935 },
	{ name:  "Reading, UK", distance: 39880.74, lat: -0.96909, lng: 51.45500 },
	{ name:  "Newbury, UK", distance: 39906.61, lat: -1.32186, lng: 51.40040 },
	{ name:  "Andover, UK", distance: 39929.84, lat: -1.47835, lng: 51.20932 },
	{ name:  "Winchester, UK", distance: 39949.4, lat: -1.31650, lng: 51.06290 },
	{ name:  "Aldershot, UK", distance: 39992.58, lat: -0.76621, lng: 51.24690 },
	{ name:  "Guildford, UK", distance: 40005.63, lat: -0.57031, lng: 51.23650 },
	{ name:  "Woking, UK", distance: 40019.43, lat: -0.55908, lng: 51.31681 },
	{ name:  "Bracknell, UK", distance: 40032.01, lat: -0.74648, lng: 51.41700 },
	{ name:  "Farnborough, UK", distance: 40043.45, lat: -0.75462, lng: 51.29400 },
	{ name:  "Tadley, UK", distance: 40063.31, lat: -1.12874, lng: 51.35019 },
	{ name:  "Basingstoke, UK", distance: 40073.33, lat: -1.08402, lng: 51.26250 }
]








	


	function load() 
	{



		if (GBrowserIsCompatible()) 
		{

			/* WWRStatus Control */
			function WWRStatusControl( distance, total )
			{
				this.distance = distance
				this.total = total
			}

			WWRStatusControl.prototype = new GControl();

			WWRStatusControl.prototype.initialize = function(map)
			{
				function createLegend( caption, distance, colour )
				{

					var div = document.createElement("div");

					var line = document.createElement("span")
					var textCaption = document.createElement("span")
					var distanceCaption = document.createElement("span")

					textCaption.appendChild(document.createTextNode(caption));
					distanceCaption.appendChild(document.createTextNode(distance));

					div.style.position="relative";
					div.style.height="1.2em";
					
					line.style.position = "absolute"
					line.style.top = "50%"
					line.style.backgroundColor = colour
					line.style.width = "30px"
					line.style.height = "4px"
					line.style.overflow = "hidden"
					line.style.marginTop = "-2px"

					textCaption.style.position="absolute"
					textCaption.style.left="40px"
					
					distanceCaption.style.position="absolute"
					distanceCaption.style.right="0"
					
					div.appendChild(line)
					div.appendChild(textCaption)
					div.appendChild(distanceCaption)


//					div.style.borderLeft = "16px solid " + colour
					div.style.color = colour
					container.appendChild(div);
					return div
				
				
				}
				
				
				var container = document.createElement("div");
				container.style.width = "200px"
				container.style.fontSize = "12px"
				container.style.padding = "4px 10px"
				container.style.border = "1px solid #444"
				container.style.background = "#fff"
				//container.style.background = "rgba(255,255,255,0.75)"
				container.style.lineHeight = "1.2em"
				
				createLegend("Distance Rowed", formatNumber(this.distance)+" km", "#33aa33")
				createLegend("Distance Left", formatNumber(this.total - this.distance)+" km", "#dd3333")

				map.getContainer().appendChild(container);
				return container;
			}

			WWRStatusControl.prototype.getDefaultPosition = function() 
			{
				return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 7));
			}







			function formatNumber(n)
			{
				return (n+"").replace(/^(\d+)(\d{3})/g,"$1,$2").replace(/(\..*)$/,"")
				return (n+"").replace(/^(\d+)(\d{3})/g,"$1,$2").replace(/(\.\d)$/,"$10").replace(/(\.\d{2})\d*$/,"$1")
			}


			function createMarker( props, point ) 
			{
				var marker = new GMarker(point);
				GEvent.addListener(marker, "click", function()
				{
					var html = ""
					for (var prop in props)
					{ 
						html += "<b>"+ prop + "<br/></b>" + props[prop] + "<br/><br/>"
					}
					marker.openInfoWindowHtml( html );
				});
				return marker;
			}

			var map = new GMap2(document.getElementById("map"));

			var completedPoints = [];
			var remainingPoints = [];
			
			for (var c=0; c<points.length; c++)
			{
				var point = points[c]
				var gpoint = new GLatLng(point.lng, point.lat)
				
				if (c<=currentMapPointIndex)
				{
					completedPoints[c] = gpoint
				}
				if (c==0)
				{
					map.addOverlay(createMarker( {"Start / Finish Point": point.name }, gpoint ));
				}
				if (c==currentMapPointIndex)
				{
					var marker = createMarker( {
						"Current Location": point.name/*, 
						"Distance Rowed": formatNumber(point.distance) + " km", 
						"Distance Left": formatNumber(points[points.length-1].distance - point.distance) + " km"*/
					}, gpoint )
					map.addOverlay(marker);
					GEvent.trigger(marker,"click")
					map.setCenter(gpoint, 2);
				}
				if (c>=currentMapPointIndex)
				{
					remainingPoints[c] = gpoint
				
				} 


			}

			map.addControl(new GSmallMapControl());
			map.addControl(new WWRStatusControl( points[completedPoints.length-1].distance, points[points.length-1].distance ));



			map.addOverlay( new GPolyline(completedPoints, "#006600", 5, 0.65, {geodesic:true}) );
			map.addOverlay( new GPolyline(remainingPoints, "#CC0000", 5, 0.65, {geodesic:true}) );
			
			
			
		}
	}
