
var run="";var loaded=false;var g2_erros="";var valRevenus_annuels=0;var valVariation_des_revenus=0;var valInflation=0;var valRendement_des_placements=0;var valLoyer_mensuel=0;var valCharges_mensuelles=0;var valTaxe_d_habitation_Louer=0;var valVariation_du_loyer=0;var valPrix_d_acquisition=0;var valMontant_des_travaux=0;var valImpots_et_frais_notariaux=0;var valCharges_de_propriete=0;var valTaxe_d_habitation_Achat=0;var valTaxe_fonciere=0;var valVariation_de_l_immobilier=0;var valApport_personnel=0;var valTaux_annuel=0;var valDuree=0;function monav(idname,pic)
{if(document.images&&loaded)
{document.images[idname].src=pic;}}
var curhelp="";function showhelp(formno,qty,helpid)
{if(loaded)
{helpid="help"+formno+"-"+helpid;if(curhelp=="")
{for(n=1;n<=qty;n++){document.getElementById("help"+formno+"-"+n).style.display="none";}}
else
{document.getElementById(curhelp).style.display="none";}
if(document.getElementById(helpid))
{document.getElementById(helpid).style.display="";curhelp=helpid;document.getElementById("showall"+formno).style.display="";}}}
function showall(formno,qty)
{for(n=1;n<=qty;n++){document.getElementById("help"+formno+"-"+n).style.display="";}
window.focus();curhelp="";document.getElementById("showall"+formno).style.display="none";}
function selectID(pageFrom,pageTo,helpqty)
{g2_erros="";if(ValidatePage(pageFrom))
{if(pageFrom!=pageTo)
{eval("document.louer"+pageFrom+".style.visibility='hidden';");eval("document.louer"+pageTo+".style.visibility='visible';");eval("document.louer"+pageFrom+".style.position='absolute';");eval("document.louer"+pageTo+".style.position='static';");}
if(helpqty>0)
{eval("showall("+pageTo+","+helpqty+")");}
if(pageTo==2)
{}
if(pageTo==3)
{}
if(pageTo==4)
{}
if(pageTo==5)
{document.louer5.Cout_de_operation.value=CoutOperation();document.louer5.montant_a_emprunter.value=MontantEmprunter();}
if(pageTo==6)
{CalculateResults();}}
else
{alert("Certaines donn\u00E9es sont erron\u00E9es.\nV\u00E9rifiez ces champs: "+g2_erros)}}
function CalculateResults()
{CIID_OLD=20;CIID_NEW=10;MAX_TAB=100;var dPerTotal=parseFloat(document.louer2.Revenus_annuels.value);var dPerVariation=parseFloat(document.louer2.Variation_des_revenus.value);var dPerInflation=parseFloat(document.louer2.Inflation.value);var dPerRentabilite=parseFloat(document.louer2.Rendement_des_placements.value);var dRent=parseFloat(document.louer3.Loyer_mensuel.value);var dRentCharges=parseFloat(document.louer3.Charges_mensuelles.value);var dRentLTax=parseFloat(document.louer3.Taxe_d_habitation_Louer.value);var dRentVariation=parseFloat(document.louer3.Variation_du_loyer.value);var dBuyPrice=parseFloat(document.louer4.Prix_d_acquisition.value);var ciidTypeOfBuilding=parseFloat(document.louer4.Nature_de_l_acquisition.value);var dBuyRenov=parseFloat(document.louer4.Montant_des_travaux.value);var dBuyTax=parseFloat(document.louer4.Impots_et_frais_notariaux.value);var dBuyCharges=parseFloat(document.louer4.Charges_de_propriete.value);var dBuyHTax=parseFloat(document.louer4.Taxe_d_habitation_Achat.value);var dBuyFTax=parseFloat(document.louer4.Taxe_fonciere.value);var dBuyVariation=parseFloat(document.louer4.Variation_de_l_immobilier.value);var dFinCost=CoutOperation();var dFinCash2=parseFloat(document.louer5.Apport_personnel.value);var dFinInterest=parseFloat(document.louer5.Taux_annuel.value);var lFinLen=parseFloat(document.louer5.Duree.value);var Income=new Array();var Rent=new Array();var TaxRent=new Array();var YearlyCharge=new Array();var WorthHouse=new Array();var Renov=new Array();var ChargesPropriety=new Array();var TaxHousing=new Array();var TaxPropriety=new Array();var Annuities=new Array();var Principal=new Array();var TotalBCharges=new Array();var TotalRCharges=new Array();var SavingRent=new Array();var SavingBuy=new Array();var dAvailableRent=new Array();var dAvailableBuy=new Array();var dSituationBuy=new Array();var dSumSavingRent=new Array();var dSumSavingBuy=new Array();var buy_sup=new Array();var rent_sup=new Array();for(i=0;i<=MAX_TAB;i++)
{Income[i]=0;Rent[i]=0;TaxRent[i]=0;YearlyCharge[i]=0;buy_sup[i]=0;rent_sup[i]=0;WorthHouse[i]=0;Renov[i]=0;ChargesPropriety[i]=0;TaxHousing[i]=0;TaxPropriety[i]=0;Annuities[i]=0;Principal[i]=0;TotalBCharges[i]=0;TotalRCharges[i]=0;SavingRent[i]=0;SavingBuy[i]=0;dAvailableRent[i]=0;dAvailableBuy[i]=0;dSituationBuy[i]=0;dSumSavingRent[i]=0;dSumSavingBuy[i]=0;}
TxIncome=(dPerVariation-dPerInflation)/100;Income[0]=dPerTotal*12;for(i=1;i<=(lFinLen-1);i++)
{Income[i]=(Income[i-1]*(1+TxIncome));}
TxRent=(dRentVariation-dPerInflation)/100.0;Rent[0]=dRent*12.0;TaxRent[0]=dRentLTax;for(i=1;i<=(lFinLen-1);i++)
{Rent[i]=(Rent[i-1])*(1+TxRent);TaxRent[i]=TaxRent[i-1];}
TxCharges=TxRent;YearlyCharge[0]=dRentCharges*12.0;for(i=1;i<=(lFinLen-1);i++)
{YearlyCharge[i]=YearlyCharge[i-1]*(1+TxCharges);}
for(i=0;i<=(lFinLen-1);i++)
{TotalRCharges[i]=Rent[i]+TaxRent[i]+YearlyCharge[i];dAvailableRent[i]=Income[i]-TotalRCharges[i];}
totalRent=0;for(i=0;i<=(lFinLen-1);i++)
{totalRent=totalRent+dAvailableRent[i];}
WorthHouse[0]=dBuyPrice+dBuyRenov;TxRealEstate=(dBuyVariation-dPerInflation)/100.0;for(i=1;i<=(lFinLen-1);i++)
{WorthHouse[i]=WorthHouse[i-1]*(1+TxRealEstate);}
TxRenov=0.0025;Renov[0]=0.0;for(i=1;i<=(lFinLen-1);i++)
{if(ciidTypeOfBuilding==CIID_OLD)
{Renov[i]=WorthHouse[i]*TxRenov;}
if((ciidTypeOfBuilding==CIID_NEW)&&(i>10))
{Renov[i]=WorthHouse[i]*TxRenov;}}
for(i=0;i<=(lFinLen-1);i++)
{ChargesPropriety[i]=dBuyCharges;TaxHousing[i]=dBuyHTax;}
TaxPropriety[0]=0.0;TaxPropriety[1]=0.0;if(dBuyPrice!=0)
{TxTaxPropriety=dBuyFTax/dBuyPrice}
else
{if(ciidTypeOfBuilding==CIID_NEW)
{TxTaxPropriety=0.03;}
if(ciidTypeOfBuilding==CIID_OLD)
{TxTaxPropriety=0.09;}}
for(i=2;i<=(lFinLen-1);i++)
{TaxPropriety[i]=WorthHouse[i]*TxTaxPropriety;}
dFinCost=dBuyPrice+dBuyRenov+dBuyTax;dFinAmtBorrow=dFinCost-dFinCash2;Nb_Month=lFinLen*12;if(dFinInterest>0)
{TxMonth=(dFinInterest/12.00)/100.0;fact_taux=Math.pow((1+TxMonth),Nb_Month);dFinMPay=dFinAmtBorrow*(TxMonth/(1-(1/fact_taux)));}
else
{dFinMPay=dFinAmtBorrow/NbMonth;}
dFinAPay=dFinMPay*12;TxInflation=dPerInflation/100.0;Annuities[0]=dFinAPay;for(i=1;i<=(lFinLen-1);i++)
{Annuities[i]=Annuities[i-1]*(1-TxInflation);}
Principal[0]=dFinAmtBorrow;MonthlyTxInterest=(dFinInterest/12.00)/100.00;MonthlyPaid=dFinMPay;for(i=1;i<=(lFinLen-1);i++)
{PrincipalToPay=Principal[i-1];for(j=1;j<=12;j++)
{Interest=PrincipalToPay*MonthlyTxInterest;PrincipalToPay=PrincipalToPay-MonthlyPaid+Interest;}
Principal[i]=PrincipalToPay;}
for(i=0;i<=(lFinLen-1);i++)
{if(i==0)
{TotalBCharges[0]=TotalBCharges[0]+dBuyTax;}
TotalBCharges[i]=Renov[i]+ChargesPropriety[i]+TaxHousing[i]+TaxPropriety[i]+Annuities[i];}
totalBuy=0;for(i=0;i<=(lFinLen-1);i++)
{dAvailableBuy[i]=Income[i]-TotalBCharges[i];totalBuy=totalBuy+dAvailableBuy[i];}
CashDown=dFinCash2;for(i=0;i<=(lFinLen-1);i++)
{Saving=(TotalBCharges[i]-TotalRCharges[i]);if(i==0)
{Saving=Saving+CashDown;}
if(Saving>0)
{SavingRent[i]=Saving;SavingBuy[i]=0;}
else
{SavingRent[i]=0;SavingBuy[i]=Math.abs(Saving);}}
TxInves=(dPerRentabilite-dPerInflation)/100.0;dSumSavingRent[0]=SavingRent[0];dSumSavingBuy[0]=SavingBuy[0];dSituationBuy[0]=WorthHouse[0]+dSumSavingBuy[0]-Principal[0]*(1+0.03);for(i=1;i<=(lFinLen-1);i++)
{dSumSavingRent[i]=(dSumSavingRent[i-1]*(1+TxInves))+SavingRent[i];dSumSavingBuy[i]=(dSumSavingBuy[i-1]*(1+TxInves))+SavingBuy[i];dSituationBuy[i]=WorthHouse[i]+dSumSavingBuy[i]-Principal[i]*(1+0.03);}
MoyenneLocation=numToFloatbis("0");MoyenneAchat=numToFloatbis("0");MoyenneLocation=numToFloatbis((Math.round((totalRent/lFinLen)*100)/100).toString());MoyenneAchat=numToFloatbis((Math.round((totalBuy/lFinLen)*100)/100).toString());savRent=numToFloatbis("0");savBuy=numToFloatbis("0");for(i=0;i<=(lFinLen-1);i++)
{savRent=savRent+dSumSavingRent[i];}
for(i=0;i<=(lFinLen-1);i++)
{savBuy=savBuy+dSituationBuy[i];}
totalRent=numToFloatbis(((Math.round(totalRent*100))/100).toString());totalBuy=numToFloatbis((Math.round(totalBuy*100)/100).toString());savRent=numToFloatbis((Math.round(dSumSavingRent[lFinLen-1]*100)/100).toString());savBuy=numToFloatbis((Math.round(dSituationBuy[lFinLen-1]*100)/100).toString());if((dAvailableRent[lFinLen-1]>dAvailableBuy[lFinLen-1]))
{fShowMsgTres=true;}
else
{fShowMsgTres=false;}
if(dSumSavingRent[lFinLen-1]>dSituationBuy[lFinLen-1])
{fShowMsgCap=true;}
else
{fShowMsgCap=false;}
Dyn1="Le locataire a le meilleur niveau de vie.";Dyn2="Le propri&eacute;taire a le meilleur niveau de vie.";Dyn3="Le Locataire r&eacute;alise la meilleure op&eacute;ration financi&egrave;re.";Dyn4="Le propri&eacute;taire r&eacute;alise la meilleure op&eacute;ration financi&egrave;re.";Msg1="Le niveau de vie du propri&eacute;taire sera sup&eacute;rieur &agrave; celui ";Msg11="du locataire &agrave; partir de l'ann&eacute;e : ";Msg2="Le niveau de vie du locataire sera toujours sup&eacute;rieur &agrave; celui du propri&eacute;taire.";Msg3="Le capital constitu&eacute; par le propri&eacute;taire sera sup&eacute;rieur &agrave; celui ";Msg31="du locataire &agrave; partir de l'ann&eacute;e : ";Msg4="L'&eacute;pargne constitu&eacute;e par le locataire sera toujours sup&eacute;rieure ";Msg41="&agrave; celle du propri&eacute;taire.";flag1=false;flag2=false;var LevelYear=0;;var CapitalYear=0;;for(i=0;i<=(lFinLen-1);i++)
{if((dAvailableRent[i]<dAvailableBuy[i])&&(flag1==false))
{LevelYear=i+1;flag1=true;}
if((dSumSavingRent[i]<dSituationBuy[i])&&(flag2==false))
{CapitalYear=i+1;flag2=true;}}
var strRes;strRes="";if(fShowMsgTres)
{strRes=strRes+Dyn1+"<br>";}
else
{strRes=strRes+Dyn2+"<br>";}
if(fShowMsgCap)
{strRes=strRes+Dyn3+"<br>";}
else
{strRes=strRes+Dyn4+"<br>";}
document.getElementById("ColDyn").innerHTML=strRes;strRes="";if(LevelYear!=0)
{strRes=strRes+Msg1;strRes=strRes+Msg11;strRes=strRes+LevelYear;}
else
{strRes=strRes+Msg2;}
if(CapitalYear!=0)
{strRes=strRes+Msg3;strRes=strRes+Msg31;strRes=strRes+CapitalYear;}
else
{strRes=strRes+Msg4;strRes=strRes+Msg41;}
document.getElementById("ColMsg").innerHTML=strRes;strRes=totalRent+"&nbsp;&euro;";document.getElementById("ColTotalRent").innerHTML=strRes;strRes=totalBuy+"&nbsp;&euro;";document.getElementById("ColTotalBuy").innerHTML=strRes;strRes=MoyenneLocation+"&nbsp;&euro;";document.getElementById("DivMoyenneLocation").innerHTML=strRes;strRes=MoyenneAchat+"&nbsp;&euro;";document.getElementById("ColMoyenneAchat").innerHTML=strRes;strRes=savRent+"&nbsp;&euro;";document.getElementById("ColSavRent").innerHTML=strRes;strRes=savBuy+"&nbsp;&euro;";document.getElementById("ColSavBuy").innerHTML=strRes;}
function ValidatePage(tmp_current)
{if(tmp_current==2)
{if(!checkInput(2,"Revenus_annuels","N0M"))
{addError("Total des revenus mensuels");}
if(!checkInput(2,"Variation_des_revenus","INT"))
{addError("Variation annuelle des revenus");}
if(!checkInput(2,"Inflation","INT"))
{addError("Inflation");}
if(!checkInput(2,"Rendement_des_placements","INT"))
{addError("Rendement annuel des placements");}}
if(tmp_current==3)
{if(!checkInput(3,"Loyer_mensuel","N0A"))
{addError("Loyer mensuel (hors charges)");}
if(!checkInput(3,"Charges_mensuelles","N0A"))
{addError("Charges mensuelles");}
if(!checkInput(3,"Taxe_d_habitation_Louer","N0P"))
{addError("Montant annuel de la taxe d'habitation");}
if(!checkInput(3,"Variation_du_loyer","INT"))
{addError("Variation annuelle du loyer");}}
if(tmp_current==4)
{if(!checkInput(4,"Prix_d_acquisition","N0M"))
{addError("Prix d'acquisition");}
if(!checkInput(4,"Montant_des_travaux","N0M"))
{addError("Montant des travaux");}
if(!checkInput(4,"Impots_et_frais_notariaux","N0M"))
{addError("Imp&ocirc;ts et frais notariaux");}
if(!checkInput(4,"Charges_de_propriete","N0M"))
{addError("Charges annuelles de propri\u00E9t\u00E9");}
if(!checkInput(4,"Taxe_d_habitation_Achat","N0M"))
{addError("Taxe d'habitation");}
if(!checkInput(4,"Taxe_fonciere","N0M"))
{addError("Taxe fonci\u00E8re");}
if(!checkInput(4,"Variation_de_l_immobilier","P0"))
{addError("Variation annuelle de l'immobilier");}}
if(tmp_current==5)
{if(!checkInput(5,"Apport_personnel","N0M"))
{addError("Apport personnel");}
if(!checkInput(5,"Taux_annuel","P"))
{addError("Taux annuel");}
if(!checkInput(5,"Duree","I"))
{addError("Dur\u00E9e");}}
if(g2_erros!="")
return false;return true;}
function addError(name)
{g2_erros=g2_erros+"\n"+name;}
function checkInput(formno,myInput,myType)
{var str,arg;var myInputName=myInput;var str=eval("document.louer"+formno+"."+myInput+".value");if(str!="")
{arg=str;arg=arg.replace(/ /g,"");myInput=arg;myInput=myInput.replace(/,/g,".");if(IsNumeric(arg))
{switch(myType)
{case"I":if(!(parseInt(myInput)>0)||(parseInt(myInput)==0))
{return false;}
else
{eval("val"+myInputName+"="+parseFloat(myInput));return true;}
break;case"P":if((parseFloat(myInput)>0)&&(parseFloat(myInput)<=100))
{eval("val"+myInputName+"="+parseFloat(myInput));return true;}
else
{return false;}
break;case"P0":if((parseFloat(myInput)>=0)&&(parseFloat(myInput)<=100))
{eval("val"+myInputName+"="+parseFloat(myInput));return true;}
else
{return false;}
break;case"N0M":if((parseFloat(myInput)>=0)&&(parseFloat(myInput)<=10000000000))
{eval("val"+myInputName+"="+parseFloat(myInput));return true;}
else
{return false;}
break;case"INT":if((parseFloat(myInput)>=-10)&&(parseFloat(myInput)<=10))
{return true;}
else
{return false;}
break;case"N0A":if(parseFloat(myInput)>=0)
{return true;}
else
{return false;}
break;case"N0P":if((parseFloat(myInput)>=0)&&(parseFloat(myInput)<=1000000))
{return true;}
else
{return false;}
break;}}
else
{return false;}}
else
{return false;}}
function IsNumeric(sText)
{var ValidChars="0123456789.,";var IsNumber=true;var Char;for(i=0;i<sText.length&&IsNumber==true;i++)
{Char=sText.charAt(i);if(ValidChars.indexOf(Char)==-1)
{IsNumber=false;}}
return IsNumber;}
function CoutOperation()
{dBuyPrice=parseFloat(document.louer4.Prix_d_acquisition.value);dBuyRenov=parseFloat(document.louer4.Montant_des_travaux.value);dBuyTax=parseFloat(document.louer4.Impots_et_frais_notariaux.value);return(dBuyPrice+dBuyRenov+dBuyTax);}
function MontantEmprunter()
{dFinCash2=parseFloat(document.louer5.Apport_personnel.value);return(CoutOperation()-dFinCash2);}
function _numToUnits(n,units_prefix,decimal_places,units_suffix)
{if(isOverflow(n))return'<i>numeric overflow</i>'
var isNegative=(n<0)?true:false
var s=''
var d=strToInt(decimal_places)
var x=Math.abs(Math.round(n*Math.pow(10,decimal_places)))
if(x==0)
{var defaultStr='0'
if(d>0)
{defaultStr+=','
for(var i=0;i<d;i++)defaultStr+='0'}
defaultStr=units_prefix+defaultStr+units_suffix
return defaultStr}
if(d==0)
{var tmp=''+x
s=addCommas(tmp)}
else
{var leftTmp=''+x
var rightTmp=''+x
var len=leftTmp.length
for(var i=0;i<d+1-len;i++)
{leftTmp='0'+leftTmp
rightTmp='0'+rightTmp}
len=leftTmp.length
var decimalSplit=len-d
var leftStr=addCommas(leftTmp.substring(0,decimalSplit))
var rightStr=rightTmp.substring(decimalSplit,len)
s=leftStr+','+rightStr}
s=units_prefix+s+units_suffix
return s}
function numToFloatbis(n)
{n=n.replace(/ /g,"");if(n.length>0)
{return _numToUnits(n,"",2,"")}}
function SetDefaultValues()
{document.louer2.Revenus_annuels.value=1111;document.louer2.Variation_des_revenus.value=2;document.louer2.Inflation.value=3;document.louer2.Rendement_des_placements.value=4;document.louer3.Loyer_mensuel.value=5555;document.louer3.Charges_mensuelles.value=6666;document.louer3.Taxe_d_habitation_Louer.value=7777;document.louer3.Variation_du_loyer.value=8;document.louer4.Prix_d_acquisition.value=9999;document.louer4.Montant_des_travaux.value=1111;document.louer4.Impots_et_frais_notariaux.value=2222;document.louer4.Charges_de_propriete.value=3333;document.louer4.Taxe_d_habitation_Achat.value=4444;document.louer4.Taxe_fonciere.value=5555;document.louer4.Variation_de_l_immobilier.value=6;document.louer5.Apport_personnel.value=7777;document.louer5.Taux_annuel.value=8;document.louer5.Duree.value=9;}
function start()
{loaded=true;if(run!=''){setTimeout(run,0);}}
start();