
<!-- 
var inputStr = "";
var invalidNumber = 0;
var errorNumber = "";
var checkZero = 0;
var numtemp = "";
var prnttemp = "";
var P = 0;
var p = 0;
var I = 0;
var II = 0;
var N = 0;
var n = 0;
var blank = "                         ";
var pfinal = "";

function resetFields(obj) {

		 obj.amortTable[0].checked=1
		  obj.amtLoan.value=""
		 obj.years.value=""
		 obj.intRate.value=""
		 obj.payment.value ="";
}

function loanCalc(form) {


  var Ptemp = form.amtLoan.value;
  var itemp = form.intRate.value;
  var ntemp = form.years.value;

  if (validNumber(Ptemp, "Loan Amount") < 0){
	return;}

if (validNumber(itemp, "Loan Interest") < 0){
	return;}
 
  if (validNumber(ntemp, "Loan Term") < 0){
	return;}
 

  if (invalidNumber == 1) {
    form.payment.value = "";
  }

  else {
    P = parseFloat(Ptemp);
    II = parseFloat(itemp);
    I = II / 100 / 12;
    N = parseFloat(ntemp);
    n = N * 12;

    if (n == 0) {
      standardOutput(P);
      form.payment.value = numtemp;
    }
    else {
      if (I == 0) {
        p = P/n;
        standardOutput(p);
        form.payment.value = numtemp;
      }
      else {
        p = -((-P * I * Math.pow((1 + I),n)) / (Math.pow((1 + I),n) - 1));
        standardOutput(p);
        pfinal = numtemp;
        form.payment.value = pfinal;
        if (form.amortTable[1].checked) {
          makeTable();
        }
      }
    }
  }
}



function makeTable() {
  standardOutput(P);
  var PP = numtemp;
  inputStr = document.calc.year1.value;
  var year = parseFloat(inputStr);
  var month = document.calc.month1.selectedIndex;
  var firstMonth = month;
  var curMonth = "";
  var prntMonth = "";
  var balance = P;
  var prntBal = ""
  var prinPaid = 0;
  var prntPrin = ""
  var intPaid = 0;
  var prntInt = "";
  var accumInt = 0;



  var dataWindow = window.open("","dataWindow","menubar,scrollbars,resizable,width=600,height=500");
  if (dataWindow != null) {


    var data = "";
    data += '<HTML><HEAD><TITLE>Amortization Schedule</TITLE>';
	data += '<LINK href="inc/main.css" type=text/css rel=stylesheet></HEAD>';
    data += '<BODY class="mainbody" background="pic/bg.jpg" leftmargin="0" topmargin="3" marginwidth="0" marginheight="3" onLoad="javascript:window.focus();">';
    data += '<center><FONT COLOR="#FFFF00">Please Wait</FONT> <FONT COLOR="#FFFFFF">';
    data += '- slower CPU\'s may take a minute to build the table.</FONT><p></center>';
	data += '<TABLE BORDER=0 cellspacing=1 border=1 width="90%" bgcolor=#CCCCCC align=center>';
	data += '<TR bgcolor="#FFCC66"><TD ALIGN=center colspan=4><B>Loan Amortization ';
    data += 'Schedule<BR>'+'RM ' + PP + ' at ' + II + '% ';
    data += 'for ' + N + ' years<BR>Monthly Payment (RM)  '  + pfinal + '</B>';
    data += '</td></tr>';
    dataWindow.document.write(data);

    data = "";
    data += '<TR bgcolor=#EBEBEB><TH>';
    data += '<FONT COLOR="#663300">Month</FONT></TH><TH>';
    data += '<FONT COLOR="#006633">Principal Paid</FONT></TH>';
    data += '<TH><FONT COLOR="#003399">Interest Paid';
    data += '</FONT></TH><TH><FONT COLOR="#CC0033">';
    data += 'Balance Remaining</FONT></TH></TR><TR><th bgcolor=#66CCFF>';
    data += '<br>' + year + '</th>';
    data += '<td colspan=3>&nbsp;</td></TR>';

    for (i = 0; i < n; i++) {
      curMonth = document.calc.month1.options[month].text;
      prntMonth = curMonth + blank;
      prntMonth = prntMonth.substring(0,12);

      intPaid = balance * I;
      prntValue(intPaid,22);
      prntInt = prnttemp;

      accumInt += intPaid;

      prinPaid = p - intPaid;
      prntValue(prinPaid,22);
      prntPrin = prnttemp;

      balance -= prinPaid;
      prntValue(balance,23);
      prntBal = prnttemp;

      data += '<TR bgcolor=#FFFFFF><TH><FONT COLOR="#663300">';
      data += prntMonth + '</FONT></TH><TH>';
      data += '<FONT COLOR="#006633">' + prntPrin;
      data += '</FONT></TH><TH><FONT COLOR="#003399">';

      data += prntInt + '</FONT></TH>';
      data += '<TH><FONT COLOR="#CC0033">';
      data += prntBal + '</FONT></TH></TR>';

      if (month != 11) {
        month++;
      }
      else {
        month = 0;
        year++;
        if ((firstMonth != 0) || (i != n-1)) {
          data += '<TR><TH bgcolor=#66CCFF><IMG ';
          data += 'SRC="pic/spacer.gif" ';
          data += 'WIDTH="10" HEIGHT="10" BORDER=0><BR>'
          data += year + '</TH><TD colspan=3>&nbsp;</TD></TR>';
        }
      }
    }
  }

  standardOutput(accumInt);
  prntAccumInt = numtemp;
  standardOutput(P+accumInt);
  var Total = numtemp;

  data += '<TR bgcolor="#FFCC66"><TH>';
  data += 'Totals</TH>';
  data += '<TH>Loan:<BR>' + PP;
  data += '</TH><TH>';
  data += 'Interest:<BR>' + prntAccumInt + '</TH><TH>';
  data += 'Loan + Interest:<BR>' + Total;
  data += '</TH></TR><FORM><tr bgcolor="#EBEBEB"><th colspan=4><br><INPUT ';
  data += 'NAME="CloseWindow" TYPE="button" VALUE="Close Window" class="button" ';
  data += 'onClick="self.close()"><br>&nbsp;</th></tr></FORM></TABLE></BODY></HTML>';



  dataWindow.document.write(data);
  dataWindow.document.close() ;
}


function prntValue(value,len) {
  standardOutput(value);
  prnttemp = numtemp + blank;
  prnttemp = prnttemp.substring(0,len);
}


function standardOutput(num) {
  num = Math.round(num * 100) / 100;
  num += "";
  cpl = num.indexOf(".");
  if (cpl == -1) {
    cpl = num.length;
    numtemp = ".00";
  }
  else {
    numtemp = num.substring(cpl,num.length) + "00";
    numtemp = numtemp.substring(0,3);
  }
  while (cpl > 3) {
  numtemp = "," + num.substring(cpl-3,cpl) + numtemp;
    cpl -= 3;
  }
  numtemp =  num.substring(0,cpl) + numtemp
}

function validNumber(str, fieldnm) {
	var oneChar = "";
	var rtnval = 0;
	var msg = ""
	var dupchar = 0;
    
	if ( str.length <= 0 ) {
		msg = "Please enter value for field " + fieldnm;
		alert(msg)
		rtnval = -1;
		return(rtnval);
	} 
		
	for (var i = 0; i < str.length; i++) {
		oneChar = str.charAt(i);

		// check for valid digit 0 to 9 only. If not, alert user of error
		if ((oneChar < "0" || oneChar > "9") && (oneChar != ".")) {
		      msg = "An invalid number was entered.\nPlease reenter " + fieldnm;
		      alert(msg);
			rtnval = -1;
		      break;
		}
		// check for duplicate "."
		if (oneChar == ".") {
			dupchar = dupchar + 1;
			if (dupchar > 1) {
				msg = "Too many decimal point for " + fieldnm + " field";
				alert(msg);
				rtnval = -1;
		      	break;
			}
		}
	} // end of for loop
	return(rtnval); 
} //-->