function gradCalc(form) {
	var pao2 = form.pao2.value;
	var paco2 = form.paco2.value;
	var patm = form.patm.value;
	var fio2 = form.fio2.value;
	var r = 0.8
	var ph2o = 47


	if (!checkNum(pao2)) {
		alert("WARNING: Please enter the PaO2");
		form.pao2.select();
		form.pao2.focus();
		return false
	}

	if (!checkNum(paco2)) {
		alert("WARNING: Please enter the PaCO2");
		form.paco2.focus();
		form.paco2.select();
		return false
	}

	if ((patm == "") || (patm == null) || (isNaN(patm))) {
		alert("WARNING: Please enter the Patm");
		form.patm.select();
		form.patm.focus();
		return false
	}

	if ((form.patt[1].checked) && (!checkNum(fio2))) {
		alert("WARNING: Please enter the FiO2");
		form.fio2.select();
		form.fio2.focus();
		return false
	}

	// Atmospheric pressure:  0 = mmHg (no calculations)
	//			  1 = altitude in feet
	//			  2 = altitude in meters
	if (form.patmu.selectedIndex == 1) {
		patm = FttoM(patm);	// Convert foot to meters
		patm = MtoHg(patm);	// Convert meters to mmHg
	}
	if (form.patmu.selectedIndex == 2) {
		patm = MtoHg(patm);	// Convert meters to mmHg
	}


// Calculate FiO2
	// patt[0] = room air
	// patt[1] = other

	// If on room air...	
	if (form.patt[0].checked) {
		fio2 = 21;
	}

	// If using "oxygen delivered (L/min)"...
	if ((form.patt[1].checked) && (form.fio2u.selectedIndex == 1)) {
		fio2 = 21 + (3 * fio2);
	}

	fio2 = fio2 / 100	// Convert to percentage		


// Calculate A-a gradient
	var aagrad = (fio2 * (patm - ph2o)) - (paco2 / r) - pao2;
	aagrad = rounding(aagrad,2);

	form.aagrad.value = aagrad;
	return true;
}


function FttoM(feet) {
	var meters = feet * 0.3048;
	return meters;
}


function MtoHg(meters) {
	var mmhg = 760 * Math.exp((-meters)/7924);
	return mmhg;
}


function checkNum(val) {
        if ((val == null) || (isNaN(val)) || (val == "") || (val < 0)) {
                return false
        }
        return true;
}

function rounding(number,decimal) {
        multiplier = Math.pow(10,decimal);
        number = Math.round(number * multiplier) / multiplier;
        return number
}
