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 = "8-10@" + round(charge * 0.45, 0);
    form.Lundi1_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Lundi1_3.value = "6@" + round(charge * 0.65, 0);
    form.Lundi1_4.value = "3×6@" + round(charge * 0.65, 0) + "-" + round(charge * 0.7, 0);

    form.Jeudi1_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Jeudi1_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Jeudi1_3.value = "5@" + round(charge * 0.65, 0);
    form.Jeudi1_4.value = "5@" + round(charge * 0.75, 0);
    form.Jeudi1_5.value = "3×5@" + round(charge * 0.8, 0);
    form.Jeudi1_6.value = "5@" + round(charge * 0.75, 0);
    form.Jeudi1_7.value = "6-8@" + round(charge * 0.65, 0);
    form.Jeudi1_8.value = "8-12@" + round(charge * 0.50, 0) + "-" + round(charge * 0.55, 0);

    // - Semaine 2
    form.Lundi2_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Lundi2_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Lundi2_3.value = "6@" + round(charge * 0.65, 0);
    form.Lundi2_4.value = "5@" + round(charge * 0.70, 0);
    form.Lundi2_5.value = "2×5@" + round(charge * 0.70, 0) + "-" + round(charge * 0.75, 0);

    form.Jeudi2_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Jeudi2_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Jeudi2_3.value = "5@" + round(charge * 0.65, 0);
    form.Jeudi2_4.value = "4@" + round(charge * 0.75, 0);
    form.Jeudi2_5.value = "4@" + round(charge * 0.8, 0);
    form.Jeudi2_6.value = "3×4@" + round(charge * 0.85, 0);
    form.Jeudi2_7.value = "5@" + round(charge * 0.80, 0);
    form.Jeudi2_8.value = "6-8@" + round(charge * 0.70, 0);

    // - Semaine 3
    form.Lundi3_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Lundi3_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Lundi3_3.value = "5@" + round(charge * 0.65, 0);
    form.Lundi3_4.value = "4@" + round(charge * 0.70, 0);
    form.Lundi3_5.value = "3@" + round(charge * 0.75, 0);
    form.Lundi3_6.value = "2×3@" + round(charge * 0.75, 0) + "-" + round(charge * 0.8, 0);

    form.Jeudi3_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Jeudi3_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Jeudi3_3.value = "5@" + round(charge * 0.65, 0);
    form.Jeudi3_4.value = "4@" + round(charge * 0.75, 0);
    form.Jeudi3_5.value = "3@" + round(charge * 0.85, 0);
    form.Jeudi3_6.value = "2×3@" + round(charge * 0.90, 0);
    form.Jeudi3_7.value = "5@" + round(charge * 0.80, 0);
    form.Jeudi3_8.value = "6-10@" + round(charge * 0.55, 0) + "-" + round(charge * 0.60, 0);

    // - Semaine 4
    form.Lundi4_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Lundi4_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Lundi4_3.value = "5@" + round(charge * 0.65, 0);
    form.Lundi4_4.value = "4@" + round(charge * 0.75, 0);
    form.Lundi4_5.value = "2×3@" + round(charge * 0.8, 0) + "-" + round(charge * 0.85, 0);

    form.Jeudi4_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Jeudi4_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Jeudi4_3.value = "5@" + round(charge * 0.65, 0);
    form.Jeudi4_4.value = "4@" + round(charge * 0.75, 0);
    form.Jeudi4_5.value = "2@" + round(charge * 0.85, 0);
    form.Jeudi4_6.value = "2@" + round(charge * 0.90, 0);
    form.Jeudi4_7.value = "2@" + round(charge * 0.95, 0);
    form.Jeudi4_8.value = "4-6@" + round(charge * 0.75, 0);

    // - Semaine 5
    form.Lundi5_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Lundi5_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Lundi5_3.value = "5@" + round(charge * 0.65, 0);
    form.Lundi5_4.value = "2×5@" + round(charge * 0.75, 0);

    form.Jeudi5_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Jeudi5_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Jeudi5_3.value = "5@" + round(charge * 0.65, 0);
    form.Jeudi5_4.value = "3@" + round(charge * 0.75, 0);
    form.Jeudi5_5.value = "3@" + round(charge * 0.8, 0);
    form.Jeudi5_6.value = "2@" + round(charge * 0.85, 0);


    // - Semaine 6
    form.Lundi6_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Lundi6_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Lundi6_3.value = "5@" + round(charge * 0.65, 0);
    form.Lundi6_4.value = "3@" + round(charge * 0.75, 0);
    form.Lundi6_5.value = "2×2@" + round(charge * 0.8, 0);

    form.Jeudi6_1.value = "8-10@" + round(charge * 0.45, 0);
    form.Jeudi6_2.value = "6-8@" + round(charge * 0.55, 0);
    form.Jeudi6_3.value = "5@" + round(charge * 0.65, 0);
    form.Jeudi6_4.value = "3@" + round(charge * 0.75, 0);
    form.Jeudi6_5.value = "2@" + round(charge * 0.85, 0);
    form.Jeudi6_6.value = "1@" + round(charge * 0.9, 0);
    form.Jeudi6_7.value = "1@" + round(charge * 0.95, 0);
    form.Jeudi6_8.value = "1@" + round(charge, 0);
    form.Jeudi6_9.value = "1@" + round(charge * 1.02, 0);
    form.Jeudi6_10.value = "1@" + round(charge * 1.03, 0) + "-" + round(charge * 1.05, 0);

}

function compute2(form) {

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

    // - Semaine 1
    form.Lundi1.value = "6×2@" + round(charge * 0.80, 0);
    form.Mercredi1.value = "6×3@" + round(charge * 0.80, 0);
    form.Vendredi1.value = "6×2@" + round(charge * 0.80, 0);

    // - Semaine 2
    form.Lundi2.value = "6×4@" + round(charge * 0.80, 0);
    form.Mercredi2.value = "6×2@" + round(charge * 0.80, 0);
    form.Vendredi2.value = "6×5@" + round(charge * 0.80, 0);

    // - Semaine 3
    form.Lundi3.value = "6×2@" + round(charge * 0.80, 0);
    form.Mercredi3.value = "6×6@" + round(charge * 0.80, 0);
    form.Vendredi3.value = "6×2@" + round(charge * 0.80, 0);

    // - Semaine 4
    form.Lundi4.value = "5×5@" + round(charge * 0.85, 0);
    form.Mercredi4.value = "6×2@" + round(charge * 0.80, 0);
    form.Vendredi4.value = "4×4@" + round(charge * 0.90, 0);

    // - Semaine 5
    form.Lundi5.value = "6×2@" + round(charge * 0.80, 0);
    form.Mercredi5.value = "3×3@" + round(charge * 0.95, 0);
    form.Vendredi5.value = "6×2@" + round(charge * 0.80, 0);

    // - Semaine 6
    form.Lundi6.value = "2×2@" + round(charge, 0);
    form.Mercredi6.value = "6×2@" + round(charge * 0.80, 0);
    form.Vendredi6.value = "1@" + round(charge * 1.05, 0);
}

function compute3(form) {

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

    // - Semaine 1
    form.Lundi1.value = "3×5@" + round(charge * 0.80, 0);
    form.Mercredi1.value = "1-4×5@" + round(charge * 0.90, 0);
    form.Vendredi1.value = "4×3@" + round(charge * 0.60, 0);

    // - Semaine 2
    form.Lundi2.value = "4×5@" + round(charge * 0.75, 0);
    form.Mercredi2.value = "5-6×3@" + round(charge * 0.85, 0);
    form.Vendredi2.value = "4×3@" + round(charge * 0.60, 0);

    // - Semaine 3
    form.Lundi3.value = "4×3@" + round(charge * 0.75, 0);
    form.Mercredi3.value = "3×3@" + round(charge * 0.80, 0);
    form.Vendredi3.value = "4×3@" + round(charge * 0.65, 0);

}

function compute4(form) {

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

    // - Semaine 1
    form.Lundi1.value = "4×5@" + round(charge * 0.75, 0);
    form.Mercredi1.value = "5×5@" + round(charge * 0.85, 0);
    form.Vendredi1.value = "4×3@" + round(charge * 0.60, 0);

    // - Semaine 2
    form.Lundi2.value = "3×5@" + round(charge * 0.80, 0);
    form.Mercredi2.value = "6×5@" + round(charge * 0.85, 0);
    form.Vendredi2.value = "4×3@" + round(charge * 0.60, 0);

    // - Semaine 3
    form.Lundi3.value = "4×3@" + round(charge * 0.75, 0);
    form.Mercredi3.value = "3×3@" + round(charge * 0.85, 0);
    form.Vendredi3.value = "4×3@" + round(charge * 0.60, 0);

}
