if (Calculators == undefined) {
	var Calculators = {};
}
if (Calculators.report == undefined) {
	Calculators.report = {};
}
Calculators.report.LoanReport = function LoanReport(loan){
	this.loan = loan;
	
	this.getBody = function() {
		var body = new Array();
        var total = this.loan.getTotalStatement();
        body.push("    <table>\n");
        body.push("      <tr>\n");
        body.push("        <td><b>Loan amount</b></td>\n");
        body.push("        <td>");
		body.push(this.loan.getPv().formatted());
		body.push("</td>\n");
        body.push("      </tr>\n");
        body.push("      <tr>\n");
        body.push("        <td><b>Months of payments</b></td>\n");
        body.push("        <td>");
		body.push(this.loan.getNper());
		body.push(" months</td>\n");
        body.push("      </tr>\n");
        body.push("      <tr>\n");
        body.push("        <td><b>Annual interest rate</b></td>\n");
        body.push("        <td>");
		body.push(this.loan.getRate().formatted());
		body.push("</td>\n");
        body.push("      </tr>\n");
        body.push("      <tr>\n");
        body.push("        <td><b>Monthly payment</b></td>\n");
        body.push("        <td>");
		body.push(this.loan.getMonthlyPayment().formatted());
		body.push("</td>\n");
        body.push("      </tr>\n");
        body.push("      <tr>\n");
        body.push("        <td><b>Total payments</b></td>\n");
        body.push("        <td>");
		body.push(total.getPayment().formatted());
		body.push("</td>\n");
        body.push("      </tr>\n");
        body.push("      <tr>\n");
        body.push("        <td><b>Total interest</b></td>\n");
        body.push("        <td>");
		body.push(total.getInterest().formatted());
		body.push("</td>\n");
        body.push("      </tr>\n");
        body.push("    </table>\n");
        body.push("    <hr size=\"1\" />\n");
        body.push("    <table width=\"100%\" cellspacing=\"0\">\n");
        body.push("      <tr>\n");
        body.push("        <td width=\"20%\"><b>Month</b></td>\n");
        body.push("        <td width=\"20%\"><b>Interest</b></td>\n");
        body.push("        <td width=\"20%\"><b>Principal</b></td>\n");
        body.push("        <td width=\"20%\"><b>Payment</b></td>\n");
        body.push("        <td width=\"20%\"><b>Balance</b></td>\n");
        body.push("      </tr>\n");

        var end = this.loan.getNper();
        for (var i = 1; i <= end; ++i) {
            var monthly = this.loan.getMonthlyStatement(i);
            if (i % 2 == 0) {
                body.push("      <tr>\n");
            } else {
								body.push("      <tr class=\"highlightStripe\">\n");
            }
            body.push("        <td>");
			body.push(i);
			body.push("</td>\n");
            body.push("        <td>");
			body.push(monthly.getInterest().formatted());
			body.push("</td>\n");
            body.push("        <td>");
			body.push(monthly.getPrincipal().formatted());
			body.push("</td>\n");
            body.push("        <td>");
			body.push(monthly.getPayment().formatted());
			body.push("</td>\n");
            body.push("        <td>");
			body.push(monthly.getBalance().formatted());
			body.push("</td>\n");
            body.push("      </tr>\n");
            if ((i % this.loan.MONTHS) == 0) {
                var year = i / this.loan.MONTHS;
                var yearly = this.loan.getYearlyStatement(year);
                body.push("      <tr>\n");
                body.push("        <td style=\"border-top:1px solid black;\">Year ");
				body.push(year);
				body.push(" totals</td>\n");
                body.push("        <td style=\"border-top:1px solid black;\">");
				body.push(yearly.getInterest().formatted());
				body.push("</td>\n");
                body.push("        <td style=\"border-top:1px solid black;\">");
				body.push(yearly.getPrincipal().formatted());
				body.push("</td>\n");
                body.push("        <td style=\"border-top:1px solid black;\">");
				body.push(yearly.getPayment().formatted());
				body.push("</td>\n");
                body.push("        <td style=\"border-top:1px solid black;\">&nbsp;</td>\n");
                body.push("      </tr>\n");
                body.push("      <tr>\n");
                body.push("        <td colspan=\"5\">&nbsp;</td>\n");
                body.push("      </tr>\n");
            }
        }

        body.push("      <tr>\n");
        body.push("        <td>Grand total</td>\n");
        body.push("        <td>");
		body.push(total.getInterest().formatted());
		body.push("</td>\n");
        body.push("        <td>");
		body.push(total.getPrincipal().formatted());
		body.push("</td>\n");
        body.push("        <td>");
		body.push(total.getPayment().formatted());
		body.push("</td>\n");
        body.push("        <td>&nbsp;</td>\n");
        body.push("      </tr>\n");
        body.push("    </table>\n");
		
        return body.join("");
	}
	
	this.getTitle = function() {
		return "Loan Report";
	}
}
Calculators.report.LoanReport.prototype = new Calculators.report.Report();

