/*
v 1.1
js file by wally
03/03/08
*/

function legCenter (dep,cur){
		avgLat = ((dep.lat() + cur.lat()) / 2);
		avgLng = ((dep.lng() + cur.lng()) /2);
		return new GLatLng(avgLat, avgLng);	
}
	
	//Airport Data (KPWK lat=42.1142 long=-87.9014 thanks to Airnav.com!
	var KPWK = new GLatLng(42.1142, -87.9014);  	//Original Departure
	var CYQB = new GLatLng(46.791582, -71.383924);	//Quebec, Canada -- Québec City Jean Lesage International Airport http://www.aeroportdequebec.com/Html/en-ca/index.shtml
	var CYYR = new GLatLng(53.319786, -60.420771);	//Goose Bay, Canada -- Canadian Forces Base Goose Bay http://en.wikipedia.org/wiki/CFB_Goose_Bay
	var BGBW = new GLatLng(61.160517, -45.425978);	//Narssarssuaq, Greenland
	var BIRK = new GLatLng(64.130000, -21.940556);	//Reykjavik, Iceland
	var EGPK = new GLatLng(55.509444, -4.586667);	//Prestwick, UK
	var EHLE = new GLatLng(52.460278, 5.527222);	//Lelystad, Netherlands
	var LKPR = new GLatLng(50.100833, 14.260000);	//Prague, Czech Republic
	var LRBS = new GLatLng(44.503194, 26.102111);	//Bucharest, Romania
	var LCLK = new GLatLng(34.875117, 33.624850);	//Larnaca, Cyprus
	var HESH = new GLatLng(27.977286, 34.394950);	//Sharm El Sheikh, Egypt
	var OEMA = new GLatLng(24.553422, 39.705061);	//Madinah, Saudi Arabia
	var OERK = new GLatLng(24.957640, 46.698776);	//Riyadh, Saudi Arabia
	var OMDB = new GLatLng(25.252778, 55.364444);	//Dubai, UAE
	var OOMS = new GLatLng(23.593278, 58.284444);	//Muscat, Oman
	var OPKC = new GLatLng(24.906547, 67.160797);	//Karachi, Pakistan
	var VIDP = new GLatLng(28.566500, 77.103088);	//New Delhi, India
	var VECC = new GLatLng(22.654739, 88.446722);	//Calcutta, India
	var VTBD = new GLatLng(13.912583, 100.606750);	//Bangkok, Thailand
	var VVNB = new GLatLng(21.221192, 105.807178);	//Hanoi, Vietnam
	var VHHH = new GLatLng(22.308919, 113.914603);	//Hong Kong
	var RCTP = new GLatLng(25.077731, 121.232822);	//Chiang, Tiawan
	var ROAH = new GLatLng(26.195814, 127.645869);	//Okinawa, Japan
	var RJGG = new GLatLng(34.858414, 136.805408);	//Nagoya, Japan
	var RJCC = new GLatLng(42.775200, 141.692283);	//Sapporo-New Chitose, Japan
	var UHPP = new GLatLng(53.167889, 158.453669);	//Petropavlovsk, Russia
	var UHMA = new GLatLng(64.734950, 177.741483);	//Anadyr, Russia
	var RUSSIADATELINE = new GLatLng(64.899939, 179.8999)	// for unhappy dateline
	var USDATELINE = new GLatLng(64.899939, -179.8999)		// unhappy dateline
	var PAOM = new GLatLng(64.512203, -165.445247);	//Nome, Alaska
	var PAYA = new GLatLng(59.503306, -139.660250);	//Yakutat, Alaska -- FAA ID could be YAK?
	var CYEG = new GLatLng(53.309723, -113.579722);	//Edmonton, Canada
	var KMOT = new GLatLng(48.259378, -101.280333);	//Minot, North Dakota
	var KMDW = new GLatLng(41.78722, -87.75267);	//Chicago, Illinois
	
    function load() {
      if (GBrowserIsCompatible()) {
		G_PHYSICAL_MAP.getMinimumResolution = function () { return 2 };
        G_NORMAL_MAP.getMinimumResolution = function () { return 2 }; 
	  	//create the map
        var map = new GMap2(document.getElementById("wcf_track"));
		var location_departure = KPWK;			//set most recent departure info
		var location_current = CYQB;			//set most recent arrival info
		
		//compute middle of current leg
		var current_center = legCenter(location_departure, location_current);
		
			map.addControl(new GLargeMapControl());					//nice controls =)
			map.setCenter(current_center, 4);						//center map on current leg center, zoom
	
			map.addOverlay(new GMarker(KPWK));
			map.addOverlay(new GMarker(CYQB));
			map.addOverlay(new GMarker(CYYR));
			map.addOverlay(new GMarker(BGBW));
			map.addOverlay(new GMarker(BIRK));
			map.addOverlay(new GMarker(EGPK));
			map.addOverlay(new GMarker(EHLE));
			map.addOverlay(new GMarker(LKPR));
			map.addOverlay(new GMarker(LRBS));
			map.addOverlay(new GMarker(LCLK));
			map.addOverlay(new GMarker(HESH));
			map.addOverlay(new GMarker(OEMA));
			map.addOverlay(new GMarker(OERK));
			map.addOverlay(new GMarker(OMDB));
			map.addOverlay(new GMarker(OOMS));
			map.addOverlay(new GMarker(OPKC));
			map.addOverlay(new GMarker(VIDP));
			map.addOverlay(new GMarker(VECC));
			map.addOverlay(new GMarker(VTBD));
			map.addOverlay(new GMarker(VVNB));
			map.addOverlay(new GMarker(VHHH));
			map.addOverlay(new GMarker(RCTP));
			map.addOverlay(new GMarker(ROAH));
			map.addOverlay(new GMarker(RJGG));
			map.addOverlay(new GMarker(UHPP));
			map.addOverlay(new GMarker(UHMA));
			map.addOverlay(new GMarker(PAOM));
			map.addOverlay(new GMarker(PAYA));
			map.addOverlay(new GMarker(CYEG));
			map.addOverlay(new GMarker(KMOT));
			map.addOverlay(new GMarker(KMDW));
			
			map.openInfoWindow(location_current, document.createTextNode("Next stop: Quebec, Canada"));		//arrival airport information
		
		
		
		//plot current great circle	
		var polyOptions = {geodesic:true};		//make it a great circle
		//leg line values (make even line color #000, odd #cc0000 plz, current always #0b9b00)
		var leg_current = new GPolyline([location_departure,location_current], "#0b9b00", 3, 1, polyOptions);  //polyline([pointa, pointb], color, px width, opacity 0-1)
		/*var leg_0 = new GPolyline([KPWK,CYQB], "#000", 3, 0, polyOptions); 
		var leg_1 = new GPolyline([CYQB,CYYR], "#ff9900", 3, .8, polyOptions); 
		var leg_2 = new GPolyline([CYYR,BGBW], "#ff9900", 3, .8, polyOptions);
		var leg_3 = new GPolyline([BGBW,BIRK], "#ff9900", 3, .8, polyOptions);
		var leg_4 = new GPolyline([BIRK,EGPK], "#ff9900", 3, .8, polyOptions);
		var leg_5 = new GPolyline([EGPK,EHLE], "#ff9900", 3, .8, polyOptions);
		var leg_6 = new GPolyline([EHLE,LKPR], "#ff9900", 3, .8, polyOptions);
		var leg_7 = new GPolyline([LKPR,LRBS], "#ff9900", 3, .8, polyOptions);
		var leg_8 = new GPolyline([LRBS,LCLK], "#ff9900", 3, .8, polyOptions);
		var leg_9 = new GPolyline([LCLK,HESH], "#ff9900", 3, .8, polyOptions);
		var leg_10 = new GPolyline([HESH,OEMA], "#ff9900", 3, .8, polyOptions);
		var leg_11 = new GPolyline([OEMA,OERK], "#ff9900", 3, .8, polyOptions);
		var leg_12 = new GPolyline([OERK,OMDB], "#ff9900", 3, .8, polyOptions);
		var leg_13 = new GPolyline([OMDB,OOMS], "#ff9900", 3, .8, polyOptions);
		var leg_14 = new GPolyline([OOMS,OPKC], "#ff9900", 3, .8, polyOptions);
		var leg_15 = new GPolyline([OPKC,VIDP], "#ff9900", 3, .8, polyOptions);
		var leg_16 = new GPolyline([VIDP,VECC], "#ff9900", 3, .8, polyOptions);
		var leg_17 = new GPolyline([VECC,VTBD], "#ff9900", 3, .8, polyOptions);
		var leg_18 = new GPolyline([VTBD,VVNB], "#ff9900", 3, .8, polyOptions);
		var leg_19 = new GPolyline([VVNB,VHHH], "#ff9900", 3, .8, polyOptions);
		var leg_20 = new GPolyline([VHHH,RCTP], "#ff9900", 3, .8, polyOptions);
		var leg_21 = new GPolyline([RCTP,ROAH], "#ff9900", 3, .8, polyOptions);
		var leg_22 = new GPolyline([ROAH,RJGG], "#ff9900", 3, .8, polyOptions);
		var leg_23 = new GPolyline([RJGG,RJCC], "#ff9900", 3, .8, polyOptions);
		var leg_24 = new GPolyline([RJCC,UHPP], "#ff9900", 3, .8, polyOptions);
		var leg_25 = new GPolyline([UHPP,UHMA], "#ff9900", 3, .8, polyOptions);
		//var leg_26 = new GPolyline([UHMA,PAOM], "#ff9900", 3, .8, polyOptions);
		var leg_27 = new GPolyline([PAOM,PAYA], "#ff9900", 3, .8, polyOptions);
		var leg_28 = new GPolyline([PAYA,CYEG], "#ff9900", 3, .8, polyOptions);
		var leg_29 = new GPolyline([CYEG,KMOT], "#ff9900", 3, .8, polyOptions);
		var leg_30 = new GPolyline([KMOT,KMDW], "#ff9900", 3, .8, polyOptions);
		var leg_31 = new GPolyline([UHMA,RUSSIADATELINE], "#ff9900", 3, .8, polyOptions);
		var leg_32 = new GPolyline([USDATELINE,PAOM], "#ff9900", 3, .8, polyOptions);
		
		*/
		
			//create leg lines
			map.addOverlay(leg_current);
			/*map.addOverlay(leg_0);
			map.addOverlay(leg_1);
			map.addOverlay(leg_2);
			map.addOverlay(leg_3);
			map.addOverlay(leg_4);
			map.addOverlay(leg_5);
			map.addOverlay(leg_6);
			map.addOverlay(leg_7);
			map.addOverlay(leg_8);
			map.addOverlay(leg_9);
			map.addOverlay(leg_10);
			map.addOverlay(leg_11);
			map.addOverlay(leg_12);
			map.addOverlay(leg_13);
			map.addOverlay(leg_14);
			map.addOverlay(leg_15);
			map.addOverlay(leg_16);
			map.addOverlay(leg_17);
			map.addOverlay(leg_18);
			map.addOverlay(leg_19);
			map.addOverlay(leg_20);
			map.addOverlay(leg_21);
			map.addOverlay(leg_22);
			map.addOverlay(leg_23);
			map.addOverlay(leg_24);
			//map.addOverlay(leg_25);
			//map.addOverlay(leg_26); // doesnt like this part... crossing int'l date line...
			map.addOverlay(leg_27);
			map.addOverlay(leg_28);
			map.addOverlay(leg_29);
			map.addOverlay(leg_30);
			map.addOverlay(leg_31);
			map.addOverlay(leg_32);*/
			
			

      }
    }
	
	
