function bmi(meter, kilogram) {
          bmindx = (kilogram * 10 / meter / meter) / 10;
          return bmindx;
}
function checkform(form) {
       if (form.kilogram.value==null||form.kilogram.value.length==0 || form.meter.value==null||form.meter.value.length==0){
            alert("\nPlease fill out all fields !");
            return false;
       }
       else if (parseFloat(form.meter.value) <= 0||
                parseFloat(form.meter.value) >=3||
                parseFloat(form.kilogram.value) <= 10||
                parseFloat(form.kilogram.value) >=300){
                alert("The data are invalid \nYour weight in kilogram (kg) should be between 10 and 300 kg and \nyour length between 0 and 3 meter (m).");
                return false;
       }
       return true;
}

function computeform(form) {
		
		iMeter = form.meter.value.replace(",",".");
		iKilo = form.kilogram.value.replace(",",".");
			
		if (!checkLengte(iMeter,"LENGTH")) {
			form.meter.select();
			form.meter.focus();
			return false
		}	
		if (!checkKilo(iKilo,"WEIGHT")) {
			form.kilogram.select();
			form.kilogram.focus();
			return false
		}	

			yourbmi=rounding(bmi(iMeter, iKilo),1);
			form.calcval.value=yourbmi;

			if (form.geslacht[1].checked) { //  Is the patient female?  0 = male  1 = female
				leanFactor = 1.1
				leanConvert = 148;
				idealConvert = 45.5;	//  conversion factors for women
			} else {
		    	leanFactor = 1.15
				leanConvert = 128;
				idealConvert = 50;	//  conversion factors for men
			}
		
			heightInches=iMeter * 100 / 2.54;
			var idealKg=rounding(idealConvert + 2.3 * (heightInches - 60),1);
			var leanKg=rounding(18.5 * (iMeter * iMeter),1);
			var maxiKg=rounding(24.9 * (iMeter * iMeter),1);
			//var leanKg=rounding((leanFactor * iKilo) - (leanConvert * (Math.pow(iKilo,2) / Math.pow((100 * iMeter),2))),1);
			form.idealKg.value=idealKg;
			form.leanKg.value=leanKg;
			form.maxKg.value=maxiKg;			
	   
	   		if (yourbmi >40) {
          		form.comment.value="Severe overweight, morbid obese.";
				}
				else if (yourbmi >30 && yourbmi <=40) {
				form.comment.value="Serious overweight, obese.";
				}
					else if (yourbmi >27 && yourbmi <=30) {
					form.comment.value="Slight overweight";
					}
						else if (yourbmi >=25 && yourbmi <=27) {
						form.comment.value="Tendency for overweight";
						}
							else if (yourbmi >=18.5 && yourbmi <=25) {
							form.comment.value="Healthy, normal weight";
							}
								else if (yourbmi <18.5) {
								form.comment.value="Too low weight (increased health risk).";
								}
	return true
}

function checkLengte(val,text) {
        if ((val == null) || (isNaN(val)) || (val == "") || (val < 0) || (val > 3)) {
		alert("Please enter a correct value for " + text + ".");
                return false
        }
        return true;
}
function checkKilo(val,text) {
        if ((val == null) || (isNaN(val)) || (val == "") || (val < 0) || (val > 300)) {
		alert("Please enter a correct value for " + text + ".");
                return false
        }
        return true;
}

function bmiCalc(form) {
    var weight = Number(form.wt.value);
	var height = Number(form.ht.value);

	if (!checkNum(weight,"WEIGHT")) {
		form.wt.select();
		form.wt.focus();
		return false
	}

	if (!checkNum(height,"HEIGHT")) {
		form.ht.select();
		form.ht.focus();
		return false
	}

        if (form.wu.selectedIndex == 0) {
                                        //  What units for weight?
                                        //  0 = lbs
                                        //  1 = kg
                weight = weight * 0.45359237;	//  Convert wt (lbs to kg)
        }

        if (form.sex[1].checked) {      //  Is the patient female?
                                        //  0 = male
                                        //  1 = female
        leanFactor = 1.07 
		leanConvert = 148;
		idealConvert = 45.5;	//  conversion factors for women
        } else {
        leanFactor = 1.1 
		leanConvert = 128;
		idealConvert = 50;	//  conversion factors for men
	}

	if (form.hu.selectedIndex == 0) {  
		// if height units are "inches"
		heightInches = height;
		heightMeters = height * 2.54 / 100;
	}

	if (form.hu.selectedIndex == 1) {  
				//  if height units are "cm"
		heightInches = height / 2.54;
		heightMeters = height / 100;
	}

	if (form.hu.selectedIndex == 2) {  
				//  if height units are "meters"
		heightInches = height * 100 / 2.54;
		heightMeters = height;
	}


	var bsa = 0.20247 * Math.pow(heightMeters,0.725) * Math.pow(weight,0.425);
	var leanKg = (leanFactor * weight) - (leanConvert * (Math.pow(weight,2) / Math.pow((100 * heightMeters),2)));
	var leanLbs = leanKg * 2.2046226;
	var idealKg = idealConvert + 2.3 * (heightInches - 60);
	var idealLbs = idealKg * 2.2046226;
	var bmi = weight / Math.pow(heightMeters,2);

	bsa = rounding(bsa,2);
	leanKg = Math.round(leanKg);
	leanLbs = Math.round(leanLbs);
	idealKg = Math.round(idealKg);
	idealLbs = Math.round(idealLbs);
	bmi = rounding(bmi,1);

	if (bmi < 18.5) {
		var interp = "Underweight"
	} else {
		if (bmi < 25.0) {
			var interp = "Normal"
		} else {
			if (bmi < 30.0) {
				var interp = "Overweight"
			} else {
				var interp = "Obese"
			}
		}
	}

        form.bsa.value = bsa;
        form.leanKg.value = leanKg;
	form.leanLbs.value = leanLbs;
        form.idealKg.value = idealKg;
	form.idealLbs.value = idealLbs;
        form.bmi.value = bmi;
	form.interp.value = interp;

	return true
}


function rounding(number,decimal) {
	multiplier = Math.pow(10,decimal);
	number = Math.round(number * multiplier) / multiplier;
        return number
}