   // Calculateur de taxes de vente et de prêt en Javascript
  
function checkNumber(input, min, max, msg) {

        msg = msg + "  " + input.value + " non accepté,";

        var str = input.value;

     	for (var i = 0; i < str.length; i++) {
            var ch = str.substring(i, i + 1)
            if ((ch < "0" ||  ch > "9") && ch != '.') {
                                
				alert(msg);
                return false;
				
            }
        }
        var num = 0 + str
        if (num < min || max < num) {
            alert(msg + " doit être entre [" + min + " et " + max + "]");
            return false;
        }
        input.value = str;
        return true;
    }

function computeField(input) {
		input.value = eval(input.value);	
		if (!checkNumber(input, 0, 99999999, input.name)) {
        return false;
			}
        if (input.value != null && input.value.length != 0)
            input.value = "" + eval(input.value);
        calculForm(input.form);
    }

function computeForm(form) {

        form.net.value = ""+eval(form.net.value)
		if ((form.payments.value == null || form.payments.value.length == 0) ||
            (form.interest.value == null || form.interest.value.length == 0) ||
            (form.net.value == null || form.net.value.length == 0)) {
			return;
			
        }

        if (!checkNumber(form.payments, 1, 480, "# de mois") ||
            !checkNumber(form.interest, .001, 99, "Intérêt")){  // ||!checkNumber(form.net, 100, 10000000, "Montant")) 
			
            form.payment.value = "Invalide";
            return;
        }
		var i = form.interest.value;
        
        if (i > .999) {
            i = i / 100.0;
    //        form.interest.value = i;
        }
        i /= 12;

        var pow = 1;
        for (var j = 0; j < form.payments.value; j++)
            pow = pow * (1 + i);
        form.payment.value = (form.net.value * pow * i) / (pow - 1);
			
		form.net.value = deux(form.net.value);
		
		form.payment.value = deux(form.payment.value);
		
		}

function clearForm(form) {
        form.payments.value = "";
        form.interest.value = "";
        form.net.value = "";
    }
function calculForm(form) {
		 if ((form.montant.value == null || form.montant.value.length == 0) ||
            (form.accompte.value == null || form.accompte.value.length == 0) ||
			 (form.echange.value == null || form.echange.value.length == 0)){
			return;
			}
		form.montant.value = "" + eval(form.montant.value)
		form.echange.value = "" + eval(form.echange.value)
		form.accompte.value = "" + eval(form.accompte.value)


		if (!checkNumber(form.montant, 100, 100000, "prix") ||
            !checkNumber(form.echange, 0, form.montant, "échange") ||
			!checkNumber(form.accompte, 0,9999999, "comptant")) {
            form.net.value = "Invalide";
            return;
        }
		
        var mm = form.montant.value - form.echange.value;
		form.montant.value = deux(form.montant.value);
		form.echange.value = checkzero(form.echange.value);
		form.echange.value = deux(form.echange.value);
        form.accompte.value = checkzero(form.accompte.value);
		form.accompte.value = deux(form.accompte.value);                            
		form.tps.value = deux(mm * .05);
		var mmm = mm * 1.05;
		form.tvq.value = deux( mmm * .075);
		form.net.value = deux(( mm * 1.05 * 1.075) - form.accompte.value);
		mmm = form.net.value;
		form.net1.value = deux( mm * 1.05 * 1.075)
		form.net.value = deux(form.net.value);
		var mmm = computeForm(form)
		return;

		}
	
function clearForm1(form) {
        form.montant.value = "";
        form.echange.value = "";
		form.tps.value = "";
        form.tvq.value = "";
		form.accompte.value = "0"
		form.net.value = ""
    }

function deux(valeur){
		str = valeur + '.00';
		var xli = 0;
     	for (var xli = 0; xli < str.length; xli++){ 
        var ch2 = str.substring(xli, xli + 1);
	   	result = str.substring(0, xli + 3);
		if (ch2 == "."){ 
				result = check(result,xli+1);
				break;
		}
		}
			result = "    "+result;
			return result;
		}
function check(ret,ndx){
		var result = ret;
		var temp = ret.substring(ndx,ndx+1);
		if (temp == "."){
			result =ret.substring(0,ndx) + "00";
			return result;
			}
		
		var temp = ret.substring(ndx+1,ndx+2);
		if (temp == "."){
		result =ret.substring(0,ndx+1) + "0";
		return result;
		}	
		
		return result;
	}
function checkzero(ret){
		var result = ret
		var temp = ret.substring(0,1)
		
		if (result > 0){
		if (temp == "0"){
			var result = ret.substring(1,10);
			}
			}
			return result;
		}