function replaceSubString(originalString, searchForString, replaceWithString) {
    var objRegExp = eval("/" + searchForString + "/g");
    return (originalString.replace(objRegExp, replaceWithString));
}

function isNumber(item, min, max) {
    item.value = replaceSubString(item.value, ",", ".");
    item.value = replaceSubString(item.value, " ", "");

    if (item.value.length == 0) {
        alert("Calcul interrompu : vous devez renseigner ce champ !");
        item.focus();
        return false;
    }

    if (!isNaN(item.value)) {
        if (min != null) if (parseFloat(item.value) < min) item.value = min;
        if (max != null) if (parseFloat(item.value) > max) item.value = max;
        return true;
    }

    alert("Calcul interrompu :\n\n\"" + item.value + "\" n'est pas un nombre valide !");
    item.focus();
    return false;
}

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

function compute1(form) {

    if (!isNumber(form.Weight, 1, 9999)) return false;
    var charge = form.Weight.value;

    // - Semaine 1
    form.Lundi1_1.value = "10@" + round(charge * 0.2, 0);
    form.Lundi1_2.value = "8@" + round(charge * 0.3, 0);
    form.Lundi1_3.value = "5@" + round(charge * 0.5, 0);
    form.Lundi1_4.value = "5×5@" + round(charge * 0.6, 0);

    form.Mercredi1_1.value = "10@" + round(charge * 0.2, 0);
    form.Mercredi1_2.value = "8@" + round(charge * 0.3, 0);
    form.Mercredi1_3.value = "3@" + round(charge * 0.5, 0);
    form.Mercredi1_4.value = "1@" + round(charge * 0.6, 0);
    form.Mercredi1_5.value = "5×5@" + round(charge * 0.8, 0);

    form.Vendredi1_1.value = "10@" + round(charge * 0.2, 0);
    form.Vendredi1_2.value = "8@" + round(charge * 0.3, 0);
    form.Vendredi1_3.value = "5@" + round(charge * 0.5, 0);
    form.Vendredi1_4.value = "5×5@" + round(charge * 0.7, 0);

    // - Semaine 2
    form.Lundi2_1.value = "10@" + round(charge * 0.2, 0);
    form.Lundi2_2.value = "8@" + round(charge * 0.3, 0);
    form.Lundi2_3.value = "5@" + round(charge * 0.5, 0);
    form.Lundi2_4.value = "5×5@" + round(charge * 0.7, 0);

    form.Mercredi2_1.value = "10@" + round(charge * 0.2, 0);
    form.Mercredi2_2.value = "8@" + round(charge * 0.3, 0);
    form.Mercredi2_3.value = "3@" + round(charge * 0.5, 0);
    form.Mercredi2_4.value = "1@" + round(charge * 0.7, 0);
    form.Mercredi2_5.value = "5@" + round(charge * 0.9, 0);
    form.Mercredi2_6.value = "4×5@" + round(charge * 0.8, 0);

    form.Vendredi2_1.value = "10@" + round(charge * 0.2, 0);
    form.Vendredi2_2.value = "8@" + round(charge * 0.3, 0);
    form.Vendredi2_3.value = "3@" + round(charge * 0.5, 0);
    form.Vendredi2_4.value = "1@" + round(charge * 0.6, 0);
    form.Vendredi2_5.value = "5×5@" + round(charge * 0.8, 0);

    // - Semaine 3
    form.Lundi3_1.value = "10@" + round(charge * 0.2, 0);
    form.Lundi3_2.value = "8@" + round(charge * 0.3, 0);
    form.Lundi3_3.value = "5@" + round(charge * 0.5, 0);
    form.Lundi3_4.value = "5×5@" + round(charge * 0.7, 0);

    form.Mercredi3_1.value = "10@" + round(charge * 0.2, 0);
    form.Mercredi3_2.value = "8@" + round(charge * 0.3, 0);
    form.Mercredi3_3.value = "3@" + round(charge * 0.5, 0);
    form.Mercredi3_4.value = "1@" + round(charge * 0.7, 0);
    form.Mercredi3_5.value = "2×5@" + round(charge * 0.9, 0);
    form.Mercredi3_6.value = "3×5@" + round(charge * 0.8, 0);

    form.Vendredi3_1.value = "10@" + round(charge * 0.2, 0);
    form.Vendredi3_2.value = "8@" + round(charge * 0.3, 0);
    form.Vendredi3_3.value = "3@" + round(charge * 0.5, 0);
    form.Vendredi3_4.value = "1@" + round(charge * 0.6, 0);
    form.Vendredi3_5.value = "5×5@" + round(charge * 0.8, 0);

    // - Semaine 4
    form.Lundi4_1.value = "10@" + round(charge * 0.2, 0);
    form.Lundi4_2.value = "8@" + round(charge * 0.3, 0);
    form.Lundi4_3.value = "5@" + round(charge * 0.5, 0);
    form.Lundi4_4.value = "5×5@" + round(charge * 0.7, 0);
    form.Mercredi4_1.value = "10@" + round(charge * 0.2, 0);
    form.Mercredi4_2.value = "8@" + round(charge * 0.3, 0);
    form.Mercredi4_3.value = "3@" + round(charge * 0.5, 0);
    form.Mercredi4_4.value = "1@" + round(charge * 0.7, 0);
    form.Mercredi4_5.value = "3×5@" + round(charge * 0.9, 0);
    form.Mercredi4_6.value = "2×5@" + round(charge * 0.8, 0);

    form.Vendredi4_1.value = "10@" + round(charge * 0.2, 0);
    form.Vendredi4_2.value = "8@" + round(charge * 0.3, 0);
    form.Vendredi4_3.value = "3@" + round(charge * 0.5, 0);
    form.Vendredi4_4.value = "1@" + round(charge * 0.6, 0);
    form.Vendredi4_5.value = "5×5@" + round(charge * 0.8, 0);

    // - Semaine 5
    form.Lundi5_1.value = "10@" + round(charge * 0.2, 0);
    form.Lundi5_2.value = "8@" + round(charge * 0.3, 0);
    form.Lundi5_3.value = "5@" + round(charge * 0.5, 0);
    form.Lundi5_4.value = "5×5@" + round(charge * 0.7, 0);

    form.Mercredi5_1.value = "10@" + round(charge * 0.2, 0);
    form.Mercredi5_2.value = "8@" + round(charge * 0.3, 0);
    form.Mercredi5_3.value = "3@" + round(charge * 0.5, 0);
    form.Mercredi5_4.value = "1@" + round(charge * 0.7, 0);
    form.Mercredi5_5.value = "4×5@" + round(charge * 0.9, 0);
    form.Mercredi5_6.value = "5@" + round(charge * 0.8, 0);

    form.Vendredi5_1.value = "10@" + round(charge * 0.2, 0);
    form.Vendredi5_2.value = "8@" + round(charge * 0.3, 0);
    form.Vendredi5_3.value = "3@" + round(charge * 0.5, 0);
    form.Vendredi5_4.value = "1@" + round(charge * 0.6, 0);
    form.Vendredi5_5.value = "5×5@" + round(charge * 0.8, 0);

    // - Semaine 6
    form.Lundi6_1.value = "10@" + round(charge * 0.2, 0);
    form.Lundi6_2.value = "8@" + round(charge * 0.3, 0);
    form.Lundi6_3.value = "5@" + round(charge * 0.5, 0);
    form.Lundi6_4.value = "5×5@" + round(charge * 0.7, 0);

    form.Mercredi6_1.value = "10@" + round(charge * 0.2, 0);
    form.Mercredi6_2.value = "8@" + round(charge * 0.3, 0);
    form.Mercredi6_3.value = "3@" + round(charge * 0.5, 0);
    form.Mercredi6_4.value = "1@" + round(charge * 0.7, 0);
    form.Mercredi6_5.value = "5×5@" + round(charge * 0.9, 0);

    form.Vendredi6_1.value = "10@" + round(charge * 0.2, 0);
    form.Vendredi6_2.value = "8@" + round(charge * 0.3, 0);
    form.Vendredi6_3.value = "3@" + round(charge * 0.5, 0);
    form.Vendredi6_4.value = "1@" + round(charge * 0.6, 0);
    form.Vendredi6_5.value = "5×5@" + round(charge * 0.8, 0);

}

function compute2(form) {

    if (!isNumber(form.Weight, 1, 9999)) return false;
    var charge = form.Weight.value;

    // - Semaine 1
    form.Lundi1_1.value = "1@" + round(charge * 0.98, 0);
    form.Lundi1_2.value = "3×10@" + round(charge * 0.55, 0);
    form.Jeudi1.value = "3×10@" + round(charge * 0.44, 0);

    // - Semaine 2
    form.Lundi2_1.value = "1@" + round(charge * 0.99, 0);
    form.Lundi2_2.value = "3×9@" + round(charge * 0.60, 0);
    form.Jeudi2.value = "3×9@" + round(charge * 0.48, 0);

    // - Semaine 3
    form.Lundi3_1.value = "1@" + round(charge, 0);
    form.Lundi3_2.value = "3×8@" + round(charge * 0.65, 0);
    form.Jeudi3.value = "3×8@" + round(charge * 0.52, 0);

    // - Semaine 4
    form.Lundi4_1.value = "1@" + round(charge * 1.01, 0);
    form.Lundi4_2.value = "3×7@" + round(charge * 0.70, 0);
    form.Jeudi4.value = "3×7@" + round(charge * 0.56, 0);

    // - Semaine 5
    form.Lundi5_1.value = "1@" + round(charge * 1.02, 0);
    form.Lundi5_2.value = "3×6@" + round(charge * 0.75, 0);
    form.Jeudi5.value = "3×6@" + round(charge * 0.6, 0);

    // - Semaine 6
    form.Lundi6_1.value = "1@" + round(charge * 1.03, 0);
    form.Lundi6_2.value = "3×5@" + round(charge * 0.80, 0);
    form.Jeudi6.value = "3×5@" + round(charge * 0.64, 0);

    // - Semaine 7
    form.Lundi7_1.value = "1@" + round(charge * 1.04, 0);
    form.Lundi7_2.value = "2×4@" + round(charge * 0.85, 0);
    form.Jeudi7.value = "2×4@" + round(charge * 0.68, 0);

    // - Semaine 8
    form.Lundi8_1.value = "1@" + round(charge * 1.05, 0);
    form.Lundi8_2.value = "2×3@" + round(charge * 0.90, 0);
    form.Jeudi8.value = "2×3@" + round(charge * 0.72, 0);

    // - Semaine 9
    form.Lundi9.value = "2@" + round(charge * 0.95, 0);
    form.Jeudi9.value = "2@" + round(charge * 0.76, 0);

    // - Semaine 10
    form.Lundi10.value = "1@" + round(charge * 1.1, 0);

}

function compute3(form) {

    if (!isNumber(form.Weight, 1, 9999)) return false;
    var charge = form.Weight.value;

    // - Workout 1
    form.Lundi1_1.value = "8@" + round(charge * 0.60, 0);
    form.Lundi1_2.value = "6@" + round(charge * 0.70, 0);
    form.Lundi1_3.value = "3×5@" + round(charge * 0.75, 0);

    // - Workout 2
    form.Jeudi1_1.value = "2×5@" + round(charge * 0.70, 0);
    form.Jeudi1_2.value = "2×3@" + round(charge * 0.80, 0);
    form.Jeudi1_3.value = "1@" + round(charge * 0.90, 0);

    // - Workout 3
    form.Lundi2_1.value = "8@" + round(charge * 0.65, 0);
    form.Lundi2_2.value = "6@" + round(charge * 0.70, 0);
    form.Lundi2_3.value = "3×5@" + round(charge * 0.85, 0);

    // - Workout 4
    form.Jeudi2_1.value = "2×5@" + round(charge * 0.75, 0);
    form.Jeudi2_2.value = "2×3@" + round(charge * 0.85, 0);
    form.Jeudi2_3.value = "1@" + round(charge * 0.90, 0);

    // - Workout 5
    form.Lundi3_1.value = "6@" + round(charge * 0.75, 0);
    form.Lundi3_2.value = "2×5@" + round(charge * 0.85, 0);
    form.Lundi3_3.value = "max@" + round(charge * 0.85, 0);

    // - Workout 6
    form.Jeudi3_1.value = "2×3@" + round(charge * 0.85, 0);
    form.Jeudi3_2.value = "2×2@" + round(charge * 0.95, 0);
    form.Jeudi3_3.value = "1(neg)@" + round(charge * 1.1, 0);

    // - Workout 7
    form.Lundi4_1.value = "6@" + round(charge * 0.75, 0);
    form.Lundi4_2.value = "2×5@" + round(charge * 0.90, 0);
    form.Lundi4_3.value = "max@" + round(charge * 0.90, 0);

    // - Workout 8
    form.Jeudi4_1.value = "2×3@" + round(charge * 0.85, 0);
    form.Jeudi4_2.value = "2×2@" + round(charge, 0);
    form.Jeudi4_3.value = "1(neg)@" + round(charge * 1.15, 0);

    // - Workout 9
    form.Lundi5_1.value = "6@" + round(charge * 0.80, 0);
    form.Lundi5_2.value = "2×5@" + round(charge * 0.9, 0);
    form.Lundi5_3.value = "max@" + round(charge * 0.9, 0);

    // - Workout 10
    form.Jeudi5_1.value = "2×3@" + round(charge * 0.95, 0);
    form.Jeudi5_2.value = "2×2@" + round(charge * 1.05, 0);
    form.Jeudi5_3.value = "1(neg)@" + round(charge * 1.2, 0);

    // - Workout 11
    form.Lundi6_1.value = "6@" + round(charge * 0.85, 0);
    form.Lundi6_2.value = "2×5@" + round(charge * 0.95, 0);
    form.Lundi6_3.value = "max@" + round(charge * 0.95, 0);

    // - Workout 12
    form.Jeudi6_1.value = "2×3@" + round(charge * 0.95, 0);
    form.Jeudi6_2.value = "2@" + round(charge * 1.05, 0);
    form.Jeudi6_3.value = "1@" + round(charge * 1.1, 0);

    // - Workout 13
    form.Lundi7_1.value = "6@" + round(charge * 0.9, 0);
    form.Lundi7_2.value = "2×5@" + round(charge, 0);
    form.Lundi7_3.value = "max@" + round(charge, 0);

    // - Workout 14
    form.Jeudi7_1.value = "3@" + round(charge, 0);
    form.Jeudi7_2.value = "2@" + round(charge * 1.10, 0);
    form.Jeudi7_3.value = "1@" + round(charge * 1.15, 0);

}

function compute4(form) {

    if (!isNumber(form.Weight, 1, 9999)) return false;
    var charge = form.Weight.value;

    // - Workout 1
    form.Lundi1_1.value = "6@" + round(charge * 0.75, 0);
    form.Lundi1_2.value = "2×5@" + round(charge * 0.80, 0);
    form.Lundi1_3.value = "2×4@" + round(charge * 0.80, 0);

    // - Workout 2
    form.Jeudi1_1.value = "2×3@" + round(charge * 0.85, 0);
    form.Jeudi1_2.value = "2×2@" + round(charge * 0.90, 0);
    form.Jeudi1_3.value = "1(neg)@" + round(charge, 0);

    // - Workout 3
    form.Lundi2_1.value = "6@" + round(charge * 0.75, 0);
    form.Lundi2_2.value = "2×5@" + round(charge * 0.80, 0);
    form.Lundi2_3.value = "2×4@" + round(charge * 0.85, 0);

    // - Workout 4
    form.Jeudi2_1.value = "2×3@" + round(charge * 0.90, 0);
    form.Jeudi2_2.value = "2×2@" + round(charge * 0.95, 0);
    form.Jeudi2_3.value = "1(neg)@" + round(charge * 1.05, 0);

    // - Workout 5
    form.Lundi3_1.value = "6@" + round(charge * 0.80, 0);
    form.Lundi3_2.value = "2×5@" + round(charge * 0.85, 0);
    form.Lundi3_3.value = "max@" + round(charge * 0.90, 0);

    // - Workout 6
    form.Jeudi3_1.value = "2×3@" + round(charge * 0.90, 0);
    form.Jeudi3_2.value = "2×2@" + round(charge, 0);
    form.Jeudi3_3.value = "1(neg)@" + round(charge * 1.1, 0);

    // - Workout 7
    form.Lundi4_1.value = "2×5@" + round(charge * 0.85, 0);
    form.Lundi4_2.value = "2×3@" + round(charge * 0.95, 0);
    form.Lundi4_3.value = "max@" + round(charge * 0.95, 0);

    // - Workout 8
    form.Jeudi4_1.value = "2×3@" + round(charge * 0.95, 0);
    form.Jeudi4_2.value = "2×1@" + round(charge * 1.05, 0);
    form.Jeudi4_3.value = "1(neg)@" + round(charge * 1.15, 0);

    // - Workout 9
    form.Lundi5_1.value = "2×5@" + round(charge * 0.9, 0);
    form.Lundi5_2.value = "2×3@" + round(charge, 0);
    form.Lundi5_3.value = "max@" + round(charge, 0);

    // - Workout 10
    form.Jeudi5_1.value = "2×3@" + round(charge, 0);
    form.Jeudi5_2.value = "2×2@" + round(charge * 1.10, 0);
    form.Jeudi5_3.value = "1@" + round(charge * 1.10, 0);

    // - Workout 11
    form.Lundi6_1.value = "2×5@" + round(charge * 0.95, 0);
    form.Lundi6_2.value = "2×3@" + round(charge, 0);
    form.Lundi6_3.value = "max@" + round(charge * 1.05, 0);

    // - Workout 12
    form.Jeudi6_1.value = "2×3@" + round(charge, 0);
    form.Jeudi6_2.value = "2×2@" + round(charge * 1.10, 0);
    form.Jeudi6_3.value = "1@" + round(charge * 1.15, 0);

    // - Workout 13
    form.Lundi7_1.value = "5@" + round(charge, 0);
    form.Lundi7_2.value = "2×3@" + round(charge * 1.1, 0);
    form.Lundi7_3.value = "2×2@" + round(charge * 1.15, 0);

    // - Workout 14
    form.Jeudi7_1.value = "3@" + round(charge * 1.05, 0);
    form.Jeudi7_2.value = "2@" + round(charge * 1.15, 0);
    form.Jeudi7_3.value = "1@" + round(charge * 1.20, 0);

}

// Bench assaut
function compute10(form) {

    if (!isNumber(form.Weight, 1, 9999)) return false;
    var charge = form.Weight.value;

    // - Semaine 1
    form.LundiDC1_10.value = "DC : 4×12@" + round(charge / 275 * 200, 0);
    form.LundiDI1_10.value = "DI : 3×12@" + round(charge / 275 * 160, 0);
    form.JeudiDC1_10.value = "DC : 4×10@" + round(charge / 275 * 210, 0);
    form.JeudiDI1_10.value = "DI : 3×10@" + round(charge / 275 * 170, 0);

    // - Semaine 2
    form.LundiDC2_10.value = "DC : 4×8@" + round(charge / 275 * 220, 0);
    form.LundiDI2_10.value = "DI : 3×8@" + round(charge / 275 * 180, 0);
    form.JeudiDC2_10.value = "DC : 4×6@" + round(charge / 275 * 230, 0);
    form.JeudiDI2_10.value = "DI : 3×6@" + round(charge / 275 * 190, 0);

    // - Semaine 3
    form.LundiDC3_10.value = "DC : 4×12@" + round(charge / 275 * 205, 0);
    form.LundiDI3_10.value = "DI : 3×12@" + round(charge / 275 * 165, 0);
    form.JeudiDC3_10.value = "DC : 4×10@" + round(charge / 275 * 215, 0);
    form.JeudiDI3_10.value = "DI : 3×10@" + round(charge / 275 * 175, 0);

    // - Semaine 4
    form.LundiDC4_10.value = "DC : 4×8@" + round(charge / 275 * 225, 0);
    form.LundiDI4_10.value = "DI : 3×8@" + round(charge / 275 * 185, 0);
    form.JeudiDC4_10.value = "DC : 4×6@" + round(charge / 275 * 235, 0);
    form.JeudiDI4_10.value = "DI : 3×6@" + round(charge / 275 * 195, 0);

    // - Semaine 5
    form.LundiDC5_10.value = "DC : 4×8@" + round(charge / 275 * 230, 0);
    form.LundiDI5_10.value = "DI : 3×8@" + round(charge / 275 * 190, 0);
    form.JeudiDC5_10.value = "DC : 4×6@" + round(charge / 275 * 245, 0);
    form.JeudiDI5_10.value = "DI : 3×6@" + round(charge / 275 * 205, 0);

    // - Semaine 6
    form.LundiDC6_10.value = "DC : 4×4@" + round(charge / 275 * 260, 0);
    form.LundiDI6_10.value = "DI : 3×4@" + round(charge / 275 * 220, 0);
    form.JeudiDC6_10.value = "DC : 4×2@" + round(charge / 275 * 275, 0);
    form.JeudiDI6_10.value = "DI : 3×2x@" + round(charge / 275 * 235, 0);

    // - Semaine 7
    form.LundiDC7_10.value = "DC : 4×8@" + round(charge / 275 * 235, 0);
    form.LundiDI7_10.value = "DI : 3×8@" + round(charge / 275 * 195, 0);
    form.JeudiDC7_10.value = "DC : 4×6@" + round(charge / 275 * 250, 0);
    form.JeudiDI7_10.value = "DI : 3×6@" + round(charge / 275 * 210, 0);

    // - Semaine 8
    form.LundiDC8_10.value = "DC : 4×4@" + round(charge / 275 * 265, 0);
    form.LundiDI8_10.value = "DI : 3×4@" + round(charge / 275 * 225, 0);
    form.JeudiDC8_10.value = "DC : 4×2@" + round(charge / 275 * 280, 0);
    form.JeudiDI8_10.value = "DI : 3×2@" + round(charge / 275 * 240, 0);

    // - Semaine 9
    form.LundiDC9_10.value = "DC : 4×6@" + round(charge / 275 * 255, 0);
    form.LundiDI9_10.value = "DI : 3×6@" + round(charge / 275 * 215, 0);
    form.JeudiDC9_10.value = "DC : 4×4@" + round(charge / 275 * 270, 0);
    form.JeudiDI9_10.value = "DI : 3×4@" + round(charge / 275 * 230, 0);

    // - Semaine 10
    form.LundiDC10_10.value = "DC : 3×2@" + round(charge / 275 * 280, 0);
    form.LundiDI10_10.value = "DI : 2×2@" + round(charge / 275 * 245, 0);
    form.JeudiDC10_10.value = "DC : 1@" + round(charge / 275 * 290, 0);
    form.JeudiDI10_10.value = "DI : 1@" + round(charge / 275 * 255, 0);

    // - Semaine 11
    form.LundiDC11_10.value = "DC : 3×3@" + round(charge / 275 * 275, 0);
    form.LundiDI11_10.value = "DI : 2×2@" + round(charge / 275 * 250, 0);
    form.JeudiDC11_10.value = "DC : 2×2@" + round(charge / 275 * 280, 0);
    form.JeudiDI11_10.value = "DI : 1@" + round(charge / 275 * 260, 0);

    // - Semaine 12
    form.LundiDC12_10.value = "DC : 1@" + round(charge / 275 * 290, 0);
    form.LundiDI12_10.value = "DI : 1@" + round(charge / 275 * 265, 0);
    form.JeudiDC12_10.value = "DC : 1@" + round(charge / 275 * 300, 0);
    form.JeudiDI12_10.value = "DI : 1@" + round(charge / 275 * 265, 0);
}
