function bloodAmt(form) {
        var wt = form.wt.value;
        var amt = form.amt.value;
        var sol = form.sol.value;
        var spgr = 0;   // specific gravity
        var vold = 0;   // volume of distribution


        if (!checkNum(wt,"WEIGHT")) {
		form.wt.focus();
		form.wt.select();
		return false
	}

        if (!checkNum(amt,"AMOUNT")) {
		form.amt.focus();
		form.amt.select();
		return false
	}

        //  Proof or Percent?
        //  0 = percent (range 0-100)
        //  1 = proof   (range 0-200)

        if (form.solu.selectedIndex == 0) {
                solumax = 100
        } else {
                solumax = 200
        }

	if (sol > solumax) {sol = Number.NaN}

        if (!checkNum(sol,"PERCENT/PROOF")) {
		form.sol.focus();
		form.sol.select();
		return false
	}


// Which substance was selected?
//      0 = Ethanol             2 = Ethylene Glycol
//      1 = Methanol            3 = Isopropyl Alcohol

        if (form.sub.selectedIndex == 0) {
                spgr = 0.79;
                vold = 0.53
        }
        if (form.sub.selectedIndex == 1) {
                spgr = 0.79;
                vold = 0.6
        }
        if (form.sub.selectedIndex == 2) {
                spgr = 1.11;
                vold = 0.83
        }
        if (form.sub.selectedIndex == 3) {
                spgr = 0.785;
                vold = 0.6
        }


// What units for "Weight"?
//      0 = kg          1 = lbs
        if (form.wu.selectedIndex == 1) {
                wt = wt * 0.45359237
        }


// What units for "Amount Ingested"?
//      0 = ml          1 = oz
        if (form.amtu.selectedIndex == 1) {
                amt = amt * 29.57303
        }


// "Percent Solution" or "Proof"?
//      0 = percent     1 = proof
        if (form.solu.selectedIndex == 1) {
                sol = sol / 2
        }


// Calculate the blood level:
//      bloodmg in mg/dl
//      bloodmmol in mmol/L

        bloodmg = (amt * sol * spgr) / (vold * wt);
        bloodmmol = bloodmg * 0.2171;

        bloodmg = rounding(bloodmg,2);
        bloodmmol = rounding(bloodmmol,2);

        form.bloodmg.value = bloodmg;
        form.bloodmmol.value = bloodmmol;

        return true
}

function checkNum(val,text) {
        if ((val == null) || (isNaN(val)) || (val == "") || (val < 0)) {
                alert("WARNING: Please enter a valid " + text + ".");
                return false
        }
        return true;
}

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