// requires jQuery.js, commonCalculator.js
var pointsOnMortgage = null;

jQuery(function() {
	jQuery("#calculatorForm").bind('submit', calculate);		
	jQuery("#viewPaymentSchedulePoints").bind('click', openPointsReportWindow);
	jQuery("#viewPaymentScheduleNoPoints").bind('click', openNoPointsReportWindow);
	calculate();
});

var test = null;

function calculate() {
	var loanAmount = getInputMoney("#pointsLoanAmount");
	var points = getInputNumber("#points");
	var loanTerm = getInputNumber("#pointsLoanTerm");
	var pointsRate = getInputRate("#pointsRate");
	var noPointsRate = getInputRate("#noPointsRate");
	
	pointsOnMortgage = new Calculators.loan.PointsOnMortgage(loanAmount, points, loanTerm, pointsRate, noPointsRate);
	
	
	jQuery("#pointsAmount").val(pointsOnMortgage.getPointsAmount().formatted());
	jQuery("#noPointsLoanTerm").val(pointsOnMortgage.getLoanTerm());
	jQuery("#noPointsLoanAmount").val(pointsOnMortgage.getNoPointsLoanAmount().formatted());
	jQuery("#pointsMonthlyPayment").val(pointsOnMortgage.getPointsMonthlyPayment().formatted());
	jQuery("#noPointsMonthlyPayment").val(pointsOnMortgage.getNoPointsMonthlyPayment().formatted());	
	jQuery("#monthlySavings").val(pointsOnMortgage.getMonthlySavings().formatted());
	jQuery("#timeToRecoverCost").val(pointsOnMortgage.getTimeToRecoverCost());	
	jQuery("#pointsTotalExpense").val(pointsOnMortgage.getPointsTotalExpense().formatted());	
	jQuery("#noPointsTotalExpense").val(pointsOnMortgage.getNoPointsTotalExpense().formatted());
	plotValues();
	return false;
}

function plotValues(){
	var chart = new FusionCharts("FusionCharts/FCF_Column3D.swf", "graphId", "355", "240");
	var dataXml = generateDataXml();
	chart.setDataXML(dataXml);
	chart.render("graph");
};

function generateDataXml(){
	var returnXml = new Array();
	returnXml.push("<?xml version='1.0'?>\n");
	returnXml.push("<graph caption='Pay Points on Mortgage' xAxisName='' yAxisName='' showNames='1' showValues='0' decimalPrecision='2' formatNumberScale='0' numberPrefix='$' formatNumber='1' animation='0' baseFontColor='999999' hoverCapSepChar=': '>");
	returnXml.push("  <set name='Points' value='");
	returnXml.push(pointsOnMortgage.getPointsTotalExpense().getAmount());
	returnXml.push("' hoverText='Total interest and points expense'");
	returnXml.push(" color='afd8f8' />");	
	returnXml.push("  <set name='No Points' value='");
	returnXml.push(pointsOnMortgage.getNoPointsTotalExpense().getAmount());
	returnXml.push("' hoverText='Total interest expense'");
	returnXml.push(" color='f6bd0f' />");	
	returnXml.push("</graph>");

	return returnXml.join("");	
}

function openReportWindow(reportType) {
	var report = new Calculators.report.MortgagePointsReport(pointsOnMortgage, reportType);
	var WINDOW_OPTIONS = "toolbar=no, menubar=no, resizable=yes, scrollbars=yes";
	var reportWindow = window.open("", "_new", WINDOW_OPTIONS);
	reportWindow.document.write(report.getHtmlReport());
	reportWindow.document.close();
}

function openPointsReportWindow() {
	openReportWindow("Points");
	return false;
}

function openNoPointsReportWindow() {
	openReportWindow("No Points");
	return false;
}

