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("\nU heeft niet alles ingevult!");
            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("unrichtig.");
                return false;
       }
       return true;
}

function computeform(form) {
	
		var f = document.getElementById(form);
		
		iMeter = f.meter.value.replace(",",".");
		iKilo = f.kilogram.value.replace(",",".");
			
		if (!checkLengte(iMeter,"Größe")) {
			f.meter.select();
			f.meter.focus();
			return false
		}	
		if (!checkKilo(iKilo,"Gewicht")) {
			f.kilogram.select();
			f.kilogram.focus();
			return false
		}	

			yourbmi=rounding(bmi(iMeter, iKilo),1);
			f.calcval.value=yourbmi;

			if (f.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 calKg=rounding(iKilo - idealKg,1);
			//var leanKg=rounding((leanFactor * iKilo) - (leanConvert * (Math.pow(iKilo,2) / Math.pow((100 * iMeter),2))),1);
			f.idealKg.value=idealKg;
			f.leanKg.value=leanKg;
			f.maxKg.value=maxiKg;
			f.calKg.value=calKg;
	   
	   		if (yourbmi >40) {
          		f.comment.value="Sehr ungesundes Übergewicht. Sorgen Sie dafür, daß Ihr BMI nicht höher wird. Versuchen Sie, Ihr Eßverhalten anzupassen, und denken Sie an genügend körperliche Bewegung." ;
				}
				else if (yourbmi >30 && yourbmi <=40) {
				f.comment.value="Ungesundes Übergewicht. Sorgen Sie dafür, daß Ihr BMI nicht höher wird. Versuchen Sie, Ihr Eßverhalten anzupassen, und denken Sie an genügend körperliche Bewegung.";
				}
					else if (yourbmi >27 && yourbmi <=30) {
					f.comment.value="Leichtes Übergewicht. Versuchen Sie, Ihr Eßverhalten anzupassen, und denken Sie an genügend körperliche Bewegung.";
					}
						else if (yourbmi >25 && yourbmi <=27) {
						f.comment.value="Neigung zu Übergewicht. Sorgen Sie dafür, daß Ihr BMI nicht höher wird. Versuchen Sie, Ihr Eßverhalten anzupassen, und denken Sie an genügend körperliche Bewegung.";
						}
							else if (yourbmi >=18.5 && yourbmi <=25) {
							f.comment.value="Sie haben ein gesundes Gewicht. Halten Sie dieses Gewicht, indem Sie gesund essen, und denken Sie an genügend körperliche Bewegung.";
							}
								else if (yourbmi <18.5) {
								f.comment.value="Untergewicht, erhöhtes Gesundheitsrisiko. Versuchen Sie, etwas zuzunehmen, indem Sie regelmäßig und mehr essen. Lassen Sie keine Mahlzeiten aus. Es kann sich negativ auf Ihre Gesundheit auswirken, wenn Sie Ihr Eßverhalten nicht anpassen.";
								}
				
	return true
}

function checkLengte(val,text) {
        if ((val == null) || (isNaN(val)) || (val == "") || (val < 0) || (val > 3)) {
		alert("unrichtig " + text + ".");
                return false
        }
        return true;
}
function checkKilo(val,text) {
        if ((val == null) || (isNaN(val)) || (val == "") || (val < 0) || (val > 300)) {
		alert("unrichtig " + 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
}
