// JavaScript Document
function findNreplace(str,str_match,str_rep){
		if( (str.indexOf(str_match)>0)&&(str.indexOf(str_match)<str.length-1) ){
			str_result=str.substring(0,str.indexOf(str_match));
			str_result=str_result+str_rep;
			str_result=str_result+str.substring(str.indexOf(str_match)+1,str.length);
			str=str_result;
		}
		return str;
	}
	function setBlank(){
		document.calculette.mens.value="";
		document.calculette.interet.value="";
		document.calculette.montantpret.value="";
		document.calculette.nbmois.value="";
	}
	function cutFloat(nbr,nbchiffres){
		pos=(nbr=""+nbr).indexOf(".");
		if( (pos > 0)&&((nbr.length-pos)>=parseInt(nbchiffres)) ){
			nbr=nbr.substring(0,pos+1+parseInt(nbchiffres));
		}
		return nbr;
	}
	function jtrim(text){
		nbSpaces=0
		for(cpt=0;cpt<text.length;cpt++){
			if( text.charAt(cpt)==' ' )nbSpaces++;
		}
		if(nbSpaces==text.length)text="";
		return text;
	}
	function DoEval() {
		missing=0;
		mensualite=findNreplace(jtrim(document.calculette.mens.value),",",".");
		taux=findNreplace(jtrim(document.calculette.interet.value),",",".");
		montant=findNreplace(jtrim(document.calculette.montantpret.value),",",".");
		duree=findNreplace(jtrim(document.calculette.nbmois.value),",",".");
		d= parseFloat(duree) / 12;

		if( ((mensualite.length > 0)&&((""+parseInt(mensualite)).indexOf("les valeurs saisies ne sont pas toutes numeriques!") >=0))||
			((taux.length > 0)&&((""+parseInt(taux)).indexOf("les valeurs saisies ne sont pas toutes numeriques!") >=0))||
			((montant.length > 0)&&((""+parseInt(montant)).indexOf("les valeurs saisies ne sont pas toutes numeriques!") >=0))||
			((duree.length > 0)&&((""+parseInt(duree)).indexOf("les valeurs saisies ne sont pas toutes numeriques!") >=0)) ){
				window.alert("les valeurs saisies ne sont pas toutes numeriques!");
				return;
		}

		n = d * 12;

		if( (mensualite.length < 1) )missing=1;
		if( (taux.length < 1) )missing=2;
		if( (montant.length < 1) )missing=3;
		if( (duree.length < 1) )missing=4;
		switch(missing){
			case 0:
					window.alert("Le champ à calculer doit être laissé vide!");
				break;
			case 1:
				if( (duree.length < 1)||(taux.length < 1)||(montant.length < 1) ){
					window.alert("Vous devez remplir au moins trois champs pour que le calcul se fasse !");
				}else{
					tempo=parseFloat(taux)/ 1200;
					mensualite=(tempo * parseFloat(montant)) / (1 - ( Math.pow((1 + tempo),-n) ));
					mensualite=cutFloat(mensualite,2);
					document.calculette.mens.value=findNreplace(mensualite,".",",");
				}
				break;
			case 2:
				if( (mensualite.length < 1)||(duree.length < 1)||(montant.length < 1) ){
					window.alert("Vous devez remplir au moins trois champs pour que le calcul se fasse!");
				}else{
						t1 = 100; t2 = 0; marge =parseFloat(montant)/ 10000; k = 0; nbf = 0;
					      	do{
								nbf = nbf + 1;
					    		if (nbf > 500){ k = 1; continue;}
					    		taux = (t1 + t2) / 2;
					    		tempo = taux / 1200;
					    		if (tempo == 0){ k = 1; continue;}
					    		c = (parseFloat(mensualite) * ((1 - (  Math.pow( (1 + tempo), (n * (-1)) ) )) / tempo));
					    		resid = Math.abs(parseFloat(montant) - c);
					    		if (resid > marge){
					       			if (t1 == t2){ k = 1; continue;}
					       			if (c >parseFloat(montant)) t2 = taux; else t1 = taux;
					    		}
					      	}while( (resid > marge) && (k != 1) );
					      	if ( k == 0 )
					     	 	document.calculette.interet.value=findNreplace(cutFloat(taux,2),".",",");
					      	else
								window.alert("Le calcul du taux n'est pas possible avec les valeurs saisies");
				}
				break;
			case 3:
				if( (mensualite.length < 1)||(taux.length < 1)||(duree.length < 1) ){
					window.alert("Vous devez remplir au moins trois champs pour que le calcul se fasse!");
				}else{
					tempo=parseFloat(taux)/ 1200;
					montant=(parseFloat(mensualite) * ((1 - (  Math.pow((1 + tempo),(n * (-1))) )) / tempo));
					montant=cutFloat(montant,2);
					document.calculette.montantpret.value=findNreplace(montant,".",",");
				}
				break;
			case 4:
				if( (mensualite.length < 1)||(taux.length < 1)||(montant.length < 1) ){
					window.alert("Vous devez remplir au moins trois champs pour que le calcul se fasse!");
				}else{
					tempo=parseFloat(taux)/ 1200;
					r = parseFloat(montant) * tempo;
	        		if (parseFloat(mensualite) < r )
       					window.alert("Le calcul de la durée n'est pas possible avec les valeurs saisies");
       				else{
           				a = parseFloat(mensualite) / tempo;
           				n = -1 * Math.log((a - parseFloat(montant)) / a) * (1 / Math.log(1 + tempo));
           				duree=cutFloat(n,1);
						document.calculette.nbmois.value=findNreplace(""+Math.ceil(duree),".",",");
       				}
				}
				break;
		}
	}