// Global Variables...
var co2ecost = 25;
var migsmultiplier = 100;
//--------------------

var http_request = false;
function makeRequest(url,parameters,lorf) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		// set type accordingly to anticipated content type
		//http_request.overrideMimeType('text/xml');
		http_request.overrideMimeType('text/html');
	 }
	} else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
	}
	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	if (lorf == 0) { http_request.onreadystatechange = legsum; } 
	if (lorf == 1) { http_request.onreadystatechange = tryagain; }
	if (lorf == 2) { http_request.onreadystatechange = confirmap; }
	if (lorf == 3) { http_request.onreadystatechange = target; }
	if (lorf == 4) { http_request.onreadystatechange = verifyPNROut; }
	
	if (lorf == 10) { http_request.onreadystatechange = airport0; }
	if (lorf == 11) { http_request.onreadystatechange = airport1; }
	
	http_request.open('GET', url + parameters, true);
	http_request.send(null);
}

function get(obj,phpstr,lorf) {
 var lorf = (lorf == null) ? 2 : lorf;
 var getstr = "?";
 ins = obj.getElementsByTagName('INPUT');
 sels = obj.getElementsByTagName('SELECT');
 pass = obj.getElementsByTagName('PASSWORD')
 for (i=0; i < ins.length; i++) {
	  getstr += ins[i].name + "=" + ins[i].value + "&";
 }
 for (i=0; i < sels.length; i++) {
	getstr += sels[i].name + "=" + sels[i].options[sels[i].selectedIndex].value + "&";
 }
 for (i=0; i < pass.length; i++) {
	   getstr += pass[i].name + "=" + pass[i].value + "&";
 }
 makeRequest(phpstr, getstr, lorf);
}

function legsum() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		//alert(http_request.responseText);
		var result = http_request.responseText;
		document.getElementById('legsum').innerHTML = result;
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}

function confirmap() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		//alert(http_request.responseText);
		var result = http_request.responseText;
		document.getElementById('confirm').innerHTML = result;
		setTimeout("document.getElementById('confirm').innerHTML = ''", 8000)
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}

function finaltot() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		//alert(http_request.responseText);
		var result = http_request.responseText;
		document.getElementById('final').innerHTML = result;
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}

function target() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			//alert(http_request.responseText);
			var result = http_request.responseText;
			document.getElementById('target').innerHTML = result;
		} else {
			alert('There was a problem with the request.');
		}
	}
}

function totaliser(co2tot,passno,persel,perc) {
	var temp = co2tot * passno.value * (perc.value/100) * persel.value;
	var totmon = Math.round(temp * co2ecost * 1000) / 1000;
	if ((totmon*10 - Math.round(totmon*10))*10 <= 2.5) {
		totmon = (Math.round(totmon * 10)/10);
	} else if ((totmon*10 - Math.round(totmon * 10))*10 <= 7.5) {
		totmon = (Math.round(totmon * 10)/10) + 0.05;
	} else {
		totmon = (Math.round(totmon * 10)/10) + 1 ;
	}
	var result = "<br><b>Total: $ " + totmon.toFixed(2) + " inc. GST<br><br><b>Total Emissions Offset: " + (Math.round(temp * 100)/100).toFixed(2) + " tons CO2e</b>"; 
	document.getElementById('final').innerHTML = result;
	document.getElementById('totmon').value = totmon;
	document.getElementById('totemi').value = Math.round(temp * 100)/100;
}

function getlegsum(obj) {
	if (obj.value.charAt(obj.value.length-1) != '\n') {
		obj.value += '\n';
	}
	var strarr = obj.value.split("\n");
	var leg = "?";
	var dist = "";
	var co2pl = "";
	var temp2=0;
	var temp=''; 
	var j = 0;
	var index = -1;
	var error = 0;
	
	if(obj.value.length == 0) { 
		error = 1;
	} else {
		for (var i = 0; i < strarr.length - 1; i++) {
			 if (strarr[i].length > 6) {
				 while('' + strarr[i].charAt(0) == ' ') {
					 strarr[i] = strarr[i].substring(1,strarr[i].length);
				 }
				 temp = strarr[i].substr(0,6);
				 leg += "leg" + i + "=" + temp + "&";
				 temp = strarr[i].substring(6,strarr[i].length-3);
				 temp2 = Math.round(parseInt(temp,10) / 0.6214);
				 dist += "dis" + i + "=" + temp2 + "&";
				 co2pl += "co2" + i + "=" + ((Math.round(co2(temp2) * 10000)) / 10000)  + "&";
				 if (temp2 == 0 || isNaN(temp2)) { error = 1; }
			 } else { error = 1;}
		}
	}
	if (error == 1) {
		var tatext="<font color='#EE0000'>This is text is not formatted<br>correctly!  Try Again... </font> ";
		document.getElementById('tryagain').innerHTML = tatext;
		setTimeout("document.getElementById('tryagain').innerHTML = ''", 3000)
	} else {
		makeRequest('include/getsum.php',leg + dist + co2pl,0);
}
}

function co2_per_km(routelength) {
  var RFI_IPCC=1.0;//http://www.grida.no/climate/ipcc/aviation/064.htm
  var RFI_3=3.0; // above 9000m, over 500km, under 9000m we use RFI=1
  var RFI_27=1.0; 
	
  var radiativeforcingindex_high=RFI_27; // above 9000m, over 500km, under 9000m we use RFI=1
  var radiativeforcingindex_low=1.0; // under 9000m we use RFI=1 - fuel only
  var _co2;
  
  if (routelength<500) { //shorthaul
	_co2=0.15; // kg co2 per passenger km //great : adjust fuel burn for climb
  } else if (routelength<1600) { //medium haul
	_co2=0.1194; // kg co2 per passenger km 
  } else {//long haul
	_co2=0.11; // kg co2 per passenger km 
  }	

  var kmwithhighRFI;
  var fractiontripwithhighRFI;//of trip
 
  _co2=radiativeforcingindex_high *_co2;

  return _co2;
}

function co2(routelength) {
	var co2_tonnes=(routelength*co2_per_km(routelength))/1000;
	return(co2_tonnes);
}

function verifyPNR(pnr) {
	if (pnr == '') document.getElementById("passnum").submit();
	else makeRequest("include/verifyPNR.php","?pnr=" + pnr,4);
}

function verifyPNROut() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			//alert(http_request.responseText);
			var result = http_request.responseText;
			if (result == 0) {
				document.getElementById("passnum").submit();
			} else if (result > 0) {
				result++;
				var pnr = document.getElementById("pnr").value;
				document.getElementById("pnr").value = pnr + "-" + result;
				if (confirm("The PNR that you entered already exists within the system.\nWould you like to use " + pnr + "-" + result + " ?")) {
					verifyPNR(pnr + "-" + result);
				} else {
					document.getElementById("pnr").value = "";
					document.getElementById("pnr").focus();
				}
			} else alert('There was a problem with the request...');
		} else {
			alert('There was a problem with the request.');
		}
	}
}

function reDirCC() {
	setTimeout("location.href='commercial.php?a=ngac'", 4000);
}
	