/* Javascripts utilisés sur le site
 * Mettez l'ensemble de vos fonctions générique javascript ici
 * 
 * La liaison avec les page se fait à l'aide du code ci-dessous :
 * <script type="text/javascript" src="css-js/scripts.js"></script>
 */

/* CORRECTION DU BUG DE FLASH AVEC IE */

function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}

}





var legend = new Array();
legend["mont"]="Le montant de votre crédit sera de ";
legend["mens"]="Les mensualités de votre crédit seront de ";
legend["dure"]="La durée de votre crédit sera de ";	

// verifier navigateur

function isIE(){
	if (document.all){
		return true;
	} else {
		return false;
	}
}

function calculer(quoi){
	switch(quoi){
		case "mont":
			calcul_mont();
			break;
		case "mens":
			calcul_mens();
			break;
		case "dure":
			calcul_dure();
			break;
	}

}


function cleanAll(){
	 document.getElementById('mont').value="";
	 document.getElementById('mens').value="";
	 document.getElementById('taux').value="";
	 document.getElementById('dure').value="";
	 document.getElementById('resultat').value="";
}

// pour rendre invisible le bloc en question
function blocking(nr){
	var valeur ='';
	if (isIE()){
		valeur='block';
	}else {
		valeur='table-row';
	}
	 document.getElementById('line_mens0').style.display=valeur;
	 document.getElementById('line_mens').style.display=valeur;
	 document.getElementById('line_mont0').style.display=valeur;
	 document.getElementById('line_mont').style.display=valeur;
	 document.getElementById('line_dure0').style.display=valeur;
	 document.getElementById('line_dure').style.display=valeur;
	 
	 if (document.getElementById){
			//vista = (document.getElementById(nr).style.display == 'none') ? 'block' : 'none';
			document.getElementById('line_'+nr).style.display='none';
			document.getElementById('line_'+nr+'0').style.display='none';
			document.getElementById('txt_resultat').innerHTML = legend[nr];
		}
}




/************* pour la calculette financière ************/
MINTAUX=3;
MAXTAUX=20;
MINCAP=15000;
MAXCAP=5000000;
MINMENS=150;
MAXMENS=3000;
MINDUR=5;
MAXDUR=35;
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.getElementById('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.getElementById('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.getElementById('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.getElementById('taux').focus();
			return "";
		}
	
		if (i<MINTAUX){
			alert("Saisissez un taux supérieur à " + MINTAUX +".");
			document.getElementById('taux').focus();
			return "";
		}
	
		if (i>MAXTAUX){
			alert("Saisissez un taux inférieur à " + MAXTAUX +".");
			document.getElementById('taux').focus();
			return "";
		}
	
		return i;
	}
}

function checkMontant(chaine){
	if(chaine!="")	{
	    if (IsNumeric(chaine) == false)  {
			alert("Saisissez un montant numérique.");
			document.getElementById('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.getElementById('mont').value=chaine2;
			return chaine2;
		}
	}
}

function verifieMontant (cap){
	if(cap!="")	{
		if (IsNumeric(cap) == false){
			alert("Saisissez un montant numérique.");
			document.getElementById('mont').focus();
			return "";
		}
	
		if (cap < MINCAP){
			alert("Le montant du capital emprunté doit être supérieur à "+MINCAP +".");
			document.getElementById('mont').focus();
			return "";
		}
	
		if (cap > MAXCAP){
			alert("Le montant du capital emprunté doit être inférieur à "+MAXCAP +".");
			document.getElementById('mont').focus();
			return "";
		}
	
		return cap;
	}
}

function checkMensualite(chaine){
	if(chaine!="")	{
	    if (IsNumeric(chaine) == false) {
		alert("Saisissez un montant numérique.");
		document.getElementById('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.getElementById('mens').value=chaine2;
	    return chaine2;
	    }
	}
}

function verifieMensualite (m){
	if(m!=""){
		if (IsNumeric(m) == false)	{
			alert("Saisissez un montant numérique.");
			document.getElementById('mens').focus();
			return "";
		}
	
		if (m < MINMENS){
			alert("La mensualité ne doit pas être inférieure à "+MINMENS +".");
			document.getElementById('mens').focus();
			return "";
		}
	
		if (m > MAXMENS){
			alert("La mensualité ne doit pas être supérieure à " + MAXMENS +".");
			document.getElementById('mens').focus();
			return "";
		}
	
		return m;
	}
}


function checkDuree(chaine){
	if(chaine!=""){
	    if (IsNumeric(chaine) == false)
	    {
		alert("Saisissez un durée numérique.");
		document.getElementById('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.getElementById('dure').value=chaine2;
	    return chaine2;
	    }
	}
}

function verifieDuree(d) {
	if(d!=""){
		if (IsNumeric(d) == false){
			alert("Saisissez une durée numérique.");
			document.getElementById('dure').focus();
			return "";
		}
	
		if (d < MINDUR){
			alert("La durée doit être supérieure à " + MINDUR +".");
			document.getElementById('dure').focus();
			return "";
		}
		if (d > MAXDUR) {
			alert("La durée doit être inférieure à " + MAXDUR +".");
			document.getElementById('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 manquent des données.\nVeuillez saisir tous les champs s'il vous plaît.")
}

function calcul_mens(){
	var d;
	document.getElementById('mens').value="";
	if (document.getElementById('taux').value==""){stop();return;}
	if (document.getElementById('mont').value==""){stop();return;}
	if (document.getElementById('dure').value==""){stop();return;}

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

	var cap=document.getElementById('mont').value;
	if (verifieMontant(cap) == "")
		return;

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

	var duremois =  d * 12;		
	pow=power(i,duremois)
	var m=parseInt( (cap * pow * i) / (pow - 1));
	var e=parseInt((m/6.55957)+1);
	document.getElementById('resultat').value= montantLettre(m) +" € " ; 
}

function calcul_mont (){
	document.getElementById('mont').value="";
	if (document.getElementById('taux').value==""){stop();return;}
	if (document.getElementById('mens').value==""){stop();return;}
	if (document.getElementById('dure').value==""){stop();return;}

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

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

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

	pow=power(i,duremois)
	var c=parseInt( m * (pow - 1) / (pow * i));
	var e=parseInt((c/6.55957)+1);
	document.getElementById('resultat').value= montantLettre(c) +" € " ; 
}

function calcul_dure(){

var n;
var cap;
var i;

	document.getElementById('dure').value="";

	if (document.getElementById('taux').value==""){stop();return;}
	if (document.getElementById('mont').value==""){stop();return;}
	if (document.getElementById('mens').value==""){stop();return;}

	n=document.getElementById('taux').value;
	if (verifieTaux(n) =="")
		return;

	i=checkNumber(n);
	i /= 1200;

	cap = document.getElementById('mont').value;
	if (verifieMontant(cap)  == "") 
		return;

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

	n=calculn(i,cap,m);
	if (n=="")
		return;

	n=Math.round(calculn(i,cap,m));
	if (n=="")
		return;

	document.getElementById('resultat').value=n + " ans";
}
function calculn(i,cap,m){

		for(var n = 0; cap > 0; n++){
			cap = ( cap * ( 1 + i)) - m;
			if(n > 300)break;
		}

		n /= 12;

		if (n < 5){
			alert("Cette solution n'est pas réaliste.\r Modifiez l'un des paramètres.")
			return "";
		}

		if (n > 25){
			alert("Cette solution n'est pas réaliste.\r Modifiez l'un des paramètres.")
			return "";
		}

		n *= 100;
		n = parseInt(n);
		n /= 100;

		return n;

}

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.getElementById('dure').value="";
	document.getElementById('taux').value="";
	document.getElementById('mens').value="";
	document.getElementById('mont').value="";
}