<!--
	function calculate_repayment()
				{
				document.monthlycalc.loanamount.value = ForceNumeric(document.monthlycalc.loanamount.value);
				document.monthlycalc.loanperiod.value = ForceNumeric(document.monthlycalc.loanperiod.value);
				document.monthlycalc.interestrate.value = ForceNumeric(document.monthlycalc.interestrate.value);
				document.monthlycalc.overpayment.value = ForceNumeric(document.monthlycalc.overpayment.value);
				var loanamount = document.monthlycalc.loanamount.value;
				var interestrate = document.monthlycalc.interestrate.value;
				var loanperiod = document.monthlycalc.loanperiod.value;
				var over = document.monthlycalc.overpayment.value;
				if (interestrate > 0 && loanperiod > 0)
					{
					if (parseFloat(over) < parseFloat(loanamount))
						{
							var I = interestrate / 12;
							var X = 1/(1+I/100);
							var N = loanperiod * 12;
							var L = loanamount;
							var P1 = 0;
							var P2 = loanamount;
							var A1 = (L - P1 * Math.pow(X,N)) * (X - 1)/(Math.pow(X,N+1)-X);
							var m = (A1+ +over);
							var Q = ((A1 + +over)) - (L * (I/100));
							var A2 = (Math.log(m/Q))/(Math.log(1 + (I/100)))/12;
							document.monthlycalc.repayment.value = FormatNumber(A1,2);
							document.monthlycalc.totalpayment.value = FormatNumber((A1 * 12) * loanperiod,2) ;
							document.monthlycalc.term.value = FormatNumber(loanperiod,1);
							document.monthlycalc.newrepayment.value = FormatNumber(m);
							document.monthlycalc.newtotalpayment.value = FormatNumber((m * 12) * A2,2);
							document.monthlycalc.newterm.value = FormatNumber(A2,1);

							if (over = 0)
								{
									document.monthlycalc.totalsaving.value = FormatNumber(0,2);
									document.monthlycalc.years.value = FormatNumber(0,1);;
								}
							else
								{
									document.monthlycalc.totalsaving.value = FormatNumber(document.monthlycalc.totalpayment.value - document.monthlycalc.newtotalpayment.value,2);
									document.monthlycalc.years.value = FormatNumber(document.monthlycalc.term.value - document.monthlycalc.newterm.value,1);
								}
						}
					else
						{
							document.monthlycalc.overpayment.value = "0";
							document.monthlycalc.newrepayment.value = "0";
							document.monthlycalc.newtotalpayment.value = "0";
							document.monthlycalc.newterm.value = "0";
							document.monthlycalc.repayment.value = "0";
							document.monthlycalc.totalpayment.value = "0";
							document.monthlycalc.term.value = "0";
							document.monthlycalc.totalsaving.value = "0";
							document.monthlycalc.years.value = "0";
						}
					}
				else
					{
					document.monthlycalc.repayment.value = "*ERROR*";
					document.monthlycalc.interestonly.value = "*ERROR*";
					}
				}

			function FormatNumber(Number,Decimals,Separator)
			{
			
			 Number += ""          // Force argument to string.
			 Decimals += ""        // Force argument to string.
			 Separator += ""       // Force argument to string.
			 if((Separator == "") || (Separator.length > 1))
			  Separator = "."
			 if(Number.length == 0)
			  Number = "0"
			 var OriginalNumber = Number  // Save for number too large.
			 var Sign = 1
			 var Pad = ""
			 var Count = 0
			 // If no number passed, force number to 0.
			 if(parseFloat(Number)){
			  Number = parseFloat(Number)} else {
			  Number = 0}
			 // If no decimals passed, default decimals to 2.
			 if((parseInt(Decimals,10)) || (parseInt(Decimals,10) == 0)){
			  Decimals = parseInt(Decimals,10)} else {
			  Decimals = 2}
			 if(Number < 0)
			 {
			  Sign = -1         // Remember sign of Number.
			  Number *= Sign    // Force absolute value of Number.
			 }
			 if(Decimals < 0)
			  Decimals *= -1    // Force absolute value of Decimals.
			 // Next, convert number to rounded integer and force to string value.
			 // (Number contains 1 extra digit used to force rounding)
			 Number = "" + Math.floor(Number * Math.pow(10,Decimals + 1) + 5)
			 if((Number.substring(1,2) == '.')||((Number + '')=='NaN'))
			  return(OriginalNumber) // Number too large to format as specified.
			 // If length of Number is less than number of decimals requested +1,
			 // pad with zeros to requested length.
			 if(Number.length < Decimals +1) // Construct pad string.
			 {
			  for(Count = Number.length; Count <= Decimals; Count++)
			   Pad += "0"
			 }
			 Number = Pad + Number // Pad number as needed.
			 if(Decimals == 0){
			  // Drop extra digit -- Number is formatted.
			  Number = Number.substring(0, Number.length -1)} else {
			  // Or, format number with decimal point and drop extra decimal digit.
			 Number = Number.substring(0,Number.length - Decimals -1) +
					  Separator +
					  Number.substring(Number.length - Decimals -1,
					  Number.length -1)}
			 if(Sign == -1)
			  Number = "-" + Number  // Set sign of number.
			 if(Number.length == 0)
			  Number="0"
			 return(Number)
			}


			function ForceNumeric(nValue)
				{
				validChars = "0123456789.";
				newValue="";
				for(k = 0; k < nValue.length; k++)
					{
					thisChar = nValue.charAt(k);
					if(validChars.indexOf(thisChar) != -1) newValue += thisChar;
					}
				return newValue;
				}

			//-->


-->
