var rp = 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 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;
	}
	var 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;
}


function calcVal(e) {
	if (e.value != null && e.value.length != 0) e.value = "" + eval(e.value);
	calcForm(e.form);
}

function calcForm(f) {
	var b = f.borrow.value;
	var y = f.years.value;
	var r = f.rate.value;
	var totalin=eval(f.income1.value) + eval(f.income2.value);
	var totalout=f.outgoings.value;

	//making sure that an entry has been made in each field.
	if (b == "" || r == "") {	//alert('not all fields filled in');
		return;
	}

	// making sure that entries are valid by using check number
	if (!checkNumber(f.borrow, 1, 99999999, "Amount") ||
		!checkNumber(f.rate, .001, 1000, "Interest Rate") ||
		!checkNumber(f.years, 5, 100, "Period")){
		f.Cm.value = "Invalid";
		return;
	}

	var t="<h2>Results</h2><table>";

	r = r / 100;
	var p = ((b*r)/12) * (1/(1-(Math.pow(1/(1+r),y))));
	t += "<tr><td>Repayment mortgage:<sup>(1)</sup></td><td>&pound;" + poundsPence( p ) + "</td></tr>";	// repayment mortgage
	
	
	
	p = (b*r)/12;
	t +="<tr><td>Interest only mortgage:</td><td>&pound;" + poundsPence( p ) + "</td></tr>";	// interest only
	
	// calculate total borrowable
	if(totalin>0 && totalout>0){
		var loanfrom=(totalin-(totalout*12))*3;
		var loanto=(totalin-(totalout*12))*4.25;
//		alert("total in:"+totalin+" | total out:"+totalout+" | load from:"+loanfrom+" | loan to:"+loanto);
		t +="<tr><td>A mortgage provide may offer to lend you:</td><td>between &pound;" + poundsPence( loanfrom ) + " and &pound;" + poundsPence( loanto );	
	}else{
		t +="<tr><td colspan='2'>Please enter the details abbove to find out how much you are likely to be able to borrow";	
	}
	t +="</td></tr>";
	t +="</table>";

	$('#mortgageresults').html(t);
/*	
	p = ((b*rp)/12) * (1 / (1-(Math.pow((1/(rp + 1)),y))));
	f.CCm.value = poundsPence( p );

	p = (b*rp)/12;
	f.CCI.value = poundsPence( p );	
*/
	
}


