// mediatix.com rs 27/1/2011
function ongletClick(ong) {
	if (verifValeurs()) {		
		l="index.php?client="+client+"&tpl="+template+"&ong="+ong+"&mnn="+monnaie;
		
		l+="&mti="+strtoint(document.frm.montantInitial.value)+"&mmp="+strtomois(document.frm.moisMisePlace.value)+"&txi="+strtofloat(document.frm.tauxInteret.value)+"&txa="+strtofloat(document.frm.tauxAssurance.value)+"&mha="+strtoint(document.frm.mensHorsAssur.value)+"&asm="+strtoint(document.frm.assurMens.value)+"&maa="+strtoint(document.frm.mensAvecAssur.value)+"&mr="+strtomois(document.frm.moisRachat.value)+"&mec="+strtoint(document.frm.montantEncours.value)+"&mn="+strtoint(document.frm.montantNouveau.value);
		l+="&dur2="+strtoint(document.frm.dureeNouv.value)+"&txi2="+strtofloat(document.frm.tauxInteretNouv.value)+"&txa2="+strtofloat(document.frm.tauxAssuranceNouv.value)+"&mns2="+strtoint(document.frm.mensualiteNouv.value);
		l+="&pen="+strtoint(document.frm.penalites.value)+"&gar="+strtoint(document.frm.garantie.value)+"&fd="+strtoint(document.frm.fraisDossier.value);
	
		if ((onglet==1)||(onglet==9)) {
			l+="&dur="+(document.frm.duree.options[document.frm.duree.selectedIndex].text);
			l+="&ta="+(document.frm.typeAssurance[0].checked?0:1);
			l+="&tg="+(document.frm.typeGarantie[0].checked?0:1);
		} else {
			l+="&dur="+document.frm.duree.value;
			l+="&ta="+document.frm.typeAssurance.value;
			l+="&tg="+document.frm.typeGarantie.value;
		}
	
		location=l;
	}
	return false;
}

function verifValeurs() {
	var verifValeurs=0;
	if (strtoint(document.frm.montantInitial.value)<=0)
		jalert("Veuillez indiquer le montant du prêt")
	else
		verifValeurs=1;
	return verifValeurs;
}
function calcClick() {
	return ongletClick((onglet==9)?9:2);
}

function montantInitialChange() {
	moisMisePlaceChange();
}

function moisMisePlaceChange() {
	dureeChange();
}

function dureeChange() {
	tauxInteretChange();
}

function tauxInteretChange() {
	typeAssuranceChange(1);
}

function typeAssuranceChange(suite) {
	crd=document.frm.typeAssurance[1].checked;
	document.frm.mensHorsAssur.disabled=crd;
	document.frm.assurMens.disabled=crd;
	document.frm.mensHorsAssur.className=crd?"fdclair":"";
	document.frm.assurMens.className=crd?"fdclair":"";
	if (suite==1) tauxAssuranceChange();
}

function tauxAssuranceChange() {
	tauxInteret=strtofloat(document.frm.tauxInteret.value);
	tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	tauxTotal=tauxInteret+tauxAssurance;
	document.frm.tauxTotal.value=floattostr(tauxTotal);
	tauxTotalChange(0);
}

function tauxTotalChange(direct) {
	if (direct==1) {
		tauxTotal=strtofloat(document.frm.tauxTotal.value);
		tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
		document.frm.tauxInteret.value=floattostr(tauxTotal-tauxAssurance);
	}
	montantInitial=strtoint(document.frm.montantInitial.value);
	duree=strtoint(document.frm.duree.options[document.frm.duree.selectedIndex].text);
	tauxInteret=strtofloat(document.frm.tauxInteret.value);
	tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	if (document.frm.typeAssurance[0].checked) {
		modeAssurance=2;
		mensHorsAssur=calcMens(montantInitial,duree,tauxInteret,0);
		mensAvecAssur=calcMens(montantInitial,duree,tauxInteret,tauxAssurance);
		document.frm.mensHorsAssur.value=inttostr(mensHorsAssur);
		document.frm.assurMens.value=inttostr(mensAvecAssur-mensHorsAssur);
	} else {
		modeAssurance=1;
		mensAvecAssur=calcMens(montantInitial,duree,tauxInteret,tauxAssurance);
	}
	document.frm.mensAvecAssur.value=inttostr(mensAvecAssur);
	mensAvecAssurChange(0);
}

function mensHorsAssurChange() {
	assurMensChange();
}

function assurMensChange() {
	mensHorsAssur=strtoint(document.frm.mensHorsAssur.value);
	assurMens=strtoint(document.frm.assurMens.value);
	document.frm.mensAvecAssur.value=inttostr(mensHorsAssur+assurMens);
	mensAvecAssurChange(0);
}

function mensAvecAssurChange(direct) {
	if (direct==1) {
		mensAvecAssur=strtoint(document.frm.mensAvecAssur.value);
		assurMens=strtoint(document.frm.assurMens.value);
		document.frm.mensHorsAssur.value=inttostr(mensAvecAssur-assurMens);
	}
	moisRachatChange();
}

function moisRachatChange() {
	moisMisePlace=strtomois(document.frm.moisMisePlace.value);
	moisRachat=strtomois(document.frm.moisRachat.value);
	dureeEcouleeAn=parseInt(moisRachat/100)-parseInt(moisMisePlace/100);
	dureeEcouleeMois=moisRachat%100-moisMisePlace%100;
	dureeEcoulee=dureeEcouleeAn*12+dureeEcouleeMois;
	duree=document.frm.duree.options[document.frm.duree.selectedIndex].text;
	dureeRestante=duree*12-dureeEcoulee;
	if (dureeRestante<6) {
		dureeRestante=6;
		dureeEcoulee=duree*12-dureeRestante;
		moisRachat=moisMisePlace+duree*100;
		if (moisRachat%100 > 6) {
			moisRachat-=6;
		} else {
			moisRachat-=94; // -6+12-100
		}
		document.frm.moisRachat.value=moisRachat%100+"/"+parseInt(moisRachat/100);
	}
	document.frm.dureeEcoulee.value=inttostr(dureeEcoulee);
	document.frm.dureeRestante.value=inttostr(dureeRestante);

	montantInitial=strtoint(document.frm.montantInitial.value);
	tauxInteret=strtofloat(document.frm.tauxInteret.value);
	tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	modeAssurance=document.frm.typeAssurance[0].checked?2:1;
	mensAvecAssur=calcMens(montantInitial,duree,tauxInteret,tauxAssurance);
	mensAvecAssurSaisi=strtoint(document.frm.mensAvecAssur.value);
	if (Math.abs(mensAvecAssur-mensAvecAssurSaisi)>.5)
		mensAvecAssur=mensAvecAssurSaisi;
	
	montantEncours=montantInitial;
	assuranceAn1=0;
	for (i=0;i<dureeEcoulee;i++) {
		interet=montantEncours*tauxInteret/1200;
		assurance=((modeAssurance==2)?montantInitial:montantEncours)*tauxAssurance/1200;
		principal=mensAvecAssur-interet-assurance;
		montantEncours-=principal;
		if (i<12) assuranceAn1+=assurance;
	}
	
	if (modeAssurance==1) {
		assurMens=assuranceAn1/Math.min(dureeEcoulee,12);
		document.frm.assurMens.value=inttostr(assurMens);
		mensHorsAssur=mensAvecAssur-assurMens;
		document.frm.mensHorsAssur.value=inttostr(mensHorsAssur);
	}
	
	document.frm.montantEncours.value=inttostr(montantEncours);

	interet6=0;
	for (i=0;i<6;i++) {
		interet=montantEncours*tauxInteret/1200;
		interet6+=interet;
		assurance=((modeAssurance==2)?montantInitial:montantEncours)*tauxAssurance/1200;
		principal=mensAvecAssur-interet-assurance;
		montantEncours-=principal;
	}
	penalites=Math.min(montantEncours*.03,interet6);
	document.frm.penalites.value=inttostr(penalites);
	
	montantEncoursChange();
}
function montantEncoursChange() {
	penalitesChange();
}

function penalitesChange() {
	typeGarantieChange();
}

function typeGarantieChange() {
	montantEncours=strtoint(document.frm.montantEncours.value);
	typeGarantie=(document.frm.typeGarantie[0].checked?0:1);

	if (montantEncours<100000) garantie=montantEncours*((typeGarantie==1)?1.5:.95)/100
	else if (montantEncours<120000) garantie=montantEncours*((typeGarantie==1)?1.33:.85)/100
	else if (montantEncours<150000) garantie=montantEncours*((typeGarantie==1)?1.23:.77)/100
	else if (montantEncours<180000) garantie=montantEncours*((typeGarantie==1)?1.13:.68)/100
	else if (montantEncours<200000) garantie=montantEncours*((typeGarantie==1)?1.06:.53)/100
	else garantie=montantEncours*((typeGarantie==0)?1:.6)/100;
	
	document.frm.garantie.value=inttostr(garantie);
	garantieChange();
}

function garantieChange() {
	montantEncours=strtoint(document.frm.montantEncours.value);
	fraisDossier=(montantEncours<=0)?0:((montantEncours<100000)?300:((montantEncours<150000)?600:800));
	document.frm.fraisDossier.value=inttostr(fraisDossier);
	calcOng1();
}

function calcOng1() {
	penalites=strtoint(document.frm.penalites.value);
	garantie=strtoint(document.frm.garantie.value);
	fraisDossier=strtoint(document.frm.fraisDossier.value);
	fraisRachat=penalites+garantie+fraisDossier;
	document.frm.fraisRachat.value=inttostr(fraisRachat);
	montantEncours=strtoint(document.frm.montantEncours.value);
	montantNouveau=montantEncours+fraisRachat;
	document.frm.montantNouveau.value=inttostr(montantNouveau);
	
	if (onglet==9) {
		document.frm.montantNouveau2.value=inttostr(montantNouveau);
		calcOng2();
	}
}

function dureeNouvChange() {
	var dureeNouv=strtoint(document.frm.dureeNouv.value);
	dureeNouv=Math.max(dureeNouv,dureeMini*12);
	dureeNouv=Math.min(dureeNouv,dureeMaxi*12);
	document.frm.dureeNouv.value=inttostr(dureeNouv);
	dureeNouvAn=Math.round(dureeNouv/12);
	var t=eval("document.frm.tauxInteret"+dureeNouvAn+".value");
	document.frm.tauxInteretNouv.value=floattostr(t);
	calcOng2();
}

function mensualiteNouvChange() {
	mensualiteNouv=strtoint(document.frm.mensualiteNouv.value);
	if (mensualiteNouv!=mensualiteNouvOld) {
		montant=strtoint(document.frm.montantNouveau2.value);
		dureeOld=-1;
		mensualiteOld=-1;
		if (montant>=0) {
			duree=strtoint(document.frm.dureeNouv.value);
			tauxInteret=strtofloat(document.frm.tauxInteretNouv.value);
			tauxAssurance=strtofloat(document.frm.tauxAssuranceNouv.value);
			mensualite=calcMensMois(montant,duree,tauxInteret,tauxAssurance);
			stop=false;
			if (mensualite>mensualiteNouv) {
				do {
					dureeOld=duree;
					mensualiteOld=mensualite;
					if (++duree>dureeMaxi*12) {
						duree=dureeMaxi*12;
						stop=true;
						jalert('Mensualité trop faible - Durée maximum atteinte');
					}
					mensualite=calcMensMois(montant,duree,tauxInteret,tauxAssurance);
				} while ((mensualite>mensualiteNouv)&&!stop);
			} else if (mensualite<mensualiteNouv) {
				do {
					dureeOld=duree;
					mensualiteOld=mensualite;
					if (--duree<dureeMini*12) {
						duree=dureeMini*12;
						stop=true;
						jalert('Mensualité trop grande - Durée minimum atteinte');
					}
					mensualite=calcMensMois(montant,duree,tauxInteret,tauxAssurance);
				} while ((mensualite<mensualiteNouv)&&!stop);
			}
			if (Math.abs(mensualiteOld-mensualiteNouv)<Math.abs(mensualite-mensualiteNouv))
				duree=dureeOld;
			document.frm.dureeNouv.value=inttostr(duree);
			calcOng2();
		}
	}
}

function calcOng2() {
	monnaieSymbole=(monnaie==1)?" €":" F";
	montantNouv=strtoint(document.frm.montantNouveau2.value);
	if (montantNouv>0) {
		dureeNouv=strtoint(document.frm.dureeNouv.value);
		tauxInteretNouv=strtofloat(document.frm.tauxInteretNouv.value);
		tauxAssuranceNouv=strtofloat(document.frm.tauxAssuranceNouv.value);
		mensualiteHorsAssurNouv=calcMensMois(montantNouv,dureeNouv,tauxInteretNouv,0);
		mensualiteAvecAssurNouv=calcMensMois(montantNouv,dureeNouv,tauxInteretNouv,tauxAssuranceNouv);

		document.frm.mensualiteNouv.value=inttostr(mensualiteAvecAssurNouv);

		document.frm.nb2.value=inttostr(dureeNouv);
		document.frm.nb3.value=inttostr(strtoint(document.frm.nb1.value)-dureeNouv);
		document.frm.mh2.value=inttostr(mensualiteHorsAssurNouv)+monnaieSymbole;
		document.frm.mh3.value=inttostr(strtoint(document.frm.mh1.value)-mensualiteHorsAssurNouv)+monnaieSymbole;
		document.frm.ma2.value=inttostr(mensualiteAvecAssurNouv)+monnaieSymbole;
		document.frm.ma3.value=inttostr(strtoint(document.frm.ma1.value)-mensualiteAvecAssurNouv)+monnaieSymbole;
		document.frm.th2.value=inttostr(mensualiteHorsAssurNouv*dureeNouv)+monnaieSymbole;
		document.frm.th3.value=inttostr(strtoint(document.frm.th1.value)-mensualiteHorsAssurNouv*dureeNouv)+monnaieSymbole;
		document.frm.ta2.value=inttostr(mensualiteAvecAssurNouv*dureeNouv)+monnaieSymbole;
		document.frm.ta3.value=inttostr(strtoint(document.frm.ta1.value)-mensualiteAvecAssurNouv*dureeNouv)+monnaieSymbole;
	}
}

function calcMens(mnt,dur,txi,txa) {
	mis=dur*12;
	if(modeAssurance==1) {
		txm=(txi+txa)/1200;
		prw=calcCoefPret(txm,mis);
		result=mnt*prw*txm/(prw-1);
	} else {
		txm=txi/1200;
		prw=calcCoefPret(txm,mis);
		result=mnt*(prw*txm/(prw-1)+txa/1200);
	}
	return result;
}

function calcMensMois(mnt,dur,txi,txa) {
	mis=dur;
	if(modeAssurance==1) {
		txm=(txi+txa)/1200;
		prw=calcCoefPret(txm,mis);
		result=mnt*prw*txm/(prw-1);
	} else {
		txm=txi/1200;
		prw=calcCoefPret(txm,mis);
		result=mnt*(prw*txm/(prw-1)+txa/1200);
	}
	return result;
}

function calcCoefPret(i,duree) {
	var p=1;
	for (var j=0; j<duree; j++) p*=(1+i);
	return p;
}

function strtomois(s) {
    var sMois="",sAn="";
    var p=2;
    for (var i=s.length-1;i>=0;i--) {
      var c=s.charAt(i);
      if (c>='0' && c<='9') {
        if (p==2) sAn=c+sAn;
        else if (p==1) sMois=c+sMois;
      } else {
        if (c=='-' || c=='/') p--;
      }
    }

    if (sMois.length==1) sMois='0'+sMois
    else if (sMois.length!=2) sMois="01";
    if (sAn=="") sAn="2005";

    var iAn=parseInt(sAn);
    if (iAn<20) iAn+=2000
    else if (iAn<100) iAn+=1900;
    else if (iAn<1900 || iAn>2050) iAn=2005;

    var iMois=parseInt(sMois);
    if (iMois>12) sMois="12";
    return ""+iAn+sMois;
}

function moistostr(d) {
    var s = ""+d;
    s = s.substring(4,6)+"/"+s.substring(0,4);
    return s;
}

function editblurmois(src) {
	src.value=moistostr(strtomois(src.value));
}

