MINTAUX=3;
MAXTAUX=20;
MINCAP=15000;
MAXCAP=5000000;
MINMENS=150;
MAXMENS=3000;
MINDUR=5;
MAXDUR=25;
NumChars = "0123456789";
DecChars = "0123456789.,";
		
function IsNumeric(Data) {
var It = true;
var c;
	for (var x = 0; x < Data.length; x++)
		if (It) {
			c = Data.charAt(x);
			It = ( NumChars.indexOf(c) != -1);
		}
		return It;
}

function IsDecimal(Data) {
var It = true;
var c;
	for (var x = 0; x < Data.length; x++)
		if (It) {
			c = Data.charAt(x);
			It = ( DecChars.indexOf(c) != -1);
		}
		return It;
}


function checkNumber(str)
{
    var str2=""
    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if (ch==",") {
                ch="."
		}
        str2=str2+ch;
    }
    return str2;
}

function checkTaux(chaine)
{
	if(chaine!="")
	{
	    if (IsDecimal(chaine) == false)
	    {
		alert("Saisissez un taux numérique.");
		document.formcal.taux.focus();
	    
		var chaine2="";

		for (var i = 0; i < chaine.length; i++) 
		{
	        	var car = chaine.substring(i, i + 1)
			if (IsDecimal(car) == false)
			{
				car="";
			}
	        chaine2=chaine2+car;
	    	}
	    document.formcal.taux.value=chaine2;
	    return chaine2;
	    }
	}
}

function checkComma(chaine)
{
	var car = chaine.charAt(chaine.length-1);
	if ( car == ',' || car == '.' ) 
	{
		for (var i = 0; i < chaine.length-1; i++) 
		{
	        	var car2 = chaine.substring(i, i + 1);
			if (car2 == ',' || car2 == '.' )
			{
			    document.formcal.taux.value=chaine.substring(0, chaine.length-1);
			    return;
			}
		}
	}
}

function verifieTaux (i)
{
if(i!="")
{
	if (IsDecimal(i) == false)
	{
		alert("Saisissez un taux numérique.");
		document.formcal.taux.focus();
		return "";
	}

	if (i<MINTAUX)
	{
		alert("Saisissez un taux supérieur à " + MINTAUX +".");
		document.formcal.taux.focus();
		return "";
	}

	if (i>MAXTAUX)
	{
		alert("Saisissez un taux inférieur à " + MAXTAUX +".");
		document.formcal.taux.focus();
		return "";
	}

	return i;
}
}

function checkMensualite(chaine)
{
	if(chaine!="")
	{
	    if (IsNumeric(chaine) == false)
	    {
		alert("Saisissez un taux numérique.");
		document.formcal.mens.focus();
	    
		var chaine2="";

		for (var i = 0; i < chaine.length; i++) 
		{
	        	var car = chaine.substring(i, i + 1)
			if (IsNumeric(car) == false)
			{
				car="";
			}
	        chaine2=chaine2+car;
	    	}
	    document.formcal.mens.value=chaine2;
	    return chaine2;
	    }
	}
}

function verifieMensualite (m)
{
if(m!="")
{
	if (IsNumeric(m) == false)
	{
		alert("Saisissez une mensualité numérique.");
		document.formcal.mens.focus();
		return "";
	}

	if (m < MINMENS)
	{
		alert("La mensualité ne doit pas être inférieure à "+MINMENS +".");
		document.formcal.mens.focus();
		return "";
	}

	if (m > MAXMENS)
	{
		alert("La mensualité ne doit pas être supérieure à " + MAXMENS +".");
		document.formcal.mens.focus();
		return "";
	}

	return m;
}
}

function checkDuree(chaine)
{
	if(chaine!="")
	{
	    if (IsNumeric(chaine) == false)
	    {
		alert("Saisissez un taux numérique.");
		document.formcal.dure.focus();
	    
		var chaine2="";

		for (var i = 0; i < chaine.length; i++) 
		{
	        	var car = chaine.substring(i, i + 1)
			if (IsNumeric(car) == false)
			{
				car="";
			}
	        chaine2=chaine2+car;
	    	}
	    document.formcal.dure.value=chaine2;
	    return chaine2;
	    }
	}
}

function verifieDuree(d) {
if(d!="")
{
	if (IsNumeric(d) == false)
	{
		alert("Saisissez une durée numérique.");
		document.formcal.dure.focus();
		return "";
	}

	if (d < MINDUR){
		alert(" La durée doit être supérieure à " + MINDUR +".");
		document.formcal.dure.focus();
		return "";
	}
	if (d > MAXDUR) {
		alert(" La durée doit être inférieure à " + MAXDUR +".");
		document.formcal.dure.focus();
		return "";
	}
	return d;
}
}

function power(i,dure)	{
		var p = 1;
		for (var j = 0; j < (dure); j++)
			p *= (1 + i);
		return p
	 }       
function stop(){
		 alert("Il manque des données\r Veuillez saisir tous les champs s'il vous plait.")
}

function annuler() {
	document.formcal.dure.value="";
	document.formcal.taux.value="";
	document.formcal.mens.value="";
	document.formcal.mont.value="";
}

function montantLettre(v)
{
var s;
	var c = parseInt (v/1000);
	if (!c ) 
		return v;

	var u = v - (c*1000);
	var r = parseInt (c/1000);
	if (!r ) {
		s = c + " " + ajoute0(u);
		return s;
	}
	var m = c - (r*1000);
	s = r + " " + ajoute0(m) + " " + ajoute0(u);

	return s;
}

function ajoute0(v) {
var s;
	if (v == 0)
	{
		s = "000";
		return s;
	}
	if (v < 10)
	{
		s = "00" + v;
		return s;
	}
	if (v < 100)
	{
		s = "0" + v;
		return s;
	}
	return v;
}


function calcul (){
	document.formcal.mont.value="";
	if (document.formcal.taux.value==""){stop();return;}
	if (document.formcal.mens.value==""){stop();return;}
	if (document.formcal.dure.value==""){stop();return;}

	var n=document.formcal.taux.value;
	if (verifieTaux(n) =="")
		return;
	i=checkNumber(n);
 	i /= 1200;

	var m=document.formcal.mens.value;
	if (verifieMensualite(m) =="")
		return;

	var d=document.formcal.dure.value;
	if (verifieDuree (d) == "")
		return; 
	var duremois =  document.formcal.dure.value * 12;		

	pow=power(i,duremois)
	var c=Math.ceil( m * (pow - 1) / (pow * i));
	var e=Math.ceil((c/6.55957)+1);
	document.formcal.mont.value= montantLettre(c) +" Euros " ; 
}