function checkEnter(pfield, pname) {
	var field = pfield.value
	var msg
	var status = true

	if(field.length == 0) {
		msg = "The " + pname + " field must be entered."
		alert(msg)
		status = false
	}
	
	return status
}

function checkNumb(pnumb, pname) {
	var numb = pnumb.value
	var message
	var indx
	var status = false

	for(var indx = 0; indx < numb.length; indx++)  {
		if(numb.charAt(indx) >= "0" && numb.charAt(indx) <= "9") {
			status = true
		}
	}
	for(var indx = 0; indx < numb.length; indx++) {
		if(!((numb.charAt(indx) >= "0" && numb.charAt(indx) <= "9") ||
		   numb.charAt(indx) == " " ||
		   numb.charAt(indx) == "." ||
		   numb.charAt(indx) == ",")) {
			status = false
		}
	}
	if (!status) {
		msg = "The " + pname + " field must be a number."
		alert(msg)
        }
	return status
}

function parseNumb(pnumbstr) {
	var numb = pnumbstr.value
	var indx

	indx = numb.indexOf(",")
	while (indx != -1) {
		numb = numb.substring(0,indx) + numb.substring(indx*1 + 1,numb.length)
		indx = numb.indexOf(",")
	}

	indx = numb.indexOf(" ")
	while (indx != -1) {
		numb = numb.substring(0,indx) + numb.substring(indx*1 + 1,numb.length)
		indx = numb.indexOf(" ")
	}

	return numb
}

function parseMonth(pyear, pmonth) {
	var year  = parseNumb(pyear)
	var month = parseNumb(pmonth)
	var period
	var indx

	period = Math.ceil(month*1 + year*12)

	return period
}

function checkLoan(pLoan) {
	var LoanAmt = pLoan
	var status

	if(checkEnter(LoanAmt,"Loan Amount")) {
		status = checkNumb(LoanAmt,"Loan Amount")
	}
    
	return status
}

function checkRepay(pRepay) {
	var RepayAmt = pRepay
	var status   = true

	if(checkEnter(RepayAmt,"Repay Amount")) {
        	if(checkNumb(RepayAmt,"Repay Amount")) {
        		if(RepayAmt.value == 0) {
				alert("The Repay Amount can not be zero.")
				status = false
			}
		} else {
			status = false
		}
	} else {
		status = false
	}

	return status
}

function checkIntRate(pIntRate) {
	var IntRate = pIntRate
	var status  = true

	if(checkEnter(IntRate,"Interest Rate")) {
		if(checkNumb(IntRate,"Interest Rate")) {
			if(IntRate.value == 0) {
				alert("The Interest Rate can not be zero.")
				status = false
			}
		} else {
			status = false
		}
	} else {
		status = false
	}

	return status
}

function checkTermY(pYear) {
	var TermYear = pYear
	var status   = true

	if(checkEnter(TermYear,"Year Period")) {
		if(checkNumb(TermYear,"Year Period")) {
			if(TermYear.value > 30) {
				alert("The Year Period can not be longer than 30 years.")
				status = false
			}
		} else {
			status = false
		}
	} else {
		status = false
	}
	
	return status
}

function checkTermM(pMonth) {
	var TermMonth = pMonth
	var status    = true

	if(checkEnter(TermMonth,"Month Period")) {
		if(checkNumb(TermMonth,"Month Period")) {
			if(TermMonth.value > 11) {
				alert("Please use the Year field to enter a period longer than 11 months.")
				status = false
			}
		} else {
			status = false
		}
	} else {
		status = false
	}

	return status
}

function CalcRepayAmt(pLoanAmt, pIntRate, pTerm) {
	var RepayAmt

	RepayAmt = pLoanAmt * pIntRate/(1 - Math.pow((1 + pIntRate*1),-pTerm))
	RepayAmt = Math.ceil(RepayAmt)

	return RepayAmt
}

function CalcRepay() {
    var LoanAmount;
    var InterestRate;
    var MonthTerm; 

    if(checkLoan(document.forms[0].strLoanAmount) && checkIntRate(document.forms[0].strIntRate) &&
       checkTermY(document.forms[0].strTermYear) && checkTermM(document.forms[0].strTermMonth)) {
		LoanAmount = parseNumb(document.forms[0].strLoanAmount);
		InterestRate = parseNumb(document.forms[0].strIntRate)/1200;
		MonthTerm = parseMonth(document.forms[0].strTermYear, document.forms[0].strTermMonth);

        document.forms[0].strRepayAmt.value = CalcRepayAmt(LoanAmount, InterestRate, MonthTerm);
	} else {
		document.forms[0].strRepayAmt.value = " ";
	}
}