
function Calculate_Click(symbol) {
	
	var propertyValue = safeNumbers(document.getElementById("propertyValue").value);
	if(isNaN(propertyValue) || Number(propertyValue) < 1) {
		alert("You must enter a valid price of the property.");
		return;
	}
	
	var deposit = safeNumbers(document.getElementById("deposit").value);
	if(isNaN(deposit) || Number(deposit) < 1) {
		alert("You must enter a valid deposit which is greater than zero");
		return;
	}
	
	var termOfLoan = safeNumbers(document.getElementById("term").value);
	if(isNaN(termOfLoan) || Number(termOfLoan) < 1 || Number(termOfLoan) > 100 || termOfLoan.search(/[^\d]/) > -1) {
		alert("You must enter a valid term of loan which is a whole number.");
		return;
	}
	
	propertyValue = parseFloat(propertyValue);
	termOfLoan = parseInt(termOfLoan) * 12;
	deposit = parseFloat(deposit);
	var interestRate = Number(safeNumbers(document.getElementById("rate").value));
	
	var loanAmount = propertyValue - deposit;
	document.getElementById("borrowedAmmount").value = formatCurrency(loanAmount);
	
	// if interest only
	var mortgageAmountPerMonth = (loanAmount * interestRate) / 12;
	
	if(document.getElementById("Repayment").checked)
		mortgageAmountPerMonth = loanAmount * (Math.pow((1 + interestRate / 12), termOfLoan) * interestRate) / (12 * (Math.pow((1 + interestRate / 12), termOfLoan) - 1));
	document.getElementById("result").value = formatCurrency(mortgageAmountPerMonth);
	
}

function formatCurrency(num) {
	num = safeNumbers(num);
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);
	var pence = num % 100;
	num = Math.floor(num / 100).toString();
	if(pence < 10)
		pence = (Number(pence) == 0)?"":"0" + pence;
	for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
		num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
	return (((sign)?'':'-') + num + ((Number(pence) > 9)?'.':'') + pence);
}

function safeNumbers(num) {
	return num.toString().replace(/\$|\,|\£/g,'');
}

