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("De ingevoerde waarden kloppen niet! \nUw gewicht in kilogram (kg) moet tussen de 10 en 300 kg liggen en \nuw lengte tussen 0 en 3 meter (m).");
                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,"LENGTE")) {
			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="Votre poids est beaucoup trop élevé. Votre IMC trop élevé présente des risques pour votre santé. Prenez contact avec votre diététicien ou votre médecin généraliste pour une approche raisonnable." ;
				}
				else if (yourbmi >30 && yourbmi <=40) {
				f.comment.value="Insalubres surpoids. Votre IMC trop élevé présente des risques pour votre santé. Prenez contact avec votre diététicien ou votre médecin généraliste pour une approche raisonnable.";
				}
					else if (yourbmi >27 && yourbmi <=30) {
					f.comment.value="Votre poids est trop élevé. Veillez à ce que votre IMC n’augmente plus. Essayez de modifier vos habitudes alimentaires, sans oublier d’avoir suffisamment d’activité physique.";
					}
						else if (yourbmi >25 && yourbmi <=27) {
						f.comment.value="Tendance à l'embonpoint. Votre IMC trop élevé présente des risques pour votre santé. Prenez contact avec votre diététicien ou votre médecin généraliste pour une approche raisonnable.";
						}
							else if (yourbmi >=18.5 && yourbmi <=25) {
							f.comment.value="Votre poids est sain. Maintenez ce poids en mangeant sainement et en ayant suffisamment d’activité physique.";
							}
								else if (yourbmi <18.5) {
								f.comment.value="Votre poids est insuffisant. Essayez de prendre du poids en mangeant régulièrement et plus. Ne sautez pas de repas. Vous risquez d’avoir des problèmes de santé si vous ne modifiez pas vos habitudes alimentaires.";
								}
				
	return true
}

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