<!--
//-------------------------------------------
// Generic functions
//-------------------------------------------

//-------------------------------------------
// Make an Array Object
// Javascript "Array" object not used for Netscape 2 compatibility
function fnMakeArray (nElements) {
this.length = nElements;
}

//-------------------------------------------
// Convert String to Integer
function fnStrToInt (sString) {
var sInt = "";
for (i=0; i<=sString.length; i++)
  { 
  if (sString.charAt(i) == ".") break;
  var cChar = sString.charAt(i);
  if ("-0123456789".indexOf(cChar) != -1) sInt += cChar;
  }
if (sInt == "")
  return(0)
else
  return (parseInt(sInt, 10));
}
//-------------------------------------------
// Convert Integer to dollars 
function fnIntToDollars (nInt) {
var neg_switch = 0;
if (nInt < 0)
  {
  nInt = 0 - nInt;
  neg_switch = 1;
  }
var sString="" + nInt;
var sDollars="";
var i=0; var j = 0;
for (i=sString.length - 1; i>=0; --i)
  {
  sDollars = sString.charAt(i) + sDollars; j++;
  if ((j % 3 == 0) && (i > 0))
  sDollars = "," + sDollars;
  }
sDollars = "$" + sDollars;
if (neg_switch == 1)
  {
  sDollars = "-" + sDollars;
  }
return sDollars;
}


//-------------------------------------------
// Page Specific functions
//-------------------------------------------

function fnPayment(Rate, Months) {

var a           // Monthly repayment rate
  = Rate / 100. / 12.;
var b = 1. + a;
    b = Math.pow(b, Months) - 1.;
var c = a / b + a;        // Monthly repayment factor

return c;
}

function fnRpySub(form) {

// Calculate Subsidized Loan Values

//-------> have to validate these entries <--------------------

if (form.Rpy_Sub_Amt_Borr.value <= 0)
  {
  return;
  }

if (form.Rpy_Sub_Term_Years.value <= 0)
  {
  return;
  }

if (form.Rpy_Sub_Rate.value <= 0)
  {
  return;
  }

var Rpy_Sub_Amt_Borr
  = fnStrToInt(form.Rpy_Sub_Amt_Borr.value);
var Rpy_Sub_Term_Years
  = fnStrToInt(form.Rpy_Sub_Term_Years.value);
var Rpy_Sub_Term_Months
  = Rpy_Sub_Term_Years
  * 12;
var Rpy_Sub_Rate
  = parseFloat(form.Rpy_Sub_Rate.value);

//  Calculate repayment factor

var c = fnPayment(Rpy_Sub_Rate, Rpy_Sub_Term_Months);

// Calculate Monthly Repayment

var Rpy_Sub_Pmt
  = Math.round(
    Rpy_Sub_Amt_Borr
  * c);

form.Rpy_Sub_Pmt.value
  = fnIntToDollars(Rpy_Sub_Pmt);

var Rpy_Sub_Pmt_Cum
  = Math.round(
    Rpy_Sub_Amt_Borr
  * c
  * Rpy_Sub_Term_Months);

form.Rpy_Sub_Pmt_Cum.value
  = fnIntToDollars(Rpy_Sub_Pmt_Cum);

var Rpy_Sub_Int_Cum
  = Rpy_Sub_Pmt_Cum
  - Rpy_Sub_Amt_Borr;

form.Rpy_Sub_Int_Cum.value
  = fnIntToDollars(Rpy_Sub_Int_Cum);

// "Consolidation" Calculations

// Calculate using 10 year loan term

    Rpy_Sub_Term_Months = 120;
    c = fnPayment(Rpy_Sub_Rate, Rpy_Sub_Term_Months);

var Rpy_Sub_Pmt = Math.round(Rpy_Sub_Amt_Borr * c);
    form.Rpy_Sub_Pmt_10.value = fnIntToDollars(Rpy_Sub_Pmt);

var Rpy_Sub_Pmt_Cum = Math.round(Rpy_Sub_Amt_Borr * c * Rpy_Sub_Term_Months);
    form.Rpy_Sub_Pmt_Cum_10.value = fnIntToDollars(Rpy_Sub_Pmt_Cum);

var Rpy_Sub_Int_Cum = Rpy_Sub_Pmt_Cum - Rpy_Sub_Amt_Borr;
    form.Rpy_Sub_Int_Cum_10.value = fnIntToDollars(Rpy_Sub_Int_Cum);

// Calculate using 20 year loan term

    Rpy_Sub_Term_Months = 240;
    c = fnPayment(Rpy_Sub_Rate, Rpy_Sub_Term_Months);

var Rpy_Sub_Pmt = Math.round(Rpy_Sub_Amt_Borr * c);
    form.Rpy_Sub_Pmt_20.value = fnIntToDollars(Rpy_Sub_Pmt);

var Rpy_Sub_Pmt_Cum = Math.round(Rpy_Sub_Amt_Borr * c * Rpy_Sub_Term_Months);
    form.Rpy_Sub_Pmt_Cum_20.value = fnIntToDollars(Rpy_Sub_Pmt_Cum);

var Rpy_Sub_Int_Cum = Rpy_Sub_Pmt_Cum - Rpy_Sub_Amt_Borr;
    form.Rpy_Sub_Int_Cum_20.value = fnIntToDollars(Rpy_Sub_Int_Cum);

// Calculate using 30 year loan term

    Rpy_Sub_Term_Months = 360;
    c = fnPayment(Rpy_Sub_Rate, Rpy_Sub_Term_Months);

var Rpy_Sub_Pmt = Math.round(Rpy_Sub_Amt_Borr * c);
    form.Rpy_Sub_Pmt_30.value = fnIntToDollars(Rpy_Sub_Pmt);

var Rpy_Sub_Pmt_Cum = Math.round(Rpy_Sub_Amt_Borr * c * Rpy_Sub_Term_Months);
    form.Rpy_Sub_Pmt_Cum_30.value = fnIntToDollars(Rpy_Sub_Pmt_Cum);

var Rpy_Sub_Int_Cum = Rpy_Sub_Pmt_Cum - Rpy_Sub_Amt_Borr;
    form.Rpy_Sub_Int_Cum_30.value = fnIntToDollars(Rpy_Sub_Int_Cum);

// Incentives/Options Calculations

var Rpy_Sub_Term_Months  // Have to reset since modified above
  = Rpy_Sub_Term_Years
  * 12;

// Incentive Calcs Removed (by setting to default of none) - 5/27/00
// Restored 1/11/05
var Rpy_Sub_Opt_DD
//    = form.Rpy_Sub_Opt_DD.options[form.Rpy_Sub_Opt_DD.selectedIndex].value;
    = "N";
var Rpy_Sub_Opt_OT
//    = form.Rpy_Sub_Opt_OT.options[form.Rpy_Sub_Opt_OT.selectedIndex].value;
    = "N";
var Rpy_Sub_Opt_GR
  = form.Rpy_Sub_Opt_GR.options[form.Rpy_Sub_Opt_GR.selectedIndex].value;

if ((Rpy_Sub_Opt_DD == "N") &&
    (Rpy_Sub_Opt_OT == "N") &&
    (Rpy_Sub_Opt_GR == " "))
    {
    form.Rpy_Sub_Pmt_1.value = "";
    form.Rpy_Sub_Pmt_2.value = "";
    form.Rpy_Sub_Pmt_3.value = "";
    form.Rpy_Sub_Pmt_4.value = "";
    form.Rpy_Sub_Pmt_5.value = "";
    form.Rpy_Sub_Pmt_6.value = "";
    form.Rpy_Sub_Pmt_Cum_Opt.value = "";
    form.Rpy_Sub_Int_Cum_Opt.value = "";
    return;
    }

var Rpy_Sub_Pmt_n = new fnMakeArray(40);
for (year_index = 0; year_index < 40; year_index++)
  {
  Rpy_Sub_Pmt_n[year_index] = 0;
  }

var inc_principal = Rpy_Sub_Amt_Borr;
var inc_payment = 0;
var cum_payment = 0;
var edm_inc_int_rate = Rpy_Sub_Rate;
var edm_inc_loan_months = Rpy_Sub_Term_Months;

if (Rpy_Sub_Opt_DD == "Y") // Direct Deposit Option
  {
  edm_inc_int_rate -= .25;     // Fixed rate reduction of 1/4%
  }

for (edm_rpy_yr_index = 0;
     edm_rpy_yr_index < Rpy_Sub_Term_Years;
     edm_rpy_yr_index++)
  {
  if ((edm_rpy_yr_index == 4) &&
      (Rpy_Sub_Opt_OT == "Y"))
      {
      edm_inc_int_rate -= .5;    // On Time Repayment Rate Reduction
      }

  inc_principal = Math.max(0, inc_principal);
  
  //  Calculate repayment factor
  
var a = edm_inc_int_rate / 100 / 12.;       // repayment rate
    c = fnPayment(edm_inc_int_rate, edm_inc_loan_months);

  inc_payment = inc_principal * c;

  if ((edm_rpy_yr_index < 2) &&
      (Rpy_Sub_Opt_GR != " "))
      {
      inc_payment = inc_principal * a;    // Graduated repay: interest only
      }

  if ((edm_rpy_yr_index == 2) &&
       (Rpy_Sub_Opt_GR == "5"))
      {
      inc_payment = (inc_payment - inc_principal * a) * .5    // Graduated repay: Yr 3
                  +  inc_principal * a;
      }

  if ((edm_rpy_yr_index > 2) &&
      (edm_rpy_yr_index < 5) &&
       (Rpy_Sub_Opt_GR == "5"))
      {
      inc_payment = Rpy_Sub_Pmt_n[edm_rpy_yr_index - 1];    // Graduated repay: Yrs 4, 5
      }

  for (inc_index = 0;
       inc_index < 12;
       inc_index++)
      {
      if (inc_principal > 0)
          {
          inc_principal -= (inc_payment - a * inc_principal);
          cum_payment += inc_payment;
          }
      }
  edm_inc_loan_months -= 12;

  inc_payment = Math.round(inc_payment);
  Rpy_Sub_Pmt_n[edm_rpy_yr_index] = inc_payment;
  }

var Rpy_Sub_Pmt_Cum_Opt
  = Math.round(cum_payment);

var Rpy_Sub_Int_Cum_Opt
  = Rpy_Sub_Pmt_Cum_Opt
  - Rpy_Sub_Amt_Borr;

form.Rpy_Sub_Pmt_1.value
  = fnIntToDollars(Rpy_Sub_Pmt_n[0]);
form.Rpy_Sub_Pmt_2.value
  = fnIntToDollars(Rpy_Sub_Pmt_n[1]);
form.Rpy_Sub_Pmt_3.value
  = fnIntToDollars(Rpy_Sub_Pmt_n[2]);
form.Rpy_Sub_Pmt_4.value
  = fnIntToDollars(Rpy_Sub_Pmt_n[3]);
form.Rpy_Sub_Pmt_5.value
  = fnIntToDollars(Rpy_Sub_Pmt_n[4]);
form.Rpy_Sub_Pmt_6.value
  = fnIntToDollars(Rpy_Sub_Pmt_n[5]);
form.Rpy_Sub_Pmt_Cum_Opt.value
  = fnIntToDollars(Rpy_Sub_Pmt_Cum_Opt);
form.Rpy_Sub_Int_Cum_Opt.value
  = fnIntToDollars(Rpy_Sub_Int_Cum_Opt);
}

function fnRpyUns(form) {

// Calculate Unsubsidized Loan Values

//-------> have to validate these entries <--------------------

if (form.Rpy_Uns_Amt_Borr.value <= 0)
  {
  return;
  }

if (form.Rpy_Uns_Term_Years.value <= 0)
  {
  return;
  }

if (form.Rpy_Uns_Rate.value <= 0)
  {
  return;
  }

var Rpy_Uns_Amt_Borr
  = fnStrToInt(form.Rpy_Uns_Amt_Borr.value);
var Rpy_Uns_Term_Years
  = fnStrToInt(form.Rpy_Uns_Term_Years.value);
var Rpy_Uns_Term_Months
  = Rpy_Uns_Term_Years
  * 12;
var Rpy_Uns_Rate
  = parseFloat(form.Rpy_Uns_Rate.value);
var Rpy_Disb_Month
  = form.Rpy_Disb_Month.options[form.Rpy_Disb_Month.selectedIndex].value;
var Rpy_Disb_Year
  = form.Rpy_Disb_Year.options[form.Rpy_Disb_Year.selectedIndex].value;
var Rpy_Grad_Month
  = form.Rpy_Grad_Month.options[form.Rpy_Grad_Month.selectedIndex].value;
var Rpy_Grad_Year
  = form.Rpy_Grad_Year.options[form.Rpy_Grad_Year.selectedIndex].value;
var Rpy_Grace_Months
  = fnStrToInt(form.Rpy_Grace_Months.value);
  
<!--- check to see if the disbursement date is before or equal to the grad date sqa 8086 rjr 11/13/01--->

	var disbdate = new Date(Rpy_Disb_Year, Rpy_Disb_Month, 1);
	var graddate = new Date(Rpy_Grad_Year, Rpy_Grad_Month, 1);
	
	if (disbdate.getTime() > graddate.getTime()){
		alert ("The disbursement date for the loan must be before your graduation date.");
		return false;
		}
  
<!--- //end changes for sqa 8086 --->
//  Calculate repayment factor

var a = Rpy_Uns_Rate / 100. / 12.;  // Monthly repayment rate
var c = fnPayment(Rpy_Uns_Rate, Rpy_Uns_Term_Months);

// Calculate Accrued Interest at Repayment

var Rpy_Int_Accrual_Months
  = Math.max(0,
    (Rpy_Grad_Year - Rpy_Disb_Year) * 12
  + (Rpy_Grad_Month - Rpy_Disb_Month)
  + Rpy_Grace_Months);
  
var Rpy_Int_Accrual_Amount
  = Rpy_Int_Accrual_Months
  * Rpy_Uns_Amt_Borr
  * a;

// Calculate Monthly Repayment

var Rpy_Uns_Pmt
  = Math.round(
    (Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount)
  * c);

form.Rpy_Uns_Pmt.value
  = fnIntToDollars(Rpy_Uns_Pmt);

var Rpy_Uns_Pmt_Cum
  = Math.round(
    (Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount)
  * c
  * Rpy_Uns_Term_Months);

form.Rpy_Uns_Pmt_Cum.value
  = fnIntToDollars(Rpy_Uns_Pmt_Cum);

var Rpy_Uns_Int_Cum
  = Rpy_Uns_Pmt_Cum
  - Rpy_Uns_Amt_Borr;

form.Rpy_Uns_Int_Cum.value
  = fnIntToDollars(Rpy_Uns_Int_Cum);

// "Consolidation" Calculations

// Calculate using 10 year loan term

    Rpy_Uns_Term_Months = 120;
    c = fnPayment(Rpy_Uns_Rate, Rpy_Uns_Term_Months);

    Rpy_Uns_Pmt = Math.round((Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount) * c);
    form.Rpy_Uns_Pmt_10.value = fnIntToDollars(Rpy_Uns_Pmt);
  
    Rpy_Uns_Pmt_Cum = Math.round((Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount) * c * Rpy_Uns_Term_Months);
    form.Rpy_Uns_Pmt_Cum_10.value = fnIntToDollars(Rpy_Uns_Pmt_Cum);

    Rpy_Uns_Int_Cum = Rpy_Uns_Pmt_Cum - Rpy_Uns_Amt_Borr;
    form.Rpy_Uns_Int_Cum_10.value = fnIntToDollars(Rpy_Uns_Int_Cum);

// Calculate using 20 year loan term

    Rpy_Uns_Term_Months = 240;
    c = fnPayment(Rpy_Uns_Rate, Rpy_Uns_Term_Months);

    Rpy_Uns_Pmt = Math.round((Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount) * c);
    form.Rpy_Uns_Pmt_20.value = fnIntToDollars(Rpy_Uns_Pmt);

    Rpy_Uns_Pmt_Cum = Math.round((Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount) * c * Rpy_Uns_Term_Months);
    form.Rpy_Uns_Pmt_Cum_20.value = fnIntToDollars(Rpy_Uns_Pmt_Cum);

    Rpy_Uns_Int_Cum = Rpy_Uns_Pmt_Cum - Rpy_Uns_Amt_Borr;
    form.Rpy_Uns_Int_Cum_20.value = fnIntToDollars(Rpy_Uns_Int_Cum);

// Calculate using 30 year loan term

    Rpy_Uns_Term_Months = 360;
    c = fnPayment(Rpy_Uns_Rate, Rpy_Uns_Term_Months);

    Rpy_Uns_Pmt = Math.round((Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount) * c);
    form.Rpy_Uns_Pmt_30.value = fnIntToDollars(Rpy_Uns_Pmt);

    Rpy_Uns_Pmt_Cum = Math.round((Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount) * c * Rpy_Uns_Term_Months);
    form.Rpy_Uns_Pmt_Cum_30.value = fnIntToDollars(Rpy_Uns_Pmt_Cum);

    Rpy_Uns_Int_Cum = Rpy_Uns_Pmt_Cum - Rpy_Uns_Amt_Borr;
    form.Rpy_Uns_Int_Cum_30.value = fnIntToDollars(Rpy_Uns_Int_Cum);

// Incentives/Options Calculations

var Rpy_Uns_Term_Months  // Have to reset since modified above
  = Rpy_Uns_Term_Years
  * 12;

// Incentive Calcs Removed (by setting to default of none) - 5/27/00
// Restored - 1/11/05
var Rpy_Uns_Opt_DD
  //= form.Rpy_Uns_Opt_DD.options[form.Rpy_Uns_Opt_DD.selectedIndex].value;
  //= form.Rpy_Sub_Opt_DD.options[form.Rpy_Sub_Opt_DD.selectedIndex].value;
  = "N";
var Rpy_Uns_Opt_OT
  //= form.Rpy_Uns_Opt_OT.options[form.Rpy_Uns_Opt_OT.selectedIndex].value;
  //= form.Rpy_Sub_Opt_OT.options[form.Rpy_Sub_Opt_OT.selectedIndex].value;
  = "N";
var Rpy_Uns_Opt_GR
  //= form.Rpy_Uns_Opt_GR.options[form.Rpy_Uns_Opt_GR.selectedIndex].value;
  // Changes to original form so now only one GR option for both sub/unsub
  = form.Rpy_Sub_Opt_GR.options[form.Rpy_Sub_Opt_GR.selectedIndex].value;

if ((Rpy_Uns_Opt_DD == "N") &&
    (Rpy_Uns_Opt_OT == "N") &&
    (Rpy_Uns_Opt_GR == " "))
    {
    form.Rpy_Uns_Pmt_1.value = "";
    form.Rpy_Uns_Pmt_2.value = "";
    form.Rpy_Uns_Pmt_3.value = "";
    form.Rpy_Uns_Pmt_4.value = "";
    form.Rpy_Uns_Pmt_5.value = "";
    form.Rpy_Uns_Pmt_6.value = "";
    form.Rpy_Uns_Pmt_Cum_Opt.value = "";
    form.Rpy_Uns_Int_Cum_Opt.value = "";
    return;
    }

var Rpy_Uns_Pmt_n = new fnMakeArray(40);
for (year_index = 0; year_index < 40; year_index++)
  {
  Rpy_Uns_Pmt_n[year_index] = 0;
  }

var inc_principal = Rpy_Uns_Amt_Borr + Rpy_Int_Accrual_Amount;
var inc_payment = 0;
var cum_payment = 0;
var edm_inc_int_rate = Rpy_Uns_Rate;
var edm_inc_loan_months = Rpy_Uns_Term_Months;

if (Rpy_Uns_Opt_DD == "Y") // Direct Deposit Option
  {
  edm_inc_int_rate -= .25;     // Fixed rate reduction of 1/4%
  }

for (edm_rpy_yr_index = 0;
     edm_rpy_yr_index < Rpy_Uns_Term_Years;
     edm_rpy_yr_index++)
  {
  if ((edm_rpy_yr_index == 4) &&
      (Rpy_Uns_Opt_OT == "Y"))
      {
      edm_inc_int_rate -= .5;    // On Time Repayment Rate Reduction
      }

  inc_principal = Math.max(0, inc_principal);
  
  //  Calculate repayment factor

    a = edm_inc_int_rate / 100 / 12.;       // repayment rate
    c = fnPayment(edm_inc_int_rate, edm_inc_loan_months);

  inc_payment = inc_principal * c;

  if ((edm_rpy_yr_index < 2) &&
      (Rpy_Uns_Opt_GR != " "))
      {
      inc_payment = inc_principal * a;    // Graduated repay: interest only
      }

  if ((edm_rpy_yr_index == 2) &&
       (Rpy_Uns_Opt_GR == "5"))
      {
      inc_payment = (inc_payment - inc_principal * a) * .5    // Graduated repay: Yr 3
                  +  inc_principal * a;
      }

  if ((edm_rpy_yr_index > 2) &&
      (edm_rpy_yr_index < 5) &&
       (Rpy_Uns_Opt_GR == "5"))
      {
      inc_payment = Rpy_Uns_Pmt_n[edm_rpy_yr_index - 1];    // Graduated repay: Yrs 4, 5
      }

  for (inc_index = 0;
       inc_index < 12;
       inc_index++)
      {
      if (inc_principal > 0)
          {
          inc_principal -= (inc_payment - a * inc_principal);
          cum_payment += inc_payment;
          }
      }
  edm_inc_loan_months -= 12;

  inc_payment = Math.round(inc_payment);
  Rpy_Uns_Pmt_n[edm_rpy_yr_index] = inc_payment;
  }

var Rpy_Uns_Pmt_Cum_Opt
  = Math.round(cum_payment);

var Rpy_Uns_Int_Cum_Opt
  = Rpy_Uns_Pmt_Cum_Opt
  - Rpy_Uns_Amt_Borr;

form.Rpy_Uns_Pmt_1.value
  = fnIntToDollars(Rpy_Uns_Pmt_n[0]);
form.Rpy_Uns_Pmt_2.value
  = fnIntToDollars(Rpy_Uns_Pmt_n[1]);
form.Rpy_Uns_Pmt_3.value
  = fnIntToDollars(Rpy_Uns_Pmt_n[2]);
form.Rpy_Uns_Pmt_4.value
  = fnIntToDollars(Rpy_Uns_Pmt_n[3]);
form.Rpy_Uns_Pmt_5.value
  = fnIntToDollars(Rpy_Uns_Pmt_n[4]);
form.Rpy_Uns_Pmt_6.value
  = fnIntToDollars(Rpy_Uns_Pmt_n[5]);
form.Rpy_Uns_Pmt_Cum_Opt.value
  = fnIntToDollars(Rpy_Uns_Pmt_Cum_Opt);
form.Rpy_Uns_Int_Cum_Opt.value
  = fnIntToDollars(Rpy_Uns_Int_Cum_Opt);
}


function fnRpyCalc(form) {
 
  fnRpySub(form);  // Calculate Subsidized Loan
  fnRpyUns(form);  // Calculate Unsubsidized Loan

// Combine Subsidized and Unsubsidized Loan Values

var Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_1.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_1.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_1.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_1.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_2.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_2.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_2.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_2.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_3.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_3.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_3.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_3.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_4.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_4.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_4.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_4.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_5.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_5.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_5.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_5.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_6.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_6.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_6.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_6.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_Cum_Opt.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_Cum_Opt.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_Cum_Opt.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_Cum_Opt.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Int_Cum_Opt.value)
  + fnStrToInt(form.Rpy_Uns_Int_Cum_Opt.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Int_Cum_Opt.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Int_Cum_Opt.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_10.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_10.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_10.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_10.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_20.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_20.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_20.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_20.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_30.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_30.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_30.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_30.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_Cum_10.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_Cum_10.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_Cum_10.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_Cum_10.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_Cum_20.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_Cum_20.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_Cum_20.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_Cum_20.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Pmt_Cum_30.value)
  + fnStrToInt(form.Rpy_Uns_Pmt_Cum_30.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Pmt_Cum_30.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Pmt_Cum_30.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Int_Cum_10.value)
  + fnStrToInt(form.Rpy_Uns_Int_Cum_10.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Int_Cum_10.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Int_Cum_10.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Int_Cum_20.value)
  + fnStrToInt(form.Rpy_Uns_Int_Cum_20.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Int_Cum_20.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Int_Cum_20.value = "";
  }

Rpy_Tot_Amt
  = fnStrToInt(form.Rpy_Sub_Int_Cum_30.value)
  + fnStrToInt(form.Rpy_Uns_Int_Cum_30.value);
if (Rpy_Tot_Amt > 0)
  {
  form.Rpy_Tot_Int_Cum_30.value
    = fnIntToDollars(Rpy_Tot_Amt);
  }
else
  {
  form.Rpy_Tot_Int_Cum_30.value = "";
  }
}

function fnRpyClear(form) {

  // The following is required to clear all hidden input fields
  
  form.Rpy_Sub_Pmt_10.value = "";
  form.Rpy_Uns_Pmt_10.value = "";
  form.Rpy_Sub_Pmt_20.value = "";
  form.Rpy_Uns_Pmt_20.value = "";
  form.Rpy_Sub_Pmt_30.value = "";
  form.Rpy_Uns_Pmt_30.value = "";

  form.Rpy_Sub_Pmt_Cum_10.value = "";
  form.Rpy_Uns_Pmt_Cum_10.value = "";
  form.Rpy_Sub_Pmt_Cum_20.value = "";
  form.Rpy_Uns_Pmt_Cum_20.value = "";
  form.Rpy_Sub_Pmt_Cum_30.value = "";
  form.Rpy_Uns_Pmt_Cum_30.value = "";
  
  form.Rpy_Sub_Int_Cum_10.value = "";
  form.Rpy_Uns_Int_Cum_10.value = "";
  form.Rpy_Sub_Int_Cum_20.value = "";
  form.Rpy_Uns_Int_Cum_20.value = "";
  form.Rpy_Sub_Int_Cum_30.value = "";
  form.Rpy_Uns_Int_Cum_30.value = "";

}


//-->