// outils calculettes
function calc(what)
{
	var T;
switch(what) {
	case 'mens':
		T = document.monemprunt.taux.value.replace(',','.')/100;
		if ((T<0.02) || (T>0.09))
			alert('Taux situé entre 2 et 9% svp !');
		else {
			t = T/12;
			C = document.monemprunt.emprunt.value.replace(',','.');
			n = document.monemprunt.nbmens.value.replace(',','.');
			if (document.monemprunt.duree[1].checked) {
				n *= 12;
			}
			if( n == 0 ){
				alert("Vous devez saisir une durée d'emprunt");
			} else {
				document.monemprunt.mens.value = Math.round(100*C*(t/(1-(1/Math.pow(1+t,n)))))/100; }
			}
		break;
	case 'emprunt':
		T = document.monemprunt.taux.value.replace(',','.')/100;
		if ((T<0.02) || (T>0.09))
			alert('Taux situé entre 2 et 9% svp !');
		else {
			t = T/12;
			n = document.monemprunt.nbmens.value.replace(',','.');
			if (document.monemprunt.duree[1].checked) {
				n *= 12;
			}
			m = document.monemprunt.mens.value.replace(',','.');
			document.monemprunt.emprunt.value = Math.round(m*((1-(1/Math.pow(1+t,n)))/t)); }
		break;
	case 'nbmens':
		T = document.monemprunt.taux.value.replace(',','.')/100;
		if ((T<0.02) || (T>0.09))
			alert('Taux situé entre 2 et 9% svp !');
		else {
			t = T/12;
			C = document.monemprunt.emprunt.value.replace(',','.');
			m = document.monemprunt.mens.value.replace(',','.');
			document.monemprunt.nbmens.value = Math.round(Math.log(-1/(((C/m)*t)-1) )/Math.log(1+t));
			document.monemprunt.nbmens.value += ' mois (' + Math.round(document.monemprunt.nbmens.value/12) + ' an' + ((Math.round(document.monemprunt.nbmens.value/12)>1)?'s':'') + ')'; }
		break;
	};
}
function calculer()
{
	var f=document.mesfrais;
	//-- Initialisation
	var montant,natbien,honoraires,taxes,fraisnotaire,taux,ajout;
	montant = strtoint(f.prix_achatnet.value);
	nature = f.nature.options[f.nature.selectedIndex].text;
	honoraires = 0;
		
	if (nature=="Maison ou Appartement - neuf")	   natbien = "neuf";
	if (nature=="Maison ou Appartement - ancien")	natbien = "ancien";
			
	//-- Tableau statique
	trancheD = new Array(    0, 3051,  6101,   16771);
	trancheF = new Array(3050, 6100, 16770, 99999999);
	taux_0     = new Array(    5,   3.3,   1.65,    0.825);
	ajout_0    = new Array(    0, 51.85,  152.5,   290.85);
	fraisdivers = 500;
	tauxTVA  = 19.600;
	tauxAnc  = 4.890;
	tauxNeu  = 0.715;
	tauxBat  = 4.890;


	//-- Calcul des honoraires
	montant = Math.round(montant);
	s_montant = inttostr(montant);
	for (i=0; i < 4 ;i++) {
		if(trancheD[i]<montant && montant<trancheF[i]) {
			taux = taux_0[i];
			ajout = ajout_0[i];
			break;
		}	
	}

	//-- Calcul des taxes
	if (natbien=="neuf") 	taxes = montant/(1+tauxTVA/100)*0.615/100;
	if (natbien=="ancien") 	taxes = montant*4.89/100;
	if (natbien=="batir") 	taxes = montant * tauxBat / 100;

	//-- Frais de notaire
	fraisnotaire = (montant*taux/100+ajout)*(1+tauxTVA/100) + fraisdivers + taxes ;
	fraisnotaire = Math.round(fraisnotaire);

	//-- Affichage résultat
	s_fraisnotaire = inttostr(fraisnotaire);
	document.mesfrais.val1.value=s_fraisnotaire;
	
	//-- Montant total
	total = fraisnotaire+montant;
	total = Math.round(total);

	//-- Affichage résultat
	s_total = inttostr(total);
	document.mesfrais.val2.value=s_total;
	document.mesfrais.val3.value=s_montant;
	document.mesfrais.val4.value=fraisdivers;
	document.mesfrais.val5.value=taxes;
}
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;
}	


