function CheckAllValues() {
	var LoanTerm;
	var formObj = document.getElementById('ExRepayForm');

	if (document.getElementById('Amount').value == "") {
		alert("Please provide the Loan Amount");
		document.getElementById('Amount').focus();
		return false;
	} else if (document.getElementById('IntRate').value == "") {
		alert("Please provide an Interest Rate");
		document.getElementById('IntRate').focus();
		return false;
	} else if (document.getElementById('LTerm').value == "") {
		alert("Please provide the Loan Term (in years)");
		document.getElementById('LTerm').focus();
		return false;
	} else if (document.getElementById('ExRepay').value == "") {
		alert("Please provide the amount of the Extra Repayment (per month)");
		document.getElementById('ExRepay').focus();
		return false;
	} else if (document.getElementById('Years').value == "") {
		alert("Please provide a Starting Date (years from start of loan)");
		document.getElementById('Years').focus();
		return false;
	}

	if (!(parseFloat(document.getElementById('Amount').value) == document.getElementById('Amount').value)) {
		alert("Loan Amount must be numeric");
		document.getElementById('Amount').focus();
		return false;
	} else if (!(parseFloat(document.getElementById('IntRate').value) == document.getElementById('IntRate').value)) {
		alert("Interest Rate income must be numeric");
		document.getElementById('IntRate').focus();
		return false;
	} else if (!(parseFloat(document.getElementById('LTerm').value) == document.getElementById('LTerm').value)) {
		alert("Loan Term must be numeric");
		document.getElementById('LTerm').focus();
		return false;
	} else if (!(parseFloat(document.getElementById('ExRepay').value) == document.getElementById('ExRepay').value)) {
		alert("Extra Amount must be numeric");
		document.getElementById('ExRepay').focus();
		return false;
	} else if (!(parseFloat(document.getElementById('Years').value) == document.getElementById('Years').value)) {
		alert("Starting Date must be number or years");
		document.getElementById('Years').focus();
		return false;
	}

	var LoanTerm = document.getElementById('LTerm').value

	if (!isIntegerInRange(document.getElementById('Amount').value, 1000, 10000000)) {
		alert("Loan Amount must be in the range (£) 1,000 - 10,000,000");
		document.getElementById('Amount').focus();
		return false;
	} else if (!isIntegerInRange(document.getElementById('IntRate').value, 1, 30)) {
		alert("Interest Rate must be in the range 1 - 30 (% p.a.)");
		document.getElementById('IntRate').focus();
		return false;
	} else if (!isIntegerInRange(document.getElementById('LTerm').value, 1, 40)) {
		alert("Loan Term must be in the range 1 - 40 (years)");
		document.getElementById('LTerm').focus();
		return false;
	} else if (!isIntegerInRange(document.getElementById('ExRepay').value, 0, 10000)) {
		alert("Extra Repayment must be in the range (£ per month) 0 - 10,000");
		document.getElementById('ExRepay').focus();
		return false;
	} else if (!isIntegerInRange(document.getElementById('Years').value, 0, LoanTerm)) {
		alert("Starting date must be in the range 0 - " + LoanTerm + " (years from start)");
		document.getElementById('Years').focus();
		return false;
	}

	return true;
}

function RunExRepayForm() {
	if(CheckAllValues()) {
		var vAmount	=document.getElementById('Amount').value;
		var vIntRate=document.getElementById('IntRate').value;
		var vLTerm	=document.getElementById('LTerm').value;
		var vExRepay=document.getElementById('ExRepay').value;
		var vYears	=document.getElementById('Years').value;
		var vMinPay=(vAmount*(vIntRate/1200))*((1/((Math.pow((1+(vIntRate/1200)),(vLTerm*12))) -1))+1);
		var vIntSaved;
		var LTerm1=(vLTerm)-(vYears);
		var Loan;
		var ExPay=0;
		var calcMonths;
		var calcYears;
		var strYears = " years, ";
		var T = 0;
		var X = 0;

		//convert to numeric...
		vMinPay = (Math.round(vMinPay*100))/100;
		vExRepay = (Math.round(vExRepay*100))/100;
		vIntSaved = vMinPay*12*vLTerm;

		//time saved routine...
		Loan = vAmount;
		for (T=0; T < Math.round(vYears*12); T++) {
			Loan = (Loan * (1 + (vIntRate/1200)))-vMinPay;
			ExPay = ExPay+vMinPay;
		}

		X = (T-1);

		for (X=X; Loan >=0; X++) {
			Loan = (Loan * (1 + (vIntRate/1200)))-(vMinPay + vExRepay)
			ExPay = ExPay+vMinPay+vExRepay;
		}

		//interest saved routine...
		vIntSaved = vIntSaved-ExPay+vMinPay+vExRepay;

		if(vIntSaved > 0) {
			vIntSaved=(Math.floor(vIntSaved*100))/100;
		} else {
			vIntSaved=0;
		}

		//display results...
		calcYears = Math.floor(((vLTerm*12)-X)/12);
		calcMonths = (Math.round(vLTerm*12)-X)-(calcYears*12);

		if(calcYears == 1) {
			strYears = " year, "
		}
		document.getElementById('MinPay').value = "£" + vMinPay + " per month";
		document.getElementById('ActPay').value = "£" + (Math.floor((vMinPay + vExRepay)*100))/100 + " per month";
		document.getElementById('TimeSaved').value = calcYears + strYears + calcMonths + " months";			
		document.getElementById('IntSaved').value = "£" + vIntSaved;

		return true;
	} else {
		return false;
	}
}