{div:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR{div}
{div:id=description}{div}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#NUMBER_UNLIMITED]
The numeric constant used to identify an unlimited number of repeated events.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_ANNUALY]
The numeric constant used to identify an annual period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_BI_ANNUALLY]
The numeric constant used to identify a bi\-annual period (twice every year).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_BI_MONTHLY]
The numeric constant used to identify a bi\-monthly period (twice every month).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_DAILY]
The numeric constant used to identify a daily period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_FOUR_MONTHLY]
The numeric constant used to identify a four\-monthly period (once every four months).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_FOUR_WEEKLY]
The numeric constant used to identify a four\-weekly period (once every four weeks).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_MONTHLY]
The numeric constant used to identify a monthly period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_NONE]
The numeric constant used to identify that there is no period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_QUARTERLY]
The numeric constant used to identify a quarterly period (once every three months).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_TWO_MONTHLY]
The numeric constant used to identify a two\-monthly period (once every two months).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_TWO_WEEKLY]
The numeric constant used to identify a two\-weekly period (once every two weeks).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_WEEKLY]
The numeric constant used to identify a weekly period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#STARTDAY_NORMAL]
The numeric constant used to identify that the same start day should be used as
the day of the month of the starting date of the event.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[Boolean]{td}{td}[#addCompoundPeriodChange]\(newPeriod, date)
Adds a compound period change.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, date)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, firstDate, lastDate, period)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, firstDate, lastDate, period, number)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, firstDate, lastDate, period, number, startday)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, date)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, firstDate, lastDate, period)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, firstDate, lastDate, period, number)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, firstDate, lastDate, period, number, startday)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addRateChange]\(newRate, date)
Sets a new interest rate.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#calculateAmortizationSchedule]\()
Calculates the amortization schedule.{td}{tr}{tbody}{tbody}{tr}{td}[JSDataSet]{td}{td}[#getAmortizationSchedule]\()
Gets the amortization schedule as a JSDataSet.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getError]\()
Returns the error that remains when solving for the unknown.{td}{tr}{tbody}{tbody}{tr}{td}[JSDataSet]{td}{td}[#getEvents]\()
Returns all the amortization events \- such as rate changes, loan events, payment events, compounding period changes.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getRestBalance]\()
Gets the rest balance after the amortization schedule.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getUnknown]\()
Returns the solveForUnknown value.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isValidPeriod]\(period)
Returns true if the period is valid, or false if the period is not valid.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#roundMoney]\(amount)
Rounds a number up to the nearest cents.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#solveForUnknown]\()
Returns true if successful or false if the call failed.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sortEvents]\()
Sorts the amortization events ascending by date.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{tbody:id=NUMBER_UNLIMITED}{tr:id=name}{td}h6.NUMBER_UNLIMITED{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_ANNUALY}{tr:id=name}{td}h6.PERIOD_ANNUALY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_BI_ANNUALLY}{tr:id=name}{td}h6.PERIOD_BI_ANNUALLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_BI_MONTHLY}{tr:id=name}{td}h6.PERIOD_BI_MONTHLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_DAILY}{tr:id=name}{td}h6.PERIOD_DAILY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_FOUR_MONTHLY}{tr:id=name}{td}h6.PERIOD_FOUR_MONTHLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_FOUR_WEEKLY}{tr:id=name}{td}h6.PERIOD_FOUR_WEEKLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_MONTHLY}{tr:id=name}{td}h6.PERIOD_MONTHLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_NONE}{tr:id=name}{td}h6.PERIOD_NONE{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_QUARTERLY}{tr:id=name}{td}h6.PERIOD_QUARTERLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_TWO_MONTHLY}{tr:id=name}{td}h6.PERIOD_TWO_MONTHLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_TWO_WEEKLY}{tr:id=name}{td}h6.PERIOD_TWO_WEEKLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_WEEKLY}{tr:id=name}{td}h6.PERIOD_WEEKLY{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=STARTDAY_NORMAL}{tr:id=name}{td}h6.STARTDAY_NORMAL{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=addCompoundPeriodChange-Number_Date}{tr:id=name}{td}h6.addCompoundPeriodChange{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addCompoundPeriodChange{span}{span}\(newPeriod, date){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} newPeriod
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, date){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date_Date_Number}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, firstDate, lastDate, period){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date_Date_Number_Number}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, firstDate, lastDate, period, number){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date_Date_Number_Number_Number}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, firstDate, lastDate, period, number, startday){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
\{[Number]} startday
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, date){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date_Date_Number}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, firstDate, lastDate, period){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date_Date_Number_Number}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, firstDate, lastDate, period, number){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date_Date_Number_Number_Number}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, firstDate, lastDate, period, number, startday){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
\{[Number]} startday
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addRateChange-Number_Date}{tr:id=name}{td}h6.addRateChange{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addRateChange{span}{span}\(newRate, date){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} newRate
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=calculateAmortizationSchedule}{tr:id=name}{td}h6.calculateAmortizationSchedule{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}calculateAmortizationSchedule{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.calculateAmortizationSchedule();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getAmortizationSchedule}{tr:id=name}{td}h6.getAmortizationSchedule{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSDataSet]{span}{span:style=font-weight: bold;}getAmortizationSchedule{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSDataSet]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.getAmortizationSchedule();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getError}{tr:id=name}{td}h6.getError{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getError{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
// sets the rate to -1 for unknown.
c.addRateChange(-1, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
var lastDate = null;
var period = 12;
var number_count = 5;
var startday = 31;
c.addPayment(500, new Date(2005, 1, 28), lastDate, period,number_count, startday);
// solves for the interest rate.
c.solveForUnknown();
// gets the interest rate and the error in the calculation.
// which should be small (otherwise the calculation did
// not converge for some reason.
var r = c.getUnknown();
var e = c.getError();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getEvents}{tr:id=name}{td}h6.getEvents{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSDataSet]{span}{span:style=font-weight: bold;}getEvents{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSDataSet]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.getEvents();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getRestBalance}{tr:id=name}{td}h6.getRestBalance{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getRestBalance{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var rb = plugins.amortization.getRestBalance();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUnknown}{tr:id=name}{td}h6.getUnknown{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getUnknown{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.getUnknown();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isValidPeriod-Number}{tr:id=name}{td}h6.isValidPeriod{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}isValidPeriod{span}{span}\(period){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} period
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var v_period = plugins.amortization.isValidPeriod(12);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=roundMoney-Number}{tr:id=name}{td}h6.roundMoney{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}roundMoney{span}{span}\(amount){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//rounds the number up to 34.35
var rm = plugins.amortization.roundMoney(34.349384);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=solveForUnknown}{tr:id=name}{td}h6.solveForUnknown{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}solveForUnknown{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.solveForUnknown();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sortEvents}{tr:id=name}{td}h6.sortEvents{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}sortEvents{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.sortEvents();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}