    				var carLoan = new Calculators.loan.CarLoan(20000.00, 0.07, 0.00, 0.60, 2000.00, 60, 0.08, 0.08);
            var carLease = new Calculators.loan.Lease(1000.00, 24, 424.00, 0.08);

            function updateCalcs(){
        				// Common fields
                var downPayment = parseFloat(document.getElementById("down_payment").value.replace(/\$/g, "").replace(/,/g, ""));
                var rateOfReturn = parseFloat(document.getElementById("rate_of_return").value.replace(/%/g, "")) / 100;

				        // Loan fields
                var price = parseFloat(document.getElementById("price").value.replace(/\$/g, "").replace(/,/g, ""));
                var salesTaxRate = parseFloat(document.getElementById("sales_tax_rate").value.replace(/%/g, "")) / 100;
                var loanFees = parseFloat(document.getElementById("loan_fees").value.replace(/\$/g, "").replace(/,/g, ""));
                var residualPercent = parseFloat(document.getElementById("loan_residual").value.replace(/%/g, "")) / 100;
                var loanTerms = document.getElementById("loan_terms").value;
                var loanInterestRate = parseFloat(document.getElementById("loan_interest_rate").value.replace(/%/g, "")) / 100;

        				// Lease fields
                var leaseTerms = document.getElementById("lease_terms").value;
                var monthlyLeasePayment = parseFloat(document.getElementById("monthly_lease_payment").value.replace(/\$/g, "").replace(/,/g, ""));

        if (downPayment != carLoan.getDownPayment().getAmount() ||
            rateOfReturn != carLoan.rateOfReturn.getAmount() ||
            price != carLoan.getPrice().getAmount() ||
            salesTaxRate != carLoan.getSalesTaxRate().getAmount() ||
            loanFees != carLoan.getFees().getAmount() ||
            residualPercent != carLoan.getResidualPercent().getAmount() ||
            loanTerms != carLoan.getNumberOfTerms() ||
            loanInterestRate != carLoan.getInterestRate().getAmount() ||
            leaseTerms != carLease.getNumberOfTerms() ||
            monthlyLeasePayment != carLease.getMonthlyPayment().getAmount()) {

	              carLoan = new Calculators.loan.CarLoan(price, salesTaxRate, loanFees, residualPercent, downPayment, loanTerms, loanInterestRate, rateOfReturn);
	              carLease = new Calculators.loan.Lease(downPayment, leaseTerms, monthlyLeasePayment, rateOfReturn);

                calculate();
            }
        }


            function calculate(){
                // Update the static fields
        				// Loan fields
				        var expiredTerms = carLease.getNumberOfTerms();
        				document.getElementById("loan_summary_1").innerHTML = carLoan.getEndingMarketValue().formatted();
				        document.getElementById("loan_summary_2").innerHTML = carLoan.getDownPayment().formatted();
        				document.getElementById("loan_summary_3").innerHTML = carLoan.getTotalLoanPayments(expiredTerms).formatted();
        				document.getElementById("loan_summary_4").innerHTML = carLoan.getInterestLostOnPayments(expiredTerms).formatted();
				        document.getElementById("loan_summary_5").innerHTML = carLoan.getLoanBalance(expiredTerms).formatted();
				        document.getElementById("loan_summary_6").innerHTML = carLoan.getNetCost(expiredTerms).formatted();

        				// Lease fields
        				document.getElementById("lease_summary_1").innerHTML = carLoan.getDownPayment().formatted();
        				document.getElementById("lease_summary_2").innerHTML = carLease.getTotalMonthlyPayments().formatted();
        				document.getElementById("lease_summary_3").innerHTML = carLease.getInterestLost().formatted();
				        document.getElementById("lease_summary_4").innerHTML = carLease.getNetCost().formatted();

                // Update the data entry fields (with proper formatting)
        				// Common fields
        				document.getElementById("price").value = carLoan.getPrice().formatted();
        				document.getElementById("sales_tax_rate").value = carLoan.getSalesTaxRate().formatted();
        				document.getElementById("down_payment").value = carLoan.getDownPayment().formatted();
        				document.getElementById("rate_of_return").value = carLoan.rateOfReturn.formatted();

        				// Loan fields
        				document.getElementById("loan_terms").value = carLoan.getNumberOfTerms();
        				document.getElementById("loan_interest_rate").value = carLoan.getInterestRate().formatted();
        				document.getElementById("loan_fees").value = carLoan.getFees().formatted();
				        document.getElementById("loan_residual").value = carLoan.getResidualPercent().formatted();

    	    			// Lease fields
		  		      document.getElementById("lease_terms").value = carLease.getNumberOfTerms();
                document.getElementById("monthly_lease_payment").value = carLease.getMonthlyPayment().formatted();

                document.getElementById("loan_payment_amount").value = carLoan.getLoanPayment().formatted();
            }

            function displayReport() {
                var report = new Calculators.report.LoanOrLeaseReport(carLoan, carLease);
                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();
            }

