
<!--

  var repaymentRate = 0.05;

	//checks that data are valid 
	function checkNumber(input, min, max, msg) {

		msg = msg + " field has invalid data: " + input.value;

		//this makes sure that the number is a number
		var str = input.value;
		for (var i = 0; i < str.length; i++) {
			var ch = str.substring( i, i + 1)
			if ((ch < "0" || "9" < ch) && ch != '.') {
				alert(msg);
				return false;
			}
		}

		//this makes sure that the number lies between the min and max values allowed
		var num = 0 + str
		if (num < min || max < num) {
			alert(msg + " not in range [" + min + ".." + max + "]");
			return false;
		}
		input.value = str;
		return true;
	}

	function CalculateField(input) {
		if (input.value != null && input.value.length != 0)
		{
			//input.value = "" + eval(input.value);
		}
		CaculateForm(input.form);
	}

	function CaculateForm(form) {
		var MORTGAGE = form.MORTGAGE.value;
		var PERIOD = form.PERIOD.value;
		var RATE = form.RATE.value;

		//making sure that an entry has been made in each field.
		if ((MORTGAGE== null || MORTGAGE.length == 0) ||
			(RATE == null || RATE.length == 0)) 
		{
			//alert('not all fields filled in');
			return;
		}

		// making sure that entries are valid by using check number
		if (!checkNumber(form.MORTGAGE, 1, 99999999, "Amount") ||
			!checkNumber(form.RATE, .001, 1000, "Interest Rate") ||
			!checkNumber(form.PERIOD, 5, 30, "Period")) 
		{
			form.REPAYMENT.value = "Invalid";
			return;
		}

		// maths et al to be computed
		RATE = RATE / 100;
		var P = ((MORTGAGE * RATE) / 12) * (1 / (1 - (Math.pow(1 /(1 + RATE), PERIOD))));
		form.REPAYMENT.value = poundsPence(P);
		P = ((MORTGAGE * repaymentRate) / 12) * (1 / (1 - (Math.pow((1 / (repaymentRate + 1)), PERIOD))));
		form.REPAYMENT5PC.value = poundsPence(P);
		P = (MORTGAGE * RATE) / 12;
		form.INTERESTONLY.value = poundsPence(P);
		P = (MORTGAGE  *repaymentRate) / 12;
		form.INTERESTONLY5PC.value = poundsPence(P);
	}

	function poundsPence( N ) {
		// don't try this with ie3 because it's rubbish
		if ((navigator.appName.indexOf('Microsoft')>-1)
			&& (navigator.appVersion.indexOf('3.0')>-1) )
		{
			return N;
		}
		S = new String(N);
		var i = S.indexOf('.');
		if (i != -1) {
			S = S.substr(0, i + 3);
			if (S.length-i < 3)
				S = S + '0';
		}
		return S;
	}

	//clears form
	function clearForm(form) {
		form.MORTGAGE.value = "";
		form.PERIOD.value = "";
		form.RATE.value = "";
		form.REPAYMENT.value = "";
		form.INTERESTONLY.value = "";
		form.REPAYMENT5PC.value = "";
		form.INTERESTONLY5PC.value = "";
	}

//-->
