function calculate_en() {
    document.getElementById('msg').innerHTML = '';
    document.getElementById('bmi').innerHTML = '';
    document.getElementById('result').innerHTML = '';
    document.getElementById('ideal').innerHTML = '';

    var height = document.getElementById('height').value;
    var weight = document.getElementById('weight').value;
    var sex;
    var sexArray = document.getElementsByName('sex');
    for (i=0; i < sexArray.length; i++) {
        if (sexArray[i].checked) {
            sex = sexArray[i].value;
            break;
        }
    }
    // check input
    var msg;
    weight = weight.replace(/,/,'.');
    if ((weight=='') || (weight != parseFloat(weight)) || (weight <= 0)) {
        msg = 'weight must be a number, larger than zero.';
        document.getElementById('msg').innerHTML = msg;
    } else if (!sex) {
        msg = 'Please choose a gender.';
        document.getElementById('msg').innerHTML = msg;
    } else {

        var kilos = weight * 0.45359237;
        var meters = height;

        var bmi = calcBMI(kilos, meters);
        var group = calcGroup_en(bmi, sex);
        var idealLow = calcIdealLow(meters, sex);
        idealLow = Math.round(idealLow/0.45359237);
        var idealHigh = calcIdealHigh(meters, sex);
        idealHigh = Math.round(idealHigh/0.45359237);
        document.getElementById('bmi').innerHTML = 'BMI: ' + bmi;
        document.getElementById('result').innerHTML = 'Diagnose: ' + group;
        document.getElementById('ideal').innerHTML = 'Ideal weight: ' + idealLow + ' to ' + idealHigh + ' pounds.';
    }
}

function calculate_es() {
    document.getElementById('msg').innerHTML = '';
    document.getElementById('bmi').innerHTML = '';
    document.getElementById('result').innerHTML = '';
    document.getElementById('ideal').innerHTML = '';

    var height = document.getElementById('height').value;
    var weight = document.getElementById('weight').value;
    var sex;
    var sexArray = document.getElementsByName('sex');
    for (i=0; i < sexArray.length; i++) {
        if (sexArray[i].checked) {
            sex = sexArray[i].value;
            break;
        }
    }
    // check input
    var msg;
    weight = weight.replace(/,/,'.');
    if ((weight=='') || (weight != parseFloat(weight)) || (weight <= 0)) {
        msg = 'El peso debe ser un numero mayor que cero.';
        document.getElementById('msg').innerHTML = msg;
    } else if (!sex) {
        msg = 'Por favor elija su sexo.';
        document.getElementById('msg').innerHTML = msg;
    } else {

        var kilos = weight * 0.45359237;
        var meters = height;

        var bmi = calcBMI(kilos, meters);
        var group = calcGroup_es(bmi, sex);
        var idealLow = calcIdealLow(meters, sex);
        idealLow = Math.round(idealLow/0.45359237);
        var idealHigh = calcIdealHigh(meters, sex);
        idealHigh = Math.round(idealHigh/0.45359237);

        document.getElementById('bmi').innerHTML = 'IMC: ' + bmi;
        document.getElementById('result').innerHTML = 'Diagnóstico: ' + group;
        document.getElementById('ideal').innerHTML = 'Peso ideal: ' + idealLow + ' to ' + idealHigh + ' libras.';
    }
}

function calcBMI(kilos, meters) {
    var res = (kilos)/(meters*meters);
    res = Math.round(res*10)/10;
    return res;
}

function calcIdealLow(meters, sex) {
    var res;
    if (sex == 'male') {
        res = 20.7*(meters*meters);
    } else if (sex == 'female') {
        res = 19.1*(meters*meters);
    }
    return res;
}

function calcIdealHigh(meters, sex) {
    var res;
    if (sex == 'male') {
        res = 26.4*(meters*meters);
    } else if (sex == 'female') {
        res = 25.8*(meters*meters);
    }
    return res;
}

function calcGroup_en(bmi, sex) {
    var res;
    if (sex == 'male') {
        if (bmi < 17.5) res = 'Anorexia'
        else if (bmi < 20.7) res = 'Underweight'
        else if (bmi < 26.4) res = 'Normal'
        else if (bmi < 27.8) res = 'Marginally overweight'
        else if (bmi < 31.1) res = 'Overweight'
        else if (bmi < 35) res = 'Very overweight or obese'
        else if (bmi < 40) res = 'Severly obese'
        else if (bmi < 50) res = 'Morbidly obese'
        else res = 'Super obese';
    } else if (sex == 'female') {
        if (bmi < 17.5) res = 'Anorexia'
        else if (bmi < 19.1) res = 'Underweight'
        else if (bmi < 25.8) res = 'Normal'
        else if (bmi < 27.3) res = 'Marginally overweight'
        else if (bmi < 32.3) res = 'Overweight'
        else if (bmi < 35) res = 'Obese'
        else if (bmi < 40) res = 'Severly obese'
        else if (bmi < 50) res = 'Morbidly obese'
        else res = 'Super obese';
    }
    return res;
}

function calcGroup_es(bmi, sex) {
    var res;
    if (sex == 'male') {
        if (bmi < 17.5) res = 'Anorexia'
        else if (bmi < 20.7) res = 'Bajo peso'
        else if (bmi < 26.4) res = 'Peso normal'
        else if (bmi < 27.8) res = 'Ligeramente sobrepeso'
        else if (bmi < 31.1) res = 'Sobrepeso'
        else if (bmi < 35) res = 'Obeso'
        else if (bmi < 40) res = 'Severamente obeso'
        else if (bmi < 50) res = 'Mórbidamente obeso'
        else res = 'Super obeso';
    } else if (sex == 'female') {
        if (bmi < 17.5) res = 'Anorexia'
        else if (bmi < 19.1) res = 'Bajo peso'
        else if (bmi < 25.8) res = 'Peso normal'
        else if (bmi < 27.3) res = 'Ligeramente sobrepeso'
        else if (bmi < 32.3) res = 'Sobrepeso'
        else if (bmi < 35) res = 'Obeso'
        else if (bmi < 40) res = 'Severamente obeso'
        else if (bmi < 50) res = 'Mórbidamente obeso'
        else res = 'Super obeso';
    }
    return res;
}

