function CalculTotal() {
	//Initialisation
	var f=document.f_capEmprunt;
	var salaireAn,revenusFonciers,revenusFinanciers,autresRevenus,totalRevenus,loyer,mensPretRp,mensPretImmo,mensPretConso,mensAutresPrets,totalCharges,revenuMens,resMensualite,resReste;
	salaireAn = strtoint(f.salaireAn.value);
	revenusFonciers  = strtoint(f.revenusFonciers.value);
	revenusFinanciers = strtoint(f.revenusFinanciers.value);
	autresRevenus = strtoint(f.autresRevenus.value);
	loyer = strtoint(f.loyer.value);
	mensPretRp = strtoint(f.mensPretRp.value);
	mensPretImmo = strtoint(f.mensPretImmo.value);
	mensPretConso = strtoint(f.mensPretConso.value);
	mensAutresPrets = strtoint(f.mensAutresPrets.value);

	// Calcul
	totalRevenus = salaireAn + revenusFonciers + revenusFinanciers + autresRevenus;
	revenuMens = totalRevenus/12;
	totalCharges = loyer + mensPretRp + mensPretImmo + mensPretConso + mensAutresPrets;
	resMensualite = (33*(revenuMens))/100;
	resReste = revenuMens - totalCharges - resMensualite;

	// Affichage r&eacute;sultat
	s_totalRevenus = inttostr(totalRevenus);
	s_totalCharges = inttostr(totalCharges);	
	s_resMensualite = inttostr(resMensualite);	
	s_resReste = inttostr(resReste);	

	if(document.all)	{
		f.totalRevenus.value = s_totalRevenus;
		f.totalCharges.value = s_totalCharges;
		f.resMensualite.value = s_resMensualite;
		f.resReste.value = s_resReste;
	}
	else	{
		f.totalRevenus.value = s_totalRevenus;
		f.totalCharges.value = s_totalCharges;
		f.resMensualite.value = s_resMensualite;
		f.resReste.value = s_resReste;
	}
	calculer(resMensualite);
};
function calculer(mens)
{
	// Initialisation
	var f=document.f_capEmprunt;
	var duree15,ta15,tm15,mens,capa15,duree20,ta20,tm20,mens,capa20;
	
	duree15 = 15;
	tau15 = strtofloat(f.taux15.value);
	ta15 = tau15/100;
	tm15 = ta15 / 12;
	capa15 = mens * (1 - Math.pow(1/(1+tm15),12*duree15)) / tm15;
	capa15 = Math.round(capa15);
	
	duree20 = 20;
	tau20 = strtofloat(f.taux20.value);
	ta20 = tau20/100;
	tm20 = ta20 / 12;
	capa20 = mens * (1 - Math.pow(1/(1+tm20),12*duree20)) / tm20;
	capa20 = Math.round(capa20);
	
	duree25 = 25;
	tau25 = strtofloat(f.taux25.value);
	ta25 = tau25/100;
	tm25 = ta25 / 12;
	capa25 = mens * (1 - Math.pow(1/(1+tm25),12*duree25)) / tm25;
	capa25 = Math.round(capa25);
	
	duree30 = 30;
	tau30 = strtofloat(f.taux30.value);
	ta30 = tau30/100;
	tm30 = ta30 / 12;
	capa30 = mens * (1 - Math.pow(1/(1+tm30),12*duree30)) / tm30;
	capa30 = Math.round(capa30);
		
	s_emprunt15 = inttostr(capa15);
	document.getElementById("idemprunt15").innerHTML= s_emprunt15;
	s_emprunt20 = inttostr(capa20);
	document.getElementById("idemprunt20").innerHTML=s_emprunt20;
	s_emprunt25 = inttostr(capa25);
	document.getElementById("idemprunt25").innerHTML=s_emprunt25;
	s_emprunt30 = inttostr(capa30);
	document.getElementById("idemprunt30").innerHTML=s_emprunt30;
};
function CalculFraisNotaire()
{
	// Initialisation
	var f=document.f_fraisNotaire;
	var montant,etatBien,fraisnotaire,travaux,totalHorsFrais,fraisnotaire,totalfrais;
	montant = strtoint(f.acquisition.value);
	etatBien  = f.etatBien.options[f.etatBien.selectedIndex].value;
	travaux  = strtoint(f.travaux.value);

	// Calcul
	fraisnotaire = frais_de_notaire(montant,etatBien);
	totalhorsfrais = montant + travaux;
	totalfrais = totalhorsfrais + fraisnotaire;

	// Affichage r&eacute;sultat
	s_fraisnotaire = inttostr(fraisnotaire);
	s_totalhorsfrais = inttostr(totalhorsfrais);
	s_totalfrais = inttostr(totalfrais);	

	if(document.all)	{
		f.fraisNotaire.value = s_fraisnotaire;
		f.totalHorsFrais.value = s_totalhorsfrais;
		f.total.value = s_totalfrais;
	}
	else	{
		f.fraisNotaire.value = s_fraisnotaire;
		f.totalHorsFrais.value = s_totalhorsfrais;
		f.total.value = s_totalfrais;
	}
};
///////////////////////////////
function lectnb(si) {
 var result="";
 for (var pi=0;pi<si.length;pi++) {
  var ci=si.charAt(pi);
  if ((ci!="0")||(result!=""))
   if (ci>="0" && ci<="9")
    result+=ci
   else if ((ci==",")||(ci=="."))
    result+="."
   else if ((ci=="-")&&(result==""))
    result+="-";
 }
 if (result=="") result="0";
 return result;
}

function strtoint(si) {
 return parseInt(lectnb(si));
}

function strtofloat(sf) {
 return parseFloat(lectnb(sf));
}

function inttostr(i) {
 var result="";
 i=Math.round(parseFloat(i));
 si=i.toString();
 if (isNaN(si)) si="0";
 bi = 0;
 for (pi=si.length-1;pi>=0;pi--) {
  ci = si.charAt(pi);
  if ((bi==0)&&(pi!=si.length-1)&&(ci!="-")) {
   result=ci+" "+result;
  } else {
   result=ci+result;
  }
  bi=(bi+1)%3;
 }
 return result;
}

function floattostr(f) {
 f=Math.round(f*10000)/10000;
 var sf = f.toString();
 var result = "";
 for (pi=0;pi<sf.length;pi++) {
  cf = sf.charAt(pi);
  if (cf=='.')
   result += ','
  else
   result += cf;
 }
 return result;
}



function number_format(src,nv) {
	nv=parseInt(nv,10);
	if (nv<0||nv>9) nv=0; 
	cm = Math.pow(10,nv);
	s = src.value;
	
	if (cm>1) {	
		f= strtofloat(s);
		f2= parseFloat(Math.round(f*cm)) / cm;
		i2= Math.floor(f2);
		v2= Math.round(cm * (f2-i2));
		sv2= "0000000000"+v2;
		sv2d=sv2.length-nv;
		sv2f=sv2.length;
		sv2= sv2.substring(sv2d,sv2f);
		
		sf = inttostr(i2)+","+sv2;
	} else {
		i=strtoint(s);
		sf=inttostr(i);
	}
	src.value=sf;
}	


function frais_de_notaire(montant_achatnet,nature)
{
	//-- Vérifications
	if (( isNaN(parseInt(montant_achatnet,10))) || (montant_achatnet==0)){
		return(0);
	}
	if (nature == 7) return(0);

	//-- Initialisation
	var montant,natbien,honoraires,taxes,fraisnotaire,taux,ajout,nbTranche;
	honoraires = 0;
	montant    = parseInt(montant_achatnet,10);
	if (nature == 1 || nature == 3) natbien = "neuf";
	if (nature == 2) natbien = "ancien";
	if (nature == 5) natbien = "batir";

	/* tab_ref famille : immo_nature
		1 - Maison particulière - neuf 
		2 - Maison particulière - ancien 
		3 - Appartement - neuf 
		4 - Appartement - ancien 
		5 - Terrain + Construction 
		6 - Terrain seul 
		7 - Construction Seule 
		8 - VEFA - Maison particulière 
		9 - VEFA - Appartement 
	*/
	
	//-- Tableau des tranches de taux pour honoraires - MAJ mars 2008
	nbTranche = 4;
	trancheD  = new Array(    0,  6501,  17001,   30001 );
	trancheF  = new Array( 6500, 17000,  30000, 99999999);
	taux_0    = new Array(    4,  1.65,   1.10,    0.825);
	ajout_0   = new Array(    0,   152,    246,      328);

	//-- Taux des taxes - MAJ mars 2008
	tauxAnc  = 5.09;
	tauxNeu  = 0.715;
	tauxBat  = 5.09;
	tauxTVA  = 19.6;
	
	//-- Calcul des honoraires
	montant = Math.round(montant);
	for (i=0; i < nbTranche ;i++) {
		if(trancheD[i]<=montant && montant<=trancheF[i]) {
			taux  = taux_0[i];
			ajout = ajout_0[i];
			break;
		}
	}
	honoraires = (montant*taux/100+ajout)*(1+tauxTVA/100);

	//-- Calcul des taxes
	if (natbien=="neuf") 		taxes = montant * tauxNeu/100;
	if (natbien=="ancien") 	taxes = montant * tauxAnc/100;
	if (natbien=="batir") 	taxes = montant * tauxBat/100;

	//-- Calcul des Frais divers - MAJ mars 2008
	fraisdivers = 707 + montant/1000;

	//-- Frais de notaire arrondi à la centaine
	fraisnotaire = honoraires + fraisdivers + taxes ;
	fraisnotaire = Math.round(fraisnotaire/100)*100;

	return(fraisnotaire);
}
