// mediatix.com rs 26/11/2006
function convertClick() {
	if (verifValeurs()) {
		monnaie=1-monnaie;
		coeff=(monnaie==1)?1/pariteEuro:pariteEuro;
		document.frm.montantInitial.value=inttostr(strtoint(document.frm.montantInitial.value)*coeff);
		document.frm.mensHorsAssur.value=inttostr(strtoint(document.frm.mensHorsAssur.value)*coeff);
		document.frm.assurMens.value=inttostr(strtoint(document.frm.assurMens.value)*coeff);
		document.frm.mensAvecAssur.value=inttostr(strtoint(document.frm.mensAvecAssur.value)*coeff);
		document.frm.montantEncours.value=inttostr(strtoint(document.frm.montantEncours.value)*coeff);
		document.frm.montantNouveau.value=inttostr(strtoint(document.frm.montantNouveau.value)*coeff);
		ongletClick(onglet);
	}
	return false;
}
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);
	
		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)
		alert("Veuillez indiquer le montant du prêt")
	else
		verifValeurs=1;
	return verifValeurs;
}
function calcClick() {
	return ongletClick((onglet==9)?9:2);
}
function montantInitialChange() {
	calcMensualite();
}

function tauxInteretChange() {
	tauxInteret=strtofloat(document.frm.tauxInteret.value);
	tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	tauxTotal=tauxInteret+tauxAssurance;
	document.frm.tauxTotal.value=floattostr(tauxTotal);

	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":"";

	calcMensualite();
}

function tauxTotalChange() {
	tauxTotal=strtofloat(document.frm.tauxTotal.value);
	tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	tauxInteret=tauxTotal-tauxAssurance;
	document.frm.tauxInteret.value=floattostr(tauxInteret);
	calcMensualite();
}

function calcMensualite() {
	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);

	moisRachatChange();
}

function mensHorsAssurChange() {
	mensHorsAssur=strtoint(document.frm.mensHorsAssur.value);
	assurMens=strtoint(document.frm.assurMens.value);
	mensAvecAssur=mensHorsAssur+assurMens;
	document.frm.mensAvecAssur.value=inttostr(mensAvecAssur);
	calcOng1();
}

function mensAvecAssurChange() {
	mensAvecAssur=strtoint(document.frm.mensAvecAssur.value);
	assurMens=strtoint(document.frm.assurMens.value);
	mensHorsAssur=mensAvecAssur-assurMens;
	document.frm.mensHorsAssur.value=inttostr(mensHorsAssur);
	calcOng1();
}

function moisRachatChange() {
	montantInitial=strtoint(document.frm.montantInitial.value);
	moisMisePlace=strtomois(document.frm.moisMisePlace.value);
	duree=document.frm.duree.options[document.frm.duree.selectedIndex].text;
	tauxInteret=strtofloat(document.frm.tauxInteret.value);
	tauxAssurance=strtofloat(document.frm.tauxAssurance.value);
	mensAvecAssur=strtoint(document.frm.mensAvecAssur.value);
	moisRachat=strtomois(document.frm.moisRachat.value);
	dureeEcouleeAn=parseInt(moisRachat/100)-parseInt(moisMisePlace/100);
	dureeEcouleeMois=moisRachat%100-moisMisePlace%100;
	dureeEcoulee=dureeEcouleeAn*12+dureeEcouleeMois;
	document.frm.dureeEcoulee.value=inttostr(dureeEcoulee);
	dureeRestante=duree*12-dureeEcoulee;
	document.frm.dureeRestante.value=inttostr(dureeRestante);

	modeAssurance=document.frm.typeAssurance[0].checked?2:1;
	mensAvecAssur=calcMens(montantInitial,duree,tauxInteret,tauxAssurance);
	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;
	}
	assurMens=assuranceAn1/Math.min(dureeEcoulee,12);
	mensHorsAssur=mensAvecAssur-assurMens;
	document.frm.mensHorsAssur.value=inttostr(mensHorsAssur);
	document.frm.assurMens.value=inttostr(assurMens);
	document.frm.montantEncours.value=inttostr(montantEncours);

	calcOng1();
}

function calcOng1() {
	f=document.frm;
	montantEncours=strtoint(f.montantEncours.value);
	penalites=montantEncours*.03;
	typeGarantie=(f.typeGarantie[0].checked?0:1);

	montantEu=montantEncours;
	if (monnaie==0) montantEu/=pariteEuro;
	if (montantEu<100000) garantie=montantEu*((typeGarantie==1)?1.5:.95)/100
	else if (montantEu<120000) garantie=montantEu*((typeGarantie==1)?1.33:.85)/100
	else if (montantEu<150000) garantie=montantEu*((typeGarantie==1)?1.23:.77)/100
	else if (montantEu<180000) garantie=montantEu*((typeGarantie==1)?1.13:.68)/100
	else if (montantEu<200000) garantie=montantEu*((typeGarantie==1)?1.06:.53)/100
	else  garantie=montantEu*((typeGarantie==0)?1:.6)/100;
	if (monnaie==0) garantie*=pariteEuro;

	fraisDossier=(montantEncours<=0)?0:((montantEncours<100000)?300:((montantEncours<150000)?600:800));
	fraisRachat=penalites+garantie+fraisDossier;
	montantNouveau=montantEncours+fraisRachat;
	document.frm.penalites.value=inttostr(penalites);
	document.frm.garantie.value=inttostr(garantie);
	document.frm.fraisDossier.value=inttostr(fraisDossier);
	document.frm.fraisRachat.value=inttostr(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);
			//mensualiteNouv=strtoint(document.frm.mensualiteNouv.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;
						alert('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;
						alert('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 strtodate(s) {
    var sJour="",sMois="",sAn="";
    var p=1;
    for (var i=0;i<s.length;i++) {
      var c=s.charAt(i);
      if (c>='0' && c<='9') {
        if (p==1) sJour+=c
        else if (p==2) sMois+=c
        else sAn+=c;
      } else {
        if (c=='-' || c=='/') p++;
      }
    }

    if (sJour.length==1) sJour='0'+sJour
    else if (sJour.length!=2) sJour="01";
    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=2000;

    var iMois=parseInt(sMois);
    if (iMois>12) sMois="12";
    var iJour=parseInt(sJour);
    if (iMois==1 || iMois==3 || iMois==5 || iMois==7 || iMois==8 || iMois==10 || iMois==12) {
      if (iJour>31) sJour="31";
    } else if (iMois==2) {
      if ((IsAnBissextile(iAn)==true) && (iJour>29)) sJour="29";
      else if ((IsAnBissextile(iAn)==false) && (iJour>28)) sJour="28" ;
    } else if (iMois==4 || iMois==6 || iMois==9 || iMois==11) {
      if(iJour>30) sJour="30";
    } else sJour="31";
    return ""+iAn+sMois+sJour;
}
function IsAnBissextile(an) {
	return (((an%4==0) && (an%100!=0)) || (an%400==0));
}
function datetostr(d) {
    var s = ""+d;
    s = s.substring(6,8)+"/"+s.substring(4,6)+"/"+s.substring(0,4);
    return s;
}

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 editblurdate(src) {
	src.value=datetostr(strtodate(src.value));
}*/
function editblurmois(src) {
	src.value=moistostr(strtomois(src.value));
}
