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 compute_mcrobert(form) {
    if (!isNumber(form.Charge1, 1, 9999)) return false;
    var charge = form.Charge1.value;
    form.Charge11.value = round(charge * 0.85, 1);
    form.Charge12.value = round(charge * 0.9, 1);
    form.Charge13.value = round(charge * 0.95, 1);
    form.Charge14.value = round(charge * 0.975, 1);
    form.Charge15.value = round(charge, 1);
    form.Charge16.value = round(charge * 1.025, 1);
    form.Charge17.value = round(charge * 1.05, 1);
    form.Charge18.value = round(charge * 1.075, 1);
}

function compute_marc(form) {
    if (!isNumber(form.Charge2, 1, 9999)) return false;
    var charge = form.Charge2.value;
    form.Charge21.value = round(charge * 1.022, 1);
    form.Charge22.value = round(charge * 1.077, 1);
    form.Charge23.value = round(charge * 1.133, 1);
    form.Charge24.value = round(charge * 1.077, 1);
    form.Charge25.value = round(charge * 1.133, 1);
    form.Charge26.value = round(charge * 1.188, 1);
    form.Charge27.value = round(charge * 1.077, 1);
}

function compute_coan(form) {
    if (!isNumber(form.Charge3, 1, 9999)) return false;
    var charge = form.Charge3.value;
    form.Charge31.value = round(charge * 0.7037, 1);
    form.Charge32.value = round(charge * 0.7037, 1);
    form.Charge33.value = round(charge * 0.7407, 1);
    form.Charge34.value = round(charge * 0.7777, 1);
    form.Charge35.value = round(charge * 0.8148, 1);
    form.Charge36.value = round(charge * 0.8518, 1);
    form.Charge37.value = round(charge * 0.8888, 1);
    form.Charge38.value = round(charge * 0.9259, 1);
    form.Charge39.value = round(charge * 0.9629, 1);
    form.Charge40.value = round(charge, 1);
    form.Charge41.value = round(charge * 1.0370, 1);
    form.Charge42.value = round(charge * 1.1111, 1);
}
