
function PopUpPrint () {
	CalcRepay();
	inputstring = "repayment_calc_displaycertificate_frame.asp"
	inputstring = inputstring + "?LoanAmt1=" + document.repay.LoanAmt1.value
	inputstring = inputstring + "&IntRate1=" + document.repay.IntRate1.value
	inputstring = inputstring + "&TermYear1=" + document.repay.TermYear1.value
	inputstring = inputstring + "&TermMonth1=" + document.repay.TermMonth1.value
	inputstring = inputstring + "&RepayAmt1=" + document.repay.RepayAmt1.value
	window.open(inputstring,'certificate','width=640,height=600,scrollbars=yes,resizable=yes,screenX=0,screenY=0,left=0,top=0')
}

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++) /* the field should contain at least one digit */
        {
        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.repay.LoanAmt1) &&
        checkIntRate(document.repay.IntRate1) &&
        checkTermY(document.repay.TermYear1) &&
        checkTermM(document.repay.TermMonth1))
	{
    	LoanAmount   = parseNumb(document.repay.LoanAmt1)
	InterestRate = parseNumb(document.repay.IntRate1)/1200
	MonthTerm    = parseMonth(document.repay.TermYear1,document.repay.TermMonth1)

	document.repay.RepayAmt1.value = CalcRepayAmt(LoanAmount, InterestRate, MonthTerm)
	}
    else
	{
	document.repay.RepayAmt1.value = " "
	}
}

function CalcTerm()
{

/* Calculate the Repaid Period */

    var MonthTerm    = 0	
    var YearTerm     = 0
    var MaxTerm      = 30 * 12     /* 30 years */
    var LoanAmount
    var RepayAmount
    var InterestRate
    var MinRepay


    if (checkLoan(document.repay.LoanAmt2) &&
        checkRepay(document.repay.RepayAmt2) &&
        checkIntRate(document.repay.IntRate2))
	{
	LoanAmount   = parseNumb(document.repay.LoanAmt2)
	RepayAmount  = parseNumb(document.repay.RepayAmt2)
	InterestRate = parseNumb(document.repay.IntRate2)/1200
	MinRepay     = CalcRepayAmt(LoanAmount, InterestRate, MaxTerm)

    	if (RepayAmount < MinRepay)
	    {
	    Msg = "Sorry, the minimum repayment amount must be " + MinRepay + " dollars."
	    alert(Msg)
            document.repay.TermYear2.value  = " "
            document.repay.TermMonth2.value = " "
	    }
	else
	    {
	    MonthTerm = Math.log(RepayAmount/(RepayAmount - LoanAmount * InterestRate)) / Math.log(1 + InterestRate)
	    MonthTerm = Math.ceil(MonthTerm)

	    YearTerm = Math.floor(MonthTerm / 12)
	    MonthTerm = MonthTerm - (YearTerm * 12)
	    document.repay.TermYear2.value  = YearTerm
	    document.repay.TermMonth2.value = MonthTerm 
	    }
	}
    else
	{
        document.repay.TermYear2.value  = " "
	document.repay.TermMonth2.value = " "
	}
}

function CalcLoan()
{
    var LoanAmt

    var RepayAmount
    var InterestRate
    var MonthTerm

    if (checkRepay(document.repay.RepayAmt3) &&
        checkIntRate(document.repay.IntRate3) &&
        checkTermY(document.repay.TermYear3) &&
        checkTermM(document.repay.TermMonth3))
	{
	RepayAmount  = parseNumb(document.repay.RepayAmt3)
	InterestRate = parseNumb(document.repay.IntRate3)/1200
	MonthTerm    = parseMonth(document.repay.TermYear3,document.repay.TermMonth3)

	LoanAmt = RepayAmount * (1 - Math.pow((1 + InterestRate*1),-MonthTerm))/InterestRate
	document.repay.LoanAmt3.value = Math.floor(LoanAmt)
	}
    else
	{
	document.repay.LoanAmt3.value = " "
	}
}

