// mediatix.com rs 25/3/2007

function convertClick() {
	if (verifValeurs()) {
		monnaie=1-monnaie;
		coeff=(monnaie==1)?1/pariteEuro:pariteEuro;
		document.frm.capital.value=inttostr(strtoint(document.frm.capital.value)*coeff);
		for (i=1; i<=nbrePaliers; i++)
			eval("document.frm.mens"+i+".value=inttostr(strtoint(document.frm.mens"+i+".value)*coeff)");
		ongletClick(onglet);
	}
	return false;
}

function ongletClick(ong) {
	if (verifValeurs()) {
		l="index.php?client="+client+"&tpl="+template+"&ong="+ong+"&mnn="+monnaie;
		l+="&capital="+strtoint(document.frm.capital.value)+"&txi="+strtofloat(document.frm.tauxInteret.value)+"&txa="+strtofloat(document.frm.tauxAssurance.value)+"&det="+(document.frm.detail.value);

		if ((onglet==1)||(onglet==9)) {
			l+="&modetxa="+(document.frm.modeAssurance.selectedIndex+1);
		} else {
			l+="&modetxa="+document.frm.modeAssurance.value;
		}
		l+="&nbrePaliers="+nbrePaliers;

		for (i=1; i<=nbrePaliers; i++) {
			l+="&mens"+i+"="+strtoint(eval("document.frm.mens"+i+".value"));
			l+="&dur"+i+"="+strtoint(eval("document.frm.dur"+i+".value"));
		}

		location=l;
	}
	return false;
}

function verifValeurs() {
	var verifValeurs=1;

	if (strtoint(document.frm.capital.value)<=0) {
		jalert("Veuillez indiquer le capital initial");
		verifValeurs=0;
	} else {
		for (i=1; i<=nbrePaliers; i++) {
			var mens=strtoint(eval("document.frm.mens"+i+".value"));
			var dur=strtoint(eval("document.frm.dur"+i+".value"));
			if (mens<=0 || dur<=0) {
				jalert("Veuillez indiquer les mensualités et les durées");
				verifValeurs=0;
				break;
			}
		}
	}

	return verifValeurs;
}

function calcClick() {
	if (verifValeurs()) {
		calculer();
	}
	return false;
}

function detailClick() {
	document.frm.detail.value=1-document.frm.detail.value;
	return ongletClick(onglet);
}

function nbrePaliersChange() {
	var nbrePaliersOld=nbrePaliers;
	nbrePaliers=strtoint(document.frm.nbrePaliers.options[document.frm.nbrePaliers.selectedIndex].value);

	if (nbrePaliers>nbrePaliersOld) {
		for (i=nbrePaliers; i>nbrePaliersOld; i--) {
			var o=document.getElementById("l"+i);
			o.className="";
		}
	} else if (nbrePaliers<nbrePaliersOld) {
		for (i=nbrePaliersOld; i>nbrePaliers; i--) {
			var o=document.getElementById("l"+i);
			o.className="nonvisible";
		}
	}
	window.parent.setIframeHeight();
}

function calcCoefPret(i,duree) {
	return Math.pow(1+i,duree);
}

function calculer(m) { //m=1 calc mens, par defaut / m=2 calc dur
	if (arguments.length<1) m=1;
	eval("document.frm."+((m==1)?"mens":"dur")+nbrePaliers+".value=''");

	var capital=strtoint(document.frm.capital.value);
	var tauxInteret=strtofloat(document.frm.tauxInteret.value);
	var tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	var modeAssurance=document.frm.modeAssurance.selectedIndex+1;

	var interetPalier;
	var assurancePalier;
	var reste=capital;
	var totalDur=0;
	var totalMens=0;
	var totalInteret=0;
	var totalAssurance=0;

	for (i=1; i<=nbrePaliers; i++) {
		var mens=strtoint(eval("document.frm.mens"+i+".value"));
		var dur=strtoint(eval("document.frm.dur"+i+".value"));

		if (dur>0) {
			if (i==nbrePaliers) {
				// calculer derniere mensualité
				if (modeAssurance==1) {
					txm=(tauxInteret+tauxAssurance)/1200;
					prw=calcCoefPret(txm,dur);
					mens=reste*prw*txm/(prw-1);
				} else {
					txm=tauxInteret/1200;
					prw=calcCoefPret(txm,dur);
					//mens=reste*(prw*txm/(prw-1)+tauxAssurance/1200);
					mens=reste*prw*txm/(prw-1)+capital*tauxAssurance/1200;
				}
				eval("document.frm.mens"+i+".value=inttostr(mens)");
			}
			if (mens>0) {
				var interet=reste*tauxInteret/1200;
				var assurance=tauxAssurance/1200*((modeAssurance==1)?reste:capital);
				if (mens<interet+assurance) {
					mens=interet+assurance;
					eval("document.frm.mens"+i+".value=inttostr(mens)");
				}
				interetPalier=0;
				assurancePalier=0;
				for (j=0; j<dur; j++) {
					var interet=reste*tauxInteret/1200;
					var assurance=tauxAssurance/1200*((modeAssurance==1)?reste:capital);
					var principal=mens-interet-assurance;
					reste-=principal;
					interetPalier+=interet;
					assurancePalier+=assurance;
				}
				eval("document.frm.tmens"+i+".value=inttostr(mens*dur)");
				eval("document.frm.interet"+i+".value=inttostr(interetPalier)");
				eval("document.frm.assurance"+i+".value=inttostr(assurancePalier)");
				eval("document.frm.reste"+i+".value=inttostr(reste)");

				totalDur+=dur;
				totalMens+=mens*dur;
				totalInteret+=interetPalier;
				totalAssurance+=assurancePalier;
			} else {
				break;
			}
		} else {
			if (mens>0) {
				if (i==nbrePaliers) {
					// calculer derniere duree
					dur=0;
					reste2=reste;
					while ((reste2>0) && (dur++<240)) {
						var interet=reste2*tauxInteret/1200;
						var assurance=tauxAssurance/1200*((modeAssurance==1)?reste:capital);
						var principal=mens-interet-assurance;
						reste2-=principal;
					}
					eval("document.frm.dur"+i+".value=inttostr(dur)");

					// calculer derniere mensualité
					if (modeAssurance==1) {
						txm=(tauxInteret+tauxAssurance)/1200;
						prw=calcCoefPret(txm,dur);
						mens=reste*prw*txm/(prw-1);
					} else {
						txm=tauxInteret/1200;
						prw=calcCoefPret(txm,dur);
						//mens=reste*(prw*txm/(prw-1)+tauxAssurance/1200);
						mens=reste*prw*txm/(prw-1)+capital*tauxAssurance/1200;
					}
					eval("document.frm.mens"+i+".value=inttostr(mens)");

					interetPalier=0;
					assurancePalier=0;
					for (j=0; j<dur; j++) {
						var interet=reste*tauxInteret/1200;
						var assurance=tauxAssurance/1200*((modeAssurance==1)?reste:capital);
						var principal=mens-interet-assurance;
						reste-=principal;
						interetPalier+=interet;
						assurancePalier+=assurance;
					}
					eval("document.frm.tmens"+i+".value=inttostr(mens*dur)");
					eval("document.frm.interet"+i+".value=inttostr(interetPalier)");
					eval("document.frm.assurance"+i+".value=inttostr(assurancePalier)");
					eval("document.frm.reste"+i+".value=inttostr(reste)");

					totalDur+=dur;
					totalMens+=mens*dur;
					totalInteret+=interetPalier;
					totalAssurance+=assurancePalier;
				} else {
					break;
				}
			} else {
				break;
			}
		}
	}
	document.frm.totalDur.value=totalDur;
	document.frm.totalMens.value=inttostr(totalMens);
	document.frm.totalInteret.value=inttostr(totalInteret);
	document.frm.totalAssurance.value=inttostr(totalAssurance);
}

