function calcGFR(form) {
	var age = form.age.value
	var weight = form.weight.value
	var wtUnits = form.wtUnits.selectedIndex
	var cr = form.cr.value
	var bun = form.bun.value
	var alb = form.alb.value
	var sex = form.sex.selectedIndex
	var race = form.race.selectedIndex
	
	var sexFactor, raceFactor, cgGFR, mdrdGFR

	if ((age == "") || (age <=0) || (isNaN(age))) {
		alert("Please enter the patient's age.");
		form.age.focus();
		form.age.select();
		return false;
	}
	
	if ((weight == "") || (weight <=0) || (isNaN(weight))) {
		alert("Please enter the patient's weight.");
		form.weight.focus();
		form.weight.select();
		return false;
	}

	if ((cr == "") || (cr <=0) || (isNaN(cr))) {
		alert("Please enter the serum creatinine.");
		form.cr.focus();
		form.cr.select();
		return false;
	}

	if (bun != "" && (bun <=0 || isNaN(bun))) {
		alert("Please enter the serum BUN.");
		form.bun.focus();
		form.bun.select();
		return false;
	}

	if (alb != "" && (alb <=0 || isNaN(alb))) {
		alert("Please enter the serum albumin.");
		form.alb.focus();
		form.alb.select();
		return false;
	}
	
	
// Convert pounds to kilograms
	if (wtUnits == 0) {weight = weight * 0.4535924}

	if (sex == 0) {sexFactor = 0.762} else {sexFactor = 1}		// Correction factor for sex
	if (race == 0) {raceFactor = 1.180} else {raceFactor = 1}	// Correction factor for race


// Cockcroft-Gault GFR
	cgGFR = ((140 - age) * weight) / (cr * 72);
	if (sex == 0) {cgGFR *= 0.85};							// Correction factor for women
	cgGFR = roundNum(cgGFR,1);
	form.cgGFR.value = cgGFR;


// MDRD GFR
	if (alb && bun) {
		mdrdGFR = 170 * Math.pow(cr,-0.999) * Math.pow(age,-0.176) * Math.pow(bun,-0.170) * Math.pow(alb,0.318) * sexFactor * raceFactor;
		mdrdGFR = roundNum(mdrdGFR,1);
		form.mdrdGFR.value = mdrdGFR;
	} else {form.mdrdGFR.value = "";}

return true;
}

function roundNum(thisNum,dec) {
	thisNum = thisNum * Math.pow(10,dec)
	thisNum = Math.round(thisNum)
	thisNum = thisNum / Math.pow(10,dec)
	return thisNum
}

