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);
}
