
var errormessage_max="Veuillez saisir un montant sous #MAX";var errormessage_min="Veuillez saisir un montant sous #MIN";var errormessage_range="";CurrencySymbol=" \u20AC";CurrencyGroup=" ";CurrencyDecimal=",";CurrencyPosition="Suffix";var TermWeeks;var TotalUnit;function insertSuggested(SuggestedObject,SuggestedItem,SuggestedValue,SuggestedUnit)
{document.calculator['ui'+SuggestedObject][SuggestedItem].value=FormatCurrency(SuggestedValue);document.calculator['us'+SuggestedObject][SuggestedItem].selectedIndex=SuggestedUnit-1;CalculateTotals();}
function CalculateTotals()
{tool=document.calculator;TermWeeks=(tool.AverageWeeksInTerm)?tool.AverageWeeksInTerm.options[tool.AverageWeeksInTerm.selectedIndex].value:0;TotalUnit=30;IncomeTotal=0;for(var i=0;i<tool.uiIncome.length;i++)
{IncomeTotal+=(EvalNum(tool.uiIncome[i].value)/eval(tool.usIncome[i].options[tool.usIncome[i].selectedIndex].value))*eval(TotalUnit);}
tool.IncomeTotal.value=FormatCurrency(IncomeTotal);ExpenditureTotal=0;for(var i=0;i<tool.uiExpenditure.length;i++)
{ExpenditureTotal+=(EvalNum(tool.uiExpenditure[i].value)/eval(tool.usExpenditure[i].options[tool.usExpenditure[i].selectedIndex].value))*eval(TotalUnit);}
tool.ExpenditureTotal.value=FormatCurrency(ExpenditureTotal);tool.BalanceTotal.value=FormatCurrency(IncomeTotal-ExpenditureTotal);}
PeriodStep=30;IncomeBarImage=path+"img/budgetcalculatorincomebar.gif";IncomeBarName="Revenus";ExpenseBarImage=path+"img/budgetcalculatorexpenditurebar.gif";ExpenseBarName="D&eacute;penses";BalanceBarImage=path+"img/budgetcalculatorbalancebar.gif";BalanceBarName="Solde";function ReadyGraph()
{TermWeeks=(tool.AverageWeeksInTerm)?tool.AverageWeeksInTerm.options[tool.AverageWeeksInTerm.selectedIndex].value:0;Graph=new GraphGenerator();Graph.NegativeYAxis=true;Graph.SetScaleY(0,true,"YAxisFormat");incomeBar=new Bar();incomeBar.strImage=IncomeBarImage;incomeBar.Name=IncomeBarName;expenseBar=new Bar();expenseBar.strImage=ExpenseBarImage;expenseBar.Name=ExpenseBarName;balanceBar=new Bar();balanceBar.strImage=BalanceBarImage;balanceBar.Name=BalanceBarName;aIncomeAmount=new Array();aIncomePeriod=new Array();aIncomeLastPaid=new Array();for(var i=0;i<tool.uiIncome.length;i++)
{aIncomeAmount[i]=EvalNum(tool.uiIncome[i].value);aIncomePeriod[i]=eval(tool.usIncome[i].value);aIncomeLastPaid[i]=-eval(aIncomePeriod[i])+1;}
aExpenseAmount=new Array();aExpensePeriod=new Array();aExpenseLastPaid=new Array();for(var i=0;i<tool.uiExpenditure.length;i++)
{aExpenseAmount[i]=EvalNum(tool.uiExpenditure[i].value)
aExpensePeriod[i]=eval(tool.usExpenditure[i].value)
aExpenseLastPaid[i]=-eval(aExpensePeriod[i])+1}
PeriodStart=0
intBalance=EvalNum(tool.InitialBalance.value)
for(i=1;i<=eval(tool.ProjectionPeriod.value);i=i+PeriodStep)
{intIncome=0;intExpense=0;PeriodEnd=PeriodStart+PeriodStep;for(j=0;j<tool.uiIncome.length;j++)
{intIncome=intIncome+CalculateAdjustment(PeriodStart,PeriodStep,aIncomeAmount[j],aIncomePeriod[j],aIncomeLastPaid[j]);aIncomeLastPaid[j]=GlobalLastPaid;}
for(j=0;j<tool.uiExpenditure.length;j++)
{intExpense=intExpense+CalculateAdjustment(PeriodStart,PeriodStep,aExpenseAmount[j],aExpensePeriod[j],aExpenseLastPaid[j]);aExpenseLastPaid[j]=GlobalLastPaid;}
PeriodStart=PeriodStart+PeriodStep;intBalance=intBalance+(intIncome-intExpense);incomeBar.AddData(intIncome);expenseBar.AddData(intExpense*-1);balanceBar.AddData(intBalance);}
Graph.AddBar(incomeBar);Graph.AddBar(expenseBar);Graph.AddBar(balanceBar);Graph.Draw();balanceBar.DoMath();var strGraph=document.graph.innerHTML;showGraph(strGraph,balanceBar.Max,balanceBar.Min);}
function CalculateAdjustment(PeriodStart,PeriodStep,Amount,Period,LastPaid)
{PeriodEnd=PeriodStart+PeriodStep;SinceLastPaid=PeriodEnd-LastPaid;GlobalLastPaid=LastPaid;if(parseInt(SinceLastPaid)>=parseInt(Period))
{Periods=parseInt(SinceLastPaid/Period);GlobalLastPaid=LastPaid+(Period*Periods);return(Amount*Periods);}
else
return 0;}
function YAxisFormat(strNumber)
{return FormatCurrency(strNumber,0);}
function showGraph(strGraph,strMaximumBalance,strMinimumBalance)
{window.focus();var win=window.open("","longhelp","width=600,height=620, menubar=no,toolbar=no,status=no,resizable=yes,scrollbars=yes");var doc=win.document;doc.clear();strCode="<html>\n<head>\n<title>&Eacute;valuer son budget</title>\n";strCode=strCode+"<scr"+"ipt language=\"jav"+"ascr"+"ipt\" src=\""+path+"js/budgetcalculatorgraphgenerator.js\"></scr"+"ipt>\n";strCode=strCode+"<scr"+"ipt language=\"jav"+"ascr"+"ipt\" src=\""+path+"js/budgetcalculatorglobal.js\"></scr"+"ipt>\n";strCode=strCode+"<style>\n.heading { font-family: Tahoma; font-weight: bold; font-size: 12px; color: #ffffff; line-height: 1.4em; background-color:#5C99DC}\n";strCode=strCode+".normal {font-family:Tahoma; font-size:11px; color: #000000; bgcolor=#DBEBFD }\n";strCode=strCode+".borderedbox {border-top :#004499 thin solid;border-left:#004499 thin solid;border-bottom:#004499 thin solid;border-right:#004499 thin solid;}\n";strCode=strCode+".calctitle{background-color: #5c99dc;font-size: 18px;color: #ffffff;line-height: 1.4em;font-family: Tahoma;}\n";strCode=strCode+".heading4black{font-weight: bold;font-size: 11px;color: #333333;font-family: Tahoma;}\n";strCode=strCode+".smallprompt {font-size: 11px;color: #333333;font-family: Tahoma;}\n";strCode=strCode+"A.close { font-family: Tahoma; color: #004499; text-decoration: none; font-size: 11px; }\n";strCode=strCode+".graphAxis { background-color: #CCCCCC; height: 1px; width: 2px;}\n";strCode=strCode+".graphBar { padding: 0px; padding-left: 2px;}\n";strCode=strCode+".graphXScale { font-family: Tahoma; font-size: 11px; color: #000000; text-align: center;}\n";strCode=strCode+".graphYScale { height: 20px; font-family: Tahoma; font-size: 11px; color: #000000; text-align: right; white-space: nowrap; }\n</style>\n";strCode=strCode+"</head>\n";strCode=strCode+"<body bgcolor=#DBEBFD marginwidth=0 marginheight=0 leftmargin=0 topmargin=0 ";strCode=strCode+"onload=updateBalanceValues(";strCode=strCode+strMaximumBalance;strCode=strCode+",";strCode=strCode+strMinimumBalance;strCode=strCode+");>\n";var dtNewDate=new Date();var strYear=dtNewDate.getFullYear();strGraph=strGraph.replace("YYYY",strYear);strCode=strCode+strGraph;strCode=strCode+"</body>\n</html>\n";doc.write(strCode);doc.close();win.focus();}