var Calculators = Calculators || {};
Calculators.report = Calculators.report || {};

Calculators.report.MonthlyToBiWeeklyReport = function MonthlyToBiWeeklyReport(monthlyToBiWeekly, reportType) {
	var tmpLoan = null;
	if(reportType == "Monthly") {
		tmpLoan = monthlyToBiWeekly.getMonthlyLoan();
	} else {
		tmpLoan = monthlyToBiWeekly.getBiWeeklyLoan();
	}
	this.loan = tmpLoan
	
	this.getBody = function() {
		var body = new Array();
        var total = this.loan.getTotalStatement();		
				body.push("    <b>"+reportType+" Payment Schedule</b>\n");
				body.push("    <br>&nbsp;<br>\n");
        body.push("    <table width=\"100%\" cellspacing=\"0\">\n");
        body.push("      <tr>\n");
        body.push("        <td width=\"20%\"><b>Payment</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.PAYMENTS_PER_YEAR) == 0) {
                var year = i / this.loan.PAYMENTS_PER_YEAR;
                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 "Pay Points on Mortgage Report";
	}	
}
Calculators.report.MonthlyToBiWeeklyReport.prototype = new Calculators.report.Report();
