
function update_duree() {
	var valeur = $('duree').options[ $('duree').selectedIndex].value;
	$('interet').value=affiche_nbre(Math.round ((2.85+0.05*valeur)*100)/100);
}

function calculer() {
	
	var err_montant = 0;
	var err_interet = 0;
	var err_assurance = 0;
	
	// duree souhaite
	var montant = format_nbre( $('montant').value);
	var duree = $('duree').options[ $('duree').selectedIndex].value;
	var interet = format_nbre($('interet').value);
	var assurance = format_nbre($('assurance').value);
	var taux =Math.pow((1+(interet*1+assurance*1)/100),1/12)-1;
	var mensualite = Math.round((montant * taux)/(1-Math.pow((1+taux),(-12*duree))));
	var cout = Math.round((duree*12*mensualite-montant)*100)/100;
	var done
	var tr
	var j

	//test de la validité des champs
	if (!montant.match('^[0-9]{1,}$')) {err_montant=1;} else {if ((montant>1000000) || (montant<10000)) {err_montant=1;}}
	if (!interet.match('^[0-9]{1,}[.]{0,}[0-9]{0,}$')) {err_interet=1;} else {interet=parseFloat(interet); if ((interet>20.0) || (interet<0.0)) {err_interet=1;}}
	if (!assurance.match('^[0-9]{1,}[.]{0,}[0-9]{0,}$')) {err_assurance=1;} else {assurance=parseFloat(assurance); if ((assurance>10.0) || (assurance<0.0)) {err_assurance=1;}}
	
	//affichage des messages
	if (err_montant==1)
	{
		// message : montant
		$('fond_sombre').setStyles({opacity:0,display:'block'});
		$('div_chp_montant').setStyles({opacity:0,display:'block'});
		$('fond_sombre').fade(0.4);$('div_chp_montant').fade('in');
	} else if (err_interet==1)
	{
		// message : interet
		$('fond_sombre').setStyles({opacity:0,display:'block'});
		$('div_chp_interet').setStyles({opacity:0,display:'block'});
		$('fond_sombre').fade(0.4);$('div_chp_interet').fade('in');
	} else if (err_assurance==1)
	{
		// message : assurance
		$('fond_sombre').setStyles({opacity:0,display:'block'});
		$('div_chp_assurance').setStyles({opacity:0,display:'block'});
		$('fond_sombre').fade(0.4);$('div_chp_assurance').fade('in');
	} else {
	
		// calcule des mensualités
		for (var i=0;i<=4;i++)
		{
			j = 10+5*i;
			if (duree == j)
			{
				// sélection de la ligne
				$('b' + duree +'').morph('.ligne_mensualite');
				$('b' + duree +'_int').morph('.ligne_mensualite');
				$('b' + duree +'_ass').morph('.ligne_mensualite');
				$('b' + duree +'_men').morph('.ligne_mensualite');
				$('b' + duree +'_cou').morph('.ligne_mensualite');
				$('b' + duree +'_int').innerHTML=affiche_nbre(interet) + ' %';
				$('b' + duree +'_ass').innerHTML=affiche_nbre(assurance) + ' %';
				$('b' + duree +'_men').innerHTML=affiche_nbre(mensualite) + ' &euro;';
				$('b' + duree +'_cou').innerHTML=affiche_nbre(cout) + ' &euro;';
				done=1;
			} else {
				// annulation de l'ancienne ligne sélectionnée
				$('b' + j +'').morph('.td4_calculette');		
				$('b' + j +'_int').morph('.td4_calculette');		
				$('b' + j +'_ass').morph('.td4_calculette');		
				$('b' + j +'_men').morph('.td4_calculette');		
				$('b' + j +'_cou').morph('.td4_calculette');
			}
			$('trm' + j).setStyles({opacity:0,display:'none'});
			$('trm' + j).fade('out');							
		}
			
			$('trp30').setStyles({opacity:0,display:'none'});
			$('trp30').fade('out');							
		
		if (done!=1)
		{
			if (duree<10)
			{
				tr='m10';
			} else if ((duree>10) && (duree<15)) {
				tr='m15';
			} else if ((duree>15) && (duree<20)) {
				tr='m20';
			} else if ((duree>20) && (duree<25)) {
				tr='m25';
			} else if ((duree>25) && (duree<30)) {
				tr='m30';
			} else if (duree>30 ){
				tr='p30';
			}
			$(tr +'').innerHTML=duree + ' ans';
			$(tr +'_int').innerHTML=affiche_nbre(interet) + ' %';
			$(tr +'_ass').innerHTML=affiche_nbre(assurance) + ' %';
			$(tr +'_men').innerHTML=affiche_nbre(mensualite) + ' &euro;';
			$(tr +'_cou').innerHTML=affiche_nbre(cout) + ' &euro;';
			$('tr' + tr).setStyles({opacity:0,display:'table-row'});
			$('tr' + tr).fade('in');	
		}
		
		// tableau de base
		for (var i=0;i<=4;i++)
		{
			var duree_base = 10+5*i;
			var taux_calcule = interet-0.05*duree;
			taux = Math.round ((taux_calcule+0.05*duree_base)*100)/100;
			$('b' + duree_base +'_int').innerHTML=affiche_nbre(taux) + ' %';
			$('b' + duree_base +'_ass').innerHTML=affiche_nbre(assurance) + ' %';
			taux =Math.pow((1+(taux+assurance*1)/100),1/12)-1;
			mensualite = Math.round((montant * taux)/(1-Math.pow((1+taux),(-12*duree_base)))*100)/100;
			$('b' + duree_base +'_men').innerHTML=affiche_nbre(mensualite) + ' &euro;';
			cout = Math.round((duree_base*12*mensualite-montant)*100)/100;
			$('b' + duree_base +'_cou').innerHTML=affiche_nbre(cout) + ' &euro;';
		}
	}					
	
}

function reprendre_calculette() {
	// retire le message
	$('fond_sombre').fade('out'); 
	$('div_chp_montant').fade('out');
	$('div_chp_interet').fade('out');
	$('div_chp_assurance').fade('out');
}

function format_nbre(nbre) {
	nbre = nbre.replace( ',' , '.' );
	nbre = nbre.replace( ' ' , '' );
	//if (nbre>0.0) {nbre = (Math.round(nbre*100.0))/100.0;}
	nbre = nbre + '';
	return nbre;
}

function affiche_nbre(nbre) {
	nbre = nbre + '';
	var point = nbre.indexOf('.',0);
	var len = nbre.length;
	if (point<0) 
	{
		if (len>6)
		{
			nbre=nbre.substring(0,len-6) + ' ' + nbre.substring(len-6,len-3) + ' ' + nbre.substring(len-3,len);
		} else if (len>3) {
			nbre=nbre.substring(0,len-3) + ' ' + nbre.substring(len-3,len);
		}
		nbre = nbre + ',00';
	} else {
		var g = nbre.substring(0,point);
		len = g.length;
		if (len>6)
		{
			g=g.substring(0,len-6) + ' ' + g.substring(len-6,len-3) + ' ' + g.substring(len-3,len);
		} else if (len>3) {
			g=g.substring(0,len-3) + ' ' + g.substring(len-3,len);
		}
		if (point+1<nbre.length) {var d = nbre.substring(point+1,nbre.length);} else {d='';}
		if (d.length==0) {d='00';}
		if (d.length==1) {d=d +'0';}
		nbre = g + ',' + d;
	}
	return nbre;
}


