      var mortgage = new Calculators.loan.Loan(0.065, 12 * 30, 100000.00);

      function plotValues(){
        var stmt = mortgage.getTotalStatement();
				var principal = stmt.getPrincipal().getAmount();
				var interest = stmt.getInterest().getAmount();

        var chart = new FusionCharts("FusionCharts/FCF_Column3D.swf", "graphId", "240", "250");
        var dataXml = generateDataXml(principal, interest);
        chart.setDataXML(dataXml);
        chart.render("graph");
      };

      function generateDataXml(principal, interest) {
        var returnXml = new Array();
        returnXml.push("<?xml version='1.0'?>\n");
        returnXml.push("<graph caption='' xAxisName='' yAxisName='' showNames='1' showValues='1' decimalPrecision='0' formatNumberScale='0' numberPrefix='$' formatNumber='1' animation='0'>");
        returnXml.push("  <set name='Principal' value='" + principal + "' color='afd8f8' />");
        returnXml.push("  <set name='Interest' value='" + interest + "' color='f6bd0f' />");
        returnXml.push("</graph>");

        return returnXml.join("");
      }

      function updateCalcs(){
        var loanAmount = parseFloat(document.getElementById("loanAmount").value.replace(/\$/g, "").replace(/,/g, ""));
        var term = document.getElementById("term").value;
        var interestRate = parseFloat(document.getElementById("interestRate").value.replace(/%/g, "")) / 100;
        var prepaymentSchedule = document.getElementById("prepaymentSchedule").value;
        var prepaymentAmount = parseFloat(document.getElementById("prepaymentAmount").value.replace(/\$/g, "").replace(/,/g, ""));
        var startPayment = parseFloat(document.getElementById("startPayment").value.replace(/\$/g, "").replace(/,/g, ""));

        var frequency = new Calculators.loan.PaymentFrequency();
				switch (prepaymentSchedule)
				{
					case "None":
						var prepayment = new Calculators.loan.Prepayment(prepaymentAmount, frequency.getPaymentFrequency(frequency.NONE), startPayment);
						break;
					case "Lumpsum":
						var prepayment = new Calculators.loan.Prepayment(prepaymentAmount, frequency.getPaymentFrequency(frequency.LUMPSUM), startPayment);
						break;
					case "Monthly":
						var prepayment = new Calculators.loan.Prepayment(prepaymentAmount, frequency.getPaymentFrequency(frequency.MONTHLY), startPayment);
						break;
					default:
						var prepayment = new Calculators.loan.Prepayment(prepaymentAmount, frequency.getPaymentFrequency(frequency.YEARLY), startPayment);
						break;
				}

       if (loanAmount != mortgage.getPv().getAmount() ||
            term != mortgage.getMonthlyNper() ||
            interestRate != mortgage.getRate().getAmount() ||
            Number(prepayment.getPrepayment().getAmount()) != Number(mortgage.getPrepayment().getPrepayment().getAmount()) ||
            String(prepayment.getSchedule()) != String(mortgage.getPrepayment().getSchedule()) ||
            prepayment.getStartmonth() != mortgage.getPrepayment().getStartmonth()) {
        
          mortgage = new Calculators.loan.Loan(interestRate, 12 * term, loanAmount, prepayment);
          calculate();
       }
      }

      function calculate(){
        var stmt = mortgage.getTotalStatement();
        var total = stmt.getInterest().add(stmt.getPrincipal());
				// Update the static fields
        document.getElementById("monthlyPayment").value = mortgage.getMonthlyPayment().formatted();
        document.getElementById("totalInterest").value = stmt.getInterest().formatted();
        document.getElementById("totalPayment").value = total.formatted();

				// Update the data entry fields (with proper formatting)
        document.getElementById("loanAmount").value = mortgage.getPv().formatted();
        document.getElementById("interestRate").value = mortgage.getRate().formatted();
        document.getElementById("prepaymentAmount").value = mortgage.getPrepayment().getPrepayment().formatted();
        document.getElementById("startPayment").value = mortgage.getPrepayment().getStartmonth();

        // Update the graph
        plotValues();
      }

      function displayReport(){
        var report = new Calculators.report.LoanReport(mortgage);
        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();
      }

