function isEmpty(field) {return (field.value.length == 0)}

function isNumber(field) {
	var valid = "0123456789., "
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == -1) {
			return false;
		}
	}
	return true;
}

function checkNumber(field, name) {
	if (isEmpty(field)) {
		field.focus();
		alert("The " + name + " must be entered.");
		return false;
	} else if (!isNumber(field) || (field.value==0)) {
		field.focus();
		alert("The " + name + " must be a number greater than zero.");
		return false;
	}
	return true;
}

function parseNumber(strNumber) {
	var num = strNumber.value;
	num = num.replace(/,/g,'');
	num = num.replace(/ /g,'');
	return num;
}

function parseMoney(number) {
	var num = "" + Math.round(number);
	var money = "";
	var c = 3;
	while (c < num.length) {
		money = "," + num.substring(num.length - c, num.length - c + 3) + money;
		c = c + 3;
	}
	money = num.substring(num.length - c, num.length - c + 3) + money;
	return money;
}

function checkYear(field, name) {
	if (isEmpty(field)) {
		field.focus();
		alert("The " + name + " must be entered.");
		return false;
	} else if (!isNumber(field) || (field.value > 30)) {
		field.focus();
		alert("The " + name + " must be a number and no longer than 30 years.");
		return false;
	}
	return true;
}

function parseMonths(years) {
	var years = parseNumber(years);
	var period = years * 12;
    return period;
}

function calculateRepay() {
	// get all the inputs
	var LoanAmount = parseNumber(document.calculator.LoanAmt);
	var InterestRate = parseNumber(document.calculator.IntRate)/1200;
	var TermMonth = parseMonths(document.calculator.TermYear);

	// find minimum repayment amount needed for the loan amount given
	// Math.pow - This method returns the value of x to the power of y (xy), where x is the base, and y is the exponent.
	var MinRepay = LoanAmount * InterestRate / (1 - Math.pow((1 + InterestRate * 1),-TermMonth));
	MinRepay = Math.ceil(MinRepay);

	document.calculator.RepayAmt.value = parseMoney(MinRepay);
	document.calculator.RepayAmt.focus();
}

//-------------------------------------------------------------------------------


// Calculate the Loan Amount
function calculateLoan() {
	// get all the inputs
	var RepayAmount = parseNumber(document.calculator.RepayAmt);
	var InterestRate = parseNumber(document.calculator.IntRate)/1200;
	var TermMonth = parseMonths(document.calculator.TermYear);

	// calculate the loan amount
	var LoanAmt = RepayAmount * (1 - Math.pow((1 + InterestRate * 1),-TermMonth))/InterestRate;
	document.calculator.LoanAmt.value = parseMoney(LoanAmt);
	document.calculator.LoanAmt.focus();
}