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_1(form) {
    if (!isNumber(form.Charge, 1, 9999)) return false;
    var charge = form.Charge.value;
    form.Charge1.value = round(charge * 0.2, 0);
    form.Charge2.value = round(charge * 0.5, 0);
    form.Charge3.value = round(charge * 0.8, 0);
    form.Charge4.value = round(charge * 0.9, 0);
}

function compute_2(form) {
    if (!isNumber(form.Charge, 1, 9999)) return false;
    var charge = form.Charge.value;
    form.Charge1.value = round(charge * 0.2 * 1.11, 0);
    form.Charge2.value = round(charge * 0.5 * 1.11, 0);
    form.Charge3.value = round(charge * 0.8 * 1.11, 0);
}

function compute_3(form) {
    if (!isNumber(form.Charge, 1, 9999)) return false;
    var charge = form.Charge.value;
    form.Charge1.value = round(charge * 0.133, 0);
    form.Charge2.value = round(charge * 0.333, 0);
    form.Charge3.value = round(charge * 0.667, 0);
    form.Charge4.value = round(charge * 0.867, 0);
}
