MINTAUX=3;
MAXTAUX=20;
MINCAP=15000;
MAXCAP=5000000;
MINMENS=150;
MAXMENS=4000;
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 checkMontant(chaine)
{
	if(chaine!="")
	{
	    if (IsNumeric(chaine) == false)
	    {
		alert("Saisissez un taux numérique.");
		document.formcal.mont.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.mont.value=chaine2;
	    return chaine2;
	    }
	}
}

function verifieMontant (cap)
{
if(cap!="")
{
	if (IsNumeric(cap) == false)
	{
		alert("Saisissez un montant numérique.");
		document.formcal.mont.focus();
		return "";
	}

	if (cap < MINCAP)
	{
		alert("Le montant du capital emprunté doit être supérieur à "+MINCAP +".");
		document.formcal.mont.focus();
		return "";
	}

	if (cap > MAXCAP)
	{
		alert("Le montant du capital emprunté doit être inférieur à "+MAXCAP +".");
		document.formcal.mont.focus();
		return "";
	}

	return cap;
}
}

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 calcul (){
var d;
	document.formcal.mens.value="";
	if (document.formcal.taux.value==""){stop();return;}
	if (document.formcal.mont.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 cap=document.formcal.mont.value;
	if (verifieMontant(cap) == "")
		return;

	d=document.formcal.dure.value;
	if (verifieDuree (d) == "")
		return; 

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

function montantLettre(v)
{
var s;
	var c = parseInt (v/1000000);
	var r = v - c*1000000;
	var m = parseInt (r/1000);
	r = r - m*1000;

	if (c)
		s = c + " " + ajoute0(m) + " " + ajoute0(r);
	else
	{
		if (m)
		{
		s = m + " " + ajoute0(r);
	}
	else
		s = v;
	}
	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 annuler() {
	document.formcal.dure.value="";
	document.formcal.taux.value="";
	document.formcal.mens.value="";
	document.formcal.mont.value="";
}