
function IRvsPFL18()
{
	//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

	NbPartL = document.getElementById("part").value;
	NbPart = NbPartL;
	// alert(NbPart);
	//
	//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	//
	// AutreMontantImposable
	//
	AutreMontantImposable = suppEspace(document.getElementById("MontantImposable").value);
	// AutreMontantImposable = parseInt(document.getElementById("MontantImposable").value);
	if (document.getElementById("MontantImposable").value == "")
	{
		AutreMontantImposable =0;
	}
	document.getElementById("MontantImposable").value = formatMonetaire(AutreMontantImposable);
	//
	//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	//
	var Dividende = suppEspace(document.getElementById("Dividende").value);
	// Dividende = parseInt(document.getElementById("Dividende").value);
	// Dividende = document.getElementById("Dividende").value ;
	document.getElementById("Dividende").value = formatMonetaire(Dividende);

	var Abat40VL = Math.round(Dividende * 0.40);

	document.getElementById("Abat40VL").innerHTML = formatMonetaire(Abat40VL);
	
	var AbatVL = Math.round(1525)
	if (NbPart > 1)
	{
		AbatVL = Math.round(3050)
	}
	AbatVL = Math.min(AbatVL,Dividende - Abat40VL);
	document.getElementById("AbatVL").innerHTML = formatMonetaire(AbatVL);
	
	var RevenuImposableVL= Math.round(Dividende - Abat40VL - AbatVL);
	
	RevenuImposableVL = Math.max(RevenuImposableVL,0);
	document.getElementById("RevenuImposableVL").innerHTML = formatMonetaire(RevenuImposableVL);
	
	var CSGdeductible = Math.round(Dividende *0.0580);
	document.getElementById("CSGdeductible").innerHTML = formatMonetaire(CSGdeductible);
	
	var RevImpCSGdeduc = Math.round(RevenuImposableVL - CSGdeductible );
	
	RevImpCSGdeduc = Math.max(RevImpCSGdeduc,0);
	document.getElementById("RevImpCSGdeduc").innerHTML = formatMonetaire(RevImpCSGdeduc );
	
	var AutreRevenuImposableparPart = AutreMontantImposable / NbPart;
	
	var RI1Part = Math.round((RevImpCSGdeduc / NbPart)  + AutreRevenuImposableparPart);
	
	var Impot1 =0;
	Impot1 = Calcul_impot(RI1Part) ;
	// document.getElementById("IR1P.value = Math.round(Impot1);
		
			//credit d'impot
			CreditiMPOT = Math.round(115.0);
			if (NbPart > 1)
			{
				CreditiMPOT= Math.round(230.0);
			}
			CreditiMPOTTH = (Dividende * 0.5);
			CreditiMPOT = Math.min(CreditiMPOTTH,CreditiMPOT);	 
			document.getElementById("CredImp").innerHTML = Math.round(CreditiMPOT);
			
			// impot total
			var ImpotUN = Math.round((Impot1* NbPart )- CreditiMPOT);
			document.getElementById("Impot1").innerHTML = formatMonetaire(ImpotUN);
			
			//prélèvements sociaux calcul 1
			var PreSoc1 = Math.round(Dividende * 0.121);
			document.getElementById("PreSoc1").innerHTML = formatMonetaire(PreSoc1);
			
			// IRtotal
			
			var TotalIR = Math.round(ImpotUN  + (Dividende * 0.121));
			document.getElementById("TOTIR").innerHTML = formatMonetaire(TotalIR);
			
			
			// PFL 18%
			PFLde18 = Math.round(Dividende * 0.18);
			document.getElementById("PFL18").innerHTML = formatMonetaire(PFLde18);
			//prélèvements sociaux calcul 2
			PSoc2 = Math.round(Dividende * 0.121);
			document.getElementById("PreSoc2").innerHTML = formatMonetaire(PSoc2);
			// Impot sur autre revenu
			//alert(AutreRevenuImposableparPart);
			var Impot2 = 0;
			Impot2 = Calcul_impot(AutreRevenuImposableparPart) ;
			// document.getElementById("IR1P2.value = Math.round(Impot2);
			// Impot Total2
			ImpotDEUX= Math.round(Impot2 * NbPart);
			document.getElementById("Impot2").innerHTML = formatMonetaire(ImpotDEUX);
			// Total PFL18 + IR
			TOTIRdeux = Math.round(ImpotDEUX + PFLde18 + PSoc2);
			document.getElementById("TOTIR2").innerHTML = formatMonetaire(TOTIRdeux);
		
			
			if(TOTIRdeux < TotalIR)
			{
				document.getElementById("RESULT").innerHTML = "Le choix du prélèvement libératoire est plus avantageux";
			}
			else
			{
				document.getElementById("RESULT").innerHTML = "L'incorporation des dividendes à votre déclaration d'impôt est plus avantageuse";
			}	
}

function Calcul_impot(ImpPart)
{
// Calcul-Ir pour une part
		// SI(G13<$M$3;0;					5687.0
		// SI(G13<=$M$4;(G13-$M$3)*$N$4;		m4 = 11344.0  M3 = 11344.0  N4 = 0.055
		// SI(G13<=$M$5;$P$4+(G13-$M$4)*$N$5;	M5= 25195  P4 = 311  m4 = 11344.0   0.14
		// SI(G13<=$M$6;$P$5+(G13-$M$5)*$N$6;   m6 = 67546 P5 = 2250 M5= 25195    0.30
		// (G13-$M$6)*$N$7+$P$6))))             m6 = 67546   n7 = 0.40  P6 = 14956
	var Impot1 = 0;
	
		if (ImpPart < 5875.0)
			{
				Impot1 = 0;
			}
		else
			{	
				if (ImpPart < 11720.0)
				{
					Impot1 = Math.round((ImpPart - 5875.0) * 0.055);
				}
				else
				{
					if (ImpPart < 26030.0)
					{
						Impot1 = Math.round(323.0 +(ImpPart - 11720.0) * 0.14);
					}
					else
					{
						if (ImpPart < 69783.0)
						{
							Impot1 = Math.round(2326.0 +(ImpPart - 26030.0) * 0.30);
							
						}
						else
						{
							Impot1 = Math.round(15452.0 +(ImpPart - 69783.0) * 0.40);
						}	
					}
				}		
			}
		return Impot1;
}

function formatMonetaire(input) {
        var rep;

	if (input =="")
		input= 0;

	var somme1 =input+" ";
	var somme = input+" ";
	for (var i=0; i<somme1.length; i++) {
		if (somme1.charAt(i)=='.') {
			somme=somme1.substring(0,i);
			break;
		}
	}

	var sommeSansEspaces = suppEspace(somme);
 	var sommeInterm;
	var sommeFormatee = "";
	if (!isNaN(sommeSansEspaces)) {
		rep = true;
		if ((sommeSansEspaces.substring(0,1)=="-") || (sommeSansEspaces.substring(0,1)=="+")) {
		signe = sommeSansEspaces.substring(0,1);
			sommeInter = sommeSansEspaces.substring(1,sommeSansEspaces.length);
		} else {
			signe = "";
			sommeInter = sommeSansEspaces;
		}
		if (sommeInter.length > 3) {
			do {
			sommeFormatee = sommeInter.substring(sommeInter.length-3,sommeInter.length) + " " + sommeFormatee;
			sommeInter = sommeInter.substring(0,sommeInter.length-3);
			} while (sommeInter.length > 3);
		}

		if (sommeInter.length>0) {
			sommeFormatee = sommeInter + " " + sommeFormatee;
			sommeFormatee = sommeFormatee.substring(0,sommeFormatee.length-1);
		}

		if ((sommeFormatee.length>0) && (sommeFormatee!=0)) {
			sommeFormatee = signe + sommeFormatee;
		}
		input=sommeFormatee;
	}
	else {
		rep=false;
		input=somme;
	     }

	return input;
}

function isMonetaire(valeur) {
	// renvoie true si la valeur est monetaire (numérique et comprise en -999 999 999 et 	// +999 999 999 ou chaine vide)
	var rep;

	valeur = suppEspace(valeur);

	if (valeur=="")
		valeur=0;

	if (!isNumerique(valeur)) {
		if (valeur=="") {
			rep = true;
		} else {
			if ((parseFloat(valeur)>=-999999999) && (parseFloat(valeur)<=999999999)) {
				rep = true;
			} else {
				rep = false;
			}
		}
	} else {
		rep = false;
	}
	return rep;
}

function suppEspace(chaine) {
	var ch="0";

	if (chaine =="")
		chaine="0";

	ch = chaine;
	if (ch.indexOf(" ")!=-1) {
		do {
			ch = ch.substring(0,ch.indexOf(" ")) + ch.substring(ch.indexOf(" ")+1,ch.length);
		} while (ch.indexOf(" ")!=-1);
	}
	return ch;
}



function formatMonetaireSaisie(input) {
        var rep;

	if (input.value =="")
		input.value=0;

	var somme1 =input.value+" ";
	var somme =input.value+" ";
	for (var i=0; i<somme1.length; i++) {
		if (somme1.charAt(i)=='.') {
			somme=somme1.substring(0,i);
			break;
		}
	}

	var sommeSansEspaces = suppEspace(somme);
 	var sommeInterm;
	var sommeFormatee = "";
	if (!isNaN(sommeSansEspaces)) {
		rep = true;
		if ((sommeSansEspaces.substring(0,1)=="-") || (sommeSansEspaces.substring(0,1)=="+")) {
		signe = sommeSansEspaces.substring(0,1);
			sommeInter = sommeSansEspaces.substring(1,sommeSansEspaces.length);
		} else {
			signe = "";
			sommeInter = sommeSansEspaces;
		}
		if (sommeInter.length > 3) {
			do {
			sommeFormatee = sommeInter.substring(sommeInter.length-3,sommeInter.length) + " " + sommeFormatee;
			sommeInter = sommeInter.substring(0,sommeInter.length-3);
			} while (sommeInter.length > 3);
		}

		if (sommeInter.length>0) {
			sommeFormatee = sommeInter + " " + sommeFormatee;
			sommeFormatee = sommeFormatee.substring(0,sommeFormatee.length-1);
		}

		if ((sommeFormatee.length>0) && (sommeFormatee!=0)) {
			sommeFormatee = signe + sommeFormatee;
		}
		input.value=sommeFormatee;
	}
	else {
		rep=false;
		input.value=somme;
	     }

	return rep;
}

function formatMonetaireLabel(input) {
    var rep;

    if (input.innerHTML =="")
		input.innerHTML=0;
		
	
	
	var somme1 =input.innerHTML+" ";
	var somme =input.innerHTML+" ";
	
	somme1 = somme1.replace(',', '.');
	somme = somme.replace(',', '.');
	
	for (var i=0; i<somme1.length; i++) {
		if (somme1.charAt(i)=='.') {
			somme=somme1.substring(0,i);
			break;
		}
	}
	// Suppression des 0 non significatifs
	if (somme.length>1 && input.innerHTML != 0) {
		for (var i=0; i<somme.length; i++) {
			if (somme.charAt(i)!='0') {
				somme=somme.substring(i);
				break;
			}
		}
	}
	
	var sommeSansEspaces = suppEspace(somme);
	var sommeInterm;
	var sommeFormatee = "";
	
	if (!isNaN(sommeSansEspaces)) {
		rep = true;
		if ((sommeSansEspaces.substring(0,1)=="-") || (sommeSansEspaces.substring(0,1)=="+")) {
		signe = sommeSansEspaces.substring(0,1);
			sommeInter = sommeSansEspaces.substring(1,sommeSansEspaces.length);
		} else {
			signe = "";
			sommeInter = sommeSansEspaces;
		}
		if (sommeInter.length > 3) {
			do {
			sommeFormatee = sommeInter.substring(sommeInter.length-3,sommeInter.length) + " " + sommeFormatee;
			sommeInter = sommeInter.substring(0,sommeInter.length-3);
			} while (sommeInter.length > 3);
		}
	
		if (sommeInter.length>0) {
			sommeFormatee = sommeInter + " " + sommeFormatee;
			sommeFormatee = sommeFormatee.substring(0,sommeFormatee.length-1);
		}
	
		if ((sommeFormatee.length>0) && (sommeFormatee!=0)) {
			sommeFormatee = signe + sommeFormatee;
		}
		input.innerHTML=sommeFormatee;
	}
	else {
		rep=false;
		input.innerHTML=somme;
	     }
	
	return rep;
}