function StripChars(strIn) {
	var newstr = "";
	var Chars = "0123456789.";
    for (var i = 0; i < strIn.length; i++) {
       if (Chars.indexOf(strIn.charAt(i)) == -1) {}
	   else {
	   	newstr = newstr + strIn.charAt(i);
	   }
    }
	return newstr;
}
function rounding(n) {
	cents = n * 100;
	cents = Math.round(cents);
	strCents = "" + cents;
	len = strCents.length;
	return strCents.substring(0, len - 2) + "." + strCents.substring((len - 2), len);
}
function calcStamp(formfield)
{
	var mortgage = 79;
	var transfer = 79;
	var valueofprop = document.getElementById('propvalue').value;
	var loanamount = document.getElementById('loanamount').value;
	
	if (valueofprop <= 14000) 
	{
		var duty = eval((valueofprop/100)*1.25);
	}
	else if ((valueofprop > 14000) && (valueofprop <= 30000)) 
	{
		var duty = eval((((valueofprop - 14000)/100)*1.5) + 175);
	}
	else if ((valueofprop > 30000) && (valueofprop <= 80000)) 
	{
		var duty = eval((((valueofprop - 30000)/100)*1.75) + 415);
	}
	else if ((valueofprop > 80000) && (valueofprop <= 300000)) 
	{
		var duty = eval((((valueofprop - 80000)/100)*3.5) + 1290);
	}
	else if ((valueofprop > 300000) && (valueofprop <= 1000000)) 
	{
		var duty = eval((((valueofprop - 300000)/100)*4.5) + 8990);
	}
	else 
	{
		var duty = eval((((valueofprop - 1000000)/100)*5.5) + 40490);
	}
	if ((loanamount % 1000) != 0 ) 
	{
		var mod = eval(1000-(loanamount % 1000));
		loanamount = -(-loanamount- mod);
	}
	if (loanamount <= 16000) 
	{
		var loanduty = 5;
	}
	else 
	{
		var loanduty = eval((((loanamount - 16000)/1000)*4) + 5);
	}
	total = eval(duty + loanduty + mortgage + transfer);
	total = rounding(total);
	duty = rounding(duty);
	loanduty = rounding(loanduty);
	mortgage = rounding(mortgage);
	transfer = rounding(transfer);
	
	formfield.duty.value = duty;
	formfield.loanduty.value = loanduty;
	formfield.mortgage.value = mortgage;
	formfield.transfer.value = transfer;
	formfield.total.value = total;
		
}
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 computeField(input) 
{
	if (input.value != null && input.value.length != 0)
	{
		input.value = "" + eval(input.value);
	}
	computeForm(input.form);
}
function computeForm(form) 
{
	var price=form.price.value;
	var deposit=form.deposit.value;
	var T=form.T.value;
	var R=form.R.value;
	//making sure that an entry has been made in each field.
	if ((price == null || price.length == 0) || (R == null || R.length == 0)) 
	{
		//alert('not all fields filled in');
		return;
	}
	
	// making sure that entries are valid by using check number
	if (!checkNumber(form.price, 1, 9999999, "Amount") ||
		!checkNumber(form.R, .001, 1000, "Interest Rate") ||
		!checkNumber(form.T, 5, 50, "Period")) 
	{
		document.getElementById('mpay').innerHTML = 'Invalid';
		return;
	}
	// maths et al to be computed
	var A = price - deposit;
	R = R / 100;
	var P = ((A*R)/12) * (1/(1-(Math.pow(1/(1+R),T))));
	//form.Cm.value = poundsPence( P );
	P = P.toFixed(2);
	document.getElementById('mpay').innerHTML = poundsPence(P);
	document.getElementById('loan').innerHTML = A;
}
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';
	}
	S = parseFloat(S);
	return S.toFixed(2);
}
//clears form
function clearForm(form) 
{
	form.A.value = "";
	form.T.value = "";
	form.R.value = "";
}

