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 isBlank(item) {
    if (item.value == "") return true;
    else return false;
}

function compute1(form) {
    if (isBlank(form.Kg) && !isBlank(form.Livres)) {
        if (isNumber(form.Livres, 0)) {
            form.Kg.value = round(parseFloat(form.Livres.value) * 0.453592, 3);
        }
    } else if (isBlank(form.Livres) && !isBlank(form.Kg)) {
        if (isNumber(form.Kg, 0)) {
            form.Livres.value = round(parseFloat(form.Kg.value) / 0.453592, 3);
        }
    } else if (isBlank(form.Livres) && isBlank(form.Kg)) alert("Vous devez renseigner au moins un champ !");
    else alert("Vous devez laisser un champ vide !");
}

function compute2(form) {
    if (isBlank(form.Cm) && !isBlank(form.PiedsOuPouces)) {
        if (isNumber(form.PiedsOuPouces, 0)) {
            if (form.Unit.selectedIndex == 0) form.Cm.value = round(parseFloat(form.PiedsOuPouces.value) * 2.54, 3);
            else form.Cm.value = round(parseFloat(form.PiedsOuPouces.value) * 30.48, 3);
        }
    } else if (isBlank(form.PiedsOuPouces) && !isBlank(form.Cm)) {
        if (isNumber(form.Cm, 0)) {
            if (form.Unit.selectedIndex == 0) form.PiedsOuPouces.value = round(parseFloat(form.Cm.value) / 2.54, 3);
            else form.PiedsOuPouces.value = round(parseFloat(form.Cm.value) / 30.48, 3);
        }
    } else if (isBlank(form.Cm) && isBlank(form.PiedsOuPouces)) alert("Vous devez renseigner au moins un champ !");
    else alert("Vous devez laisser un champ vide !");
}

function compute3(form) {
    if (!isBlank(form.M) && !isBlank(form.Cm) && isBlank(form.Pieds) && isBlank(form.Pouces)) {
        if (isNumber(form.M, 1, 3) && isNumber(form.Cm, 0, 99)) {
            var TailleEnCm = parseFloat(form.M.value) * 100 + parseFloat(form.Cm.value);
            form.Pieds.value = Math.floor(TailleEnCm / 30.48);
            form.Pouces.value = round((TailleEnCm % 30.48) / 2.54, 1);
        }
    } else if (isBlank(form.M) && isBlank(form.Cm) && !isBlank(form.Pieds) && !isBlank(form.Pouces)) {
        if (isNumber(form.Pieds, 3, 10) && isNumber(form.Pouces, 0, 12)) {
            var TailleEnPouces = parseFloat(form.Pieds.value) * 12 + parseFloat(form.Pouces.value);
            form.M.value = Math.floor(TailleEnPouces / (100 / 2.54));
            form.Cm.value = round((TailleEnPouces % (100 / 2.54)) * 2.54, 1);
        }
    } else if (!isBlank(form.M) && isBlank(form.Cm) && isBlank(form.Pieds) && isBlank(form.Pouces)) {
        form.Cm.value = 0;
        if (isNumber(form.M, 1, 3) && isNumber(form.Cm, 0, 99)) {
            var TailleEnCm = parseFloat(form.M.value) * 100 + parseFloat(form.Cm.value);
            form.Pieds.value = Math.floor(TailleEnCm / 30.48);
            form.Pouces.value = round((TailleEnCm % 30.48) / 2.54, 1);
        }
    } else if (isBlank(form.M) && isBlank(form.Cm) && !isBlank(form.Pieds) && isBlank(form.Pouces)) {
        form.Pouces.value = 0;
        if (isNumber(form.Pieds, 3, 10) && isNumber(form.Pouces, 0, 12)) {
            var TailleEnPouces = parseFloat(form.Pieds.value) * 12 + parseFloat(form.Pouces.value);
            form.M.value = Math.floor(TailleEnPouces / (100 / 2.54));
            form.Cm.value = round((TailleEnPouces % (100 / 2.54)) * 2.54, 1);
        }
    } else if (isBlank(form.M) && isBlank(form.Cm) && isBlank(form.Pieds) && isBlank(form.Pouces)) alert("Vous devez renseigner au moins une ligne !");
    else alert("Vous devez renseigner une ligne et laisser l'autre vide !");
}