function doLoanRepaymentCalculations(n)
{
	if (n == 1) {
		var principal = parseFloat(document.Q1.principal.value);
		var interest = parseFloat(document.Q1.interest.value/100/12);
		var year = parseFloat(document.Q1.year.value); 
		var repayFreq = document.Q1.frequency.value;

		if (document.Q1.loantype.value == "i") {
			if (repayFreq == "m") document.getElementById("message").innerHTML = '<h5>Your monthly repayment is $' + numval(principal*interest,2) + '.</h5>';
			if (repayFreq == "f") document.getElementById("message").innerHTML = '<h5>Your fortnightly repayment is $' + numval(principal*interest/2,2) + '.</h5>';
			if (repayFreq == "w") document.getElementById("message").innerHTML = '<h5>Your weekly repayment is $' + numval(principal*interest/4,2) + '.</h5>';		
		} else {
			document.getElementById("table3").innerHTML = '<APPLET CODE="LoanSim.Graph.class" ARCHIVE="Graph.jar" WIDTH=450 HEIGHT=450 HSPACE=0 VSPACE=0 ALIGN=top><PARAM NAME=Term Value="' + year + '"><PARAM NAME="Balance1" value="' + drawTable(principal,interest,year,repayFreq,0,-1,-1,"table1","Amortization Table",0) + '"><PARAM NAME="Balance2" Value=""><PARAM NAME="Redraw" Value=""></APPLET>';
		}

		document.getElementById("disclaimer").innerHTML = strGeneral;
		document.getElementById("spacer").innerHTML = '<br><br><br><br><br><br><br>';
	}
	
	if (n == 2) {
		var repayment = parseFloat(document.Q2.repayment.value);
		var interest = parseFloat(document.Q2.interest.value/100);
		var year = parseFloat(document.Q2.year.value); 

		document.getElementById("message").innerHTML = '<h5>You can borrow up to <b>$' + numval(repayment*(1-Math.pow(1+(interest/12),-year*12))/(interest/12)) + '</b> (Monthly Repayment: <b>$' + numval(repayment) + '</b>)</h5>';
		document.getElementById("disclaimer").innerHTML = strHowMuch;
		document.getElementById("spacer").innerHTML = '<br><br><br><br><br>';
	}

	if (n == 3) {
		var principal = parseFloat(document.Q3.principal.value);
		var interest = parseFloat(document.Q3.interest.value/100/12);
		var year = parseFloat(document.Q3.year.value); 
		var extra = parseFloat(document.Q3.extra.value); 
		var repayFreq = document.Q3.frequency.value;

		document.getElementById("table3").innerHTML = 
		'<APPLET CODE="LoanSim.Graph.class" ARCHIVE="Graph.jar" WIDTH=450 HEIGHT=450 HSPACE=0 VSPACE=0 ALIGN=top>' + 
		'<PARAM NAME=Term Value="' + year + '">' + 
		'<PARAM NAME="Balance1" value="' + drawTable(principal,interest,year,repayFreq,0,-1,-1,"table1","Amortization Table (w/o extra payments)",0) + '">' + 
		'<PARAM NAME="Balance2" Value="' + drawTable(principal,interest,year,repayFreq,extra,-1,-1,"table2","Amortization Table (w/ extra payments)",0) + '">' + 
		'<PARAM NAME="Redraw" value="' + drawTable(principal,interest,year,repayFreq,extra,-1,-1,"table2","Amortization Table (w/ extra payments)",1) + '">' + 
		'</APPLET>';
		
		document.getElementById("disclaimer").innerHTML = strGeneral;
		document.getElementById("spacer").innerHTML = '<br><br><br><br><br><br><br><br>';
	}
	
	if (n == 4)	{
		var principal = parseFloat(document.Q4.principal.value);
		var interest = parseFloat(document.Q4.interest.value/100/12);
		var year = parseFloat(document.Q4.year.value); 
		var extra1time = parseFloat(document.Q4.extra1time.value);
		var startyear = parseFloat(document.Q4.startyear.value); 
		var repayFreq = document.Q4.frequency.value;

		document.getElementById("table3").innerHTML = 
		'<APPLET CODE="LoanSim.Graph.class" ARCHIVE="Graph.jar" WIDTH=450 HEIGHT=450 HSPACE=0 VSPACE=0 ALIGN=top>' + 
		'<PARAM NAME=Term Value="' + year + '">' + 
		'<PARAM NAME="Balance1" value="' + drawTable(principal,interest,year,repayFreq,0,-1,-1,"table1","Amortization Table (w/o extra payments)",0) + '">' + 
		'<PARAM NAME="Balance2" Value="' + drawTable(principal,interest,year,repayFreq,0,extra1time,startyear,"table2","Amortization Table (w/ extra payments)",0) + '">' + 
		'<PARAM NAME="Redraw" Value="' + drawTable(principal,interest,year,repayFreq,0,extra1time,startyear,"table2","Amortization Table (w/ extra payments)",1)  + '">' + 
		'</APPLET>';
		
		document.getElementById("disclaimer").innerHTML = strGeneral;
		document.getElementById("spacer").innerHTML = '<br><br><br><br><br><br><br><br><br><br><br>';
	}

	if (n == 5)	{
		var principal = parseFloat(document.Q4.principal.value);
		var interest = parseFloat(document.Q4.interest.value/100/12);
		var year = parseFloat(document.Q4.year.value); 
		var lumsum = parseFloat(document.Q4.lumsum.value);
		var lumsumyear = parseFloat(document.Q4.lumsumyear.value); 
		var repayFreq = document.Q4.frequency.value;
		
		document.getElementById("table3").innerHTML = 
		'<APPLET CODE="LoanSim.Graph.class" ARCHIVE="Graph.jar" WIDTH=450 HEIGHT=450 HSPACE=0 VSPACE=0 ALIGN=top>' + 
		'<PARAM NAME=Term Value="' + year + '">' + 
		'<PARAM NAME="Balance1" value="' + drawTable(principal,interest,year,repayFreq,0,-1,-1,"table1","Amortization Table (w/o extra payments)",0) + '">' + 
		'<PARAM NAME="Balance2" Value="' + drawTable(principal,interest,year,repayFreq,-1,lumsum,lumsumyear,"table2","Amortization Table (w/ extra payments)",0) + '">' + 
		'<PARAM NAME="Redraw" Value="' + drawTable(principal,interest,year,repayFreq,-1,lumsum,lumsumyear,"table2","Amortization Table (w/ extra payments)",1) + '">' + 
		'</APPLET>';
		
		document.getElementById("disclaimer").innerHTML = strStampDuty;
		document.getElementById("spacer").innerHTML = '<br><br><br><br><br><br><br><br>';
	}
}

function drawTable(p,r,t,repayFreq,e1,e2,f,location,title,redraw)
{
	var principal = p;
	var rate = r;
	var term = t;
	var extra1 = e1;
	var extra2 = e2;
	var freq = f;
	var redraw;

	var yearlypayment = 0;
	var yearlyprincipal = 0;
	var yearlyinterest = 0;

	var totalinterest = 0;
	var totalyears = t;
	var presentvalue = p;
	var totalredraw = 0;

	var monthlypayment = principal*rate/(1-Math.pow(1+rate,-term*12));

	if (repayFreq == "m")
	{
		monthlypayment = monthlypayment + extra1;
		
		if (extra1 > 0) document.getElementById("message").innerHTML = '<h5>Your monthly repayment is $' + numval(monthlypayment-extra1,2) + ' plus $' + numval(extra1,2) + ' per repayment (Total payment: $' + numval(monthlypayment,2) + ').</h5>';
		
		else document.getElementById("message").innerHTML = '<h5>Your monthly repayment is $' + numval(monthlypayment,2) + '.</h5>';
		j = 12;
	}

	if (repayFreq == "f")
	{
		monthlypayment = monthlypayment/2 + extra1;
		
		if (extra1 > 0) document.getElementById("message").innerHTML = '<h5>Your fortnightly repayment is $' + numval(monthlypayment-extra1,2) + ' plus $' + numval(extra1,2) + ' per repayment (Total payment: $' + numval(monthlypayment,2) + ').</h5>';
		
		else document.getElementById("message").innerHTML = '<h5>Your fortnightly repayment is $' + numval(monthlypayment,2) + '.</h5>';
		j = 26;
	}
	
	if (repayFreq == "w")
	{
		monthlypayment = monthlypayment/4 + extra1;
		
		if (extra1 > 0) document.getElementById("message").innerHTML = '<h5>Your weekly repayment is $' + numval(monthlypayment-extra1,2) + ' plus $' + numval(extra1,2) + ' per repayment (Total payment: $' + numval(monthlypayment,2) + ').</h5>';
		
		else document.getElementById("message").innerHTML = '<h5>Your weekly repayment is $' + numval(monthlypayment,2) + '.</h5>';
		j = 52;
	}

	var i = parseFloat(rate*12/j);
	
	var tblStr = "<table border='0'><tr><td colspan='5' class='doctext' align='center'><b><u>" + title + "</b></u></td></tr><tr><td class='doctext' valign='top'><b>Year</b></td><td class='doctext'><b>Opening<br>Balance</b></td><td class='doctext'><b>Principal<br>Portion</b></td><td class='doctext'><b>Interest<br>Portion</b></td><td class='doctext'><b>Closing<br>Balance</b></td></tr>";

// <td class='doctext'><b>Total<br>Payments</b></td>

	var graphStr = numval(presentvalue) + ",";
	var redrawStr = 0 + ",";
	
	for (n = 1; n <= totalyears; n++)
	{
		openbalance = presentvalue;

		for (m = 1; m <= j; m++)
		{

			if ((openbalance / (1 + i)) <= monthlypayment)
			{
				monthlypayment = openbalance * (1 + i);
				monthlyinterest = openbalance * i;
			}

			else 
			{
				monthlyinterest = openbalance * i;
				if (extra1 >= 0) totalredraw += extra1;
			}

			monthlyprincipal = monthlypayment - monthlyinterest;
			closebalance = openbalance - monthlyprincipal;
					
			yearlypayment += monthlypayment;
			yearlyprincipal += monthlyprincipal;
			yearlyinterest += monthlyinterest;

			openbalance = closebalance;
			
		}
				
//		if (extra1 != 0) alert(totalredraw + " " + n);


		if (n == freq && extra1 == 0) 
		{
			closebalance -= extra2;
			yearlypayment += extra2;
			yearlyprincipal += extra2;
			totalredraw += extra2;
		}		

		if (mod(n, freq) == 0 && extra1 == -1 && closebalance >= extra2) 
		{
			closebalance -= extra2;
			yearlypayment += extra2;
			yearlyprincipal += extra2;
			totalredraw += extra2;
		}


		tblStr += "<tr><td class='doctext'><b>" + n + "</b></td><td class='doctext'>$" + numval(presentvalue) + "</td><td class='doctext'>$" + numval(yearlyprincipal) + "</td><td class='doctext'>$" + numval(yearlyinterest) + "</td><td class='doctext'>$" + numval(closebalance) + "</td></tr>";

// <td class='doctext'>$" + numval(yearlypayment) + "</td>

		graphStr += numval(closebalance);
		if (numval(closebalance) != 0) graphStr += ",";

		if (numval(closebalance) >= 0) redrawStr += numval(totalredraw);
		if (n != totalyears) redrawStr += ",";

		presentvalue = closebalance;
				
		totalinterest += yearlyinterest;

		yearlypayment = 0;
		yearlyprincipal = 0;
		yearlyinterest = 0;
	}

	tblStr += "<tr><td colspan='3' class='doctext' align='right'><b>Total Interest:</b></td><td class='doctext'>$" + numval(totalinterest) + "</td><td></td></tr>";

	tblStr += "</table>";
	
	document.getElementById(location).innerHTML = tblStr;

	if (redraw == 1) graphStr = redrawStr;
	
	return graphStr;
}
