/* jS Document */

function formatNum(Vnum) {

   if(Vnum > 99000000) {
   alert("Sorry, this will not generate numbers larger that 99 million.");
   focus();
   } else {
   
   var V10million = parseInt(Vnum / 10000000);

   var V1million = (Vnum % 10000000)  / 1000000;
      if(V1million / 1000000 == 1) {
      V1million = 1;
      } else
      if(V1million < 1) {
      V1million = "0";
     } else {
      V1million = parseInt(V1million,10);
     }

    var V100thousand = (Vnum % 1000000)  / 100000;
      if(V100thousand / 100000 == 1) {
      V100thousand = 1;
      } else
      if(V100thousand < 1) {
      V100thousand = "0";
     } else {
      V100thousand = parseInt(V100thousand,10);
     }

   var V10thousand = (Vnum % 100000)  / 10000;
      if(V10thousand / 10000 == 1) {
      V10thousand = 1;
      } else
      if(V10thousand < 1) {
      V10thousand = "0";
      } else {
      V10thousand = parseInt(V10thousand,10);
      }

   var V1thousand = (Vnum % 10000)  / 1000;
      if(V1thousand / 1000 == 1) {
      V1thousand = 1;
      } else
      if(V1thousand < 1) {
      V1thousand = "0";
     } else {
      V1thousand = parseInt(V1thousand,10);
     }

   var Vhundreds = (Vnum % 1000)  / 100;
      if(Vhundreds / 100 == 1) {
      Vhundreds = 1;
      } else
      if(Vhundreds < 1) {
      Vhundreds = "0";
     } else {
      Vhundreds = parseInt(Vhundreds,10);
     }

   var Vtens = (Vnum % 100)  / 10;
      if(Vtens / 10 == 1) {
      Vtens = 1;
      } else
      if(Vtens < 1) {
      Vtens = "0";
     } else {
      Vtens = parseInt(Vtens,10);
     }

   var Vones = (Vnum % 10)  / 1;
      if(Vones / 1 == 1) {
      Vones = 1;
      } else
      if(Vones < 1) {
      Vones = "0";
     } else {
      Vones = parseInt(Vones,10);
     }

  //START UPGRADE
var Vcents = 0;

if(Vnum % 1 * 100 < 1) {
   Vcents = 0;
   } else {
   Vcents = parseInt(((eval(Vnum % 1) * 100)),10);
   }
//END UPGRADE

 if(Vcents < 1) {
  Vcents = "00";
  }
  else
  if(Vcents % 10 == 0) {
  Vcents = Vcents + "0";
  }
  else
  if(Vcents % 10 == Vcents) {
  Vcents = "0" + Vcents;
  } else {
  Vcents = Vcents;
  }

  if(Vcents == "900") {
  Vcents = "90";
  } else
  if(Vcents == "800") {
  Vcents = "80";
  } else 
  if(Vcents == "700") {
  Vcents = "70";
  } else 
  if(Vcents == "600") {
  Vcents = "60";
  } else 
  if(Vcents == "500") {
  Vcents = "50";
  } else 
  if(Vcents == "400") {
  Vcents = "40";
  } else 
  if(Vcents == "300") {
  Vcents = "30";
  } else
  if(Vcents == "200") {
  Vcents = "20";
  } else
  if(Vcents == "100") {
  Vcents = "10";
  } else {
  Vcents = Vcents;
  }

   
   var Vformat = "";

   if(Vnum >= 10000000) {
   Vformat = (V10million + "" + V1million + "," + V100thousand + "" + V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 1000000) {
   Vformat = (V1million + "," + V100thousand + "" + V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 100000) {
   Vformat = (V100thousand + "" + V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 10000) {
   Vformat = (V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 1000) {
   Vformat = (V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 100) {
   Vformat = (Vhundreds + "" + Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 10) {
   Vformat = (Vtens + "" + Vones + "." + Vcents);
   }
   else
   if(Vnum >= 1) {
   Vformat = (Vones + "." + Vcents);
   } else {
   Vformat = ("0." + Vcents);
   }

  return Vformat;

  }
}


function computeForm(form) {

if(form.principal.value == "" || form.principal.value == 0) {
   alert("Please enter the principal balance of your current mortgage.");
   form.principal.focus();
   } else
      if(form.interest.value == "" || form.interest.value == 0) {
      alert("Please enter the interest rate of your current mortgage.");
      form.interest.focus();
} else
      if(form.origPmt.value == "" || form.origPmt.value == 0) {
      alert("Please your current monthly mortgage payment.");
      form.origPmt.focus();
   } else
      if(form.noYears.value == "" || form.noYears.value == 0) {
      alert("Please enter the number of years you would like to pay off your mortgage in.");
      form.noYears.focus();
   } else {

var i = form.interest.value;
    if (i > 1.0) {
        i = i / 100.0;
    }
     i /= 12;
VnoYears = form.noYears.value;
VorigPmt = form.origPmt.value;

var noMonths = VnoYears * 12;
var pow = 1;
    for (var j = 0; j < noMonths; j++)
        pow = pow * (1 + i);

var newPmt = (form.principal.value * pow * i) / (pow - 1);
var VpmtAdd = eval(newPmt) - eval(VorigPmt);
//alert(VpmtAdd);
form.pmtAdd.value = "$" + formatNum(VpmtAdd);

var prin = form.principal.value;
var count = 0;
var prinPort = 0;
var intPort = 0;
var accumInt = 0;
var pmt = form.origPmt.value;

while(eval(prin) > eval(pmt)) {
   intPort = prin * i;
   accumInt = eval(accumInt) + eval(intPort);
   prinPort = eval(pmt) - eval(intPort);
   prin = eval(prin) - eval(prinPort);
   count = eval(count) + eval(1);
   }
var VorigInt = accumInt;
var VnewInt = (eval(newPmt * noMonths)) - eval(form.principal.value);
var VintSave = eval(VorigInt) - eval(VnewInt);

form.intSave.value = "$" + formatNum(VintSave);

if(eval(accumInt) < eval(VnewInt)){
	var Vresults = ("If you would like to pay off your mortgage in " + VnoYears + " years instead of the current " + formatNum(count / 12) + " years. This will increase your current mortgage interest cost from $" + formatNum(accumInt) + " to $" + formatNum(VnewInt) + ", Hence, there is no saving for you.");
}else{
	var Vresults = ("If you would like to pay off your mortgage in " + VnoYears + " years instead of the current " + formatNum(count / 12) + " years, you will need to start making a second monthly mortgage payment in the amount of " + currency(form.pmtAdd.value) + ". This will cut your current mortgage interest cost from $" + formatNum(accumInt) + " down to $" + formatNum(VnewInt) + ", a savings of " + currency(form.intSave.value) + " in interest charges.");
}

form.results.value = Vresults;

  }

}


function clearForm(form)

{
    form.principal.value = "";
    form.interest.value = "";
    form.origPmt.value = "";
    form.noYears.value = "";
    form.pmtAdd.value = "";
    form.intSave.value = "";
    form.results.value = "";
}
 
 function currency(pNum) {
  //-- Returns passed number as string in $xxx,xxx.xx format.
	var tRtnValue = "";
	if (pNum != "") {
		var n = pNum.toString().replace(/\$|\,/g,'');
		if (isNaN(n)) {n = "0";}
		var tSign = (n == (n = Math.abs(n)));
		n = Math.floor(n * 100 + 0.50000000001);
		var tCents = n % 100;
		if (tCents < 10) {tCents = "0" + tCents;}
		n = Math.floor(n / 100).toString();
		for (var i = 0; i < Math.floor((n.length - (1 + i)) / 3); i++) {
			n = n.substring(0, n.length - (4 * i + 3)) + ',' + n.substring(n.length - (4 * i + 3));
		}
		tRtnValue = (((tSign)?'':'-') + '$' + n + '.' + tCents);
	}else{
		tRtnValue = 0;
	}
	return tRtnValue;
}

function valid_number(string) {
var sTmp = "";
var sValid = "0123456789.";

for (var i=0; i< string.length; i++) {
 if (sValid.indexOf(string.charAt(i)) != -1 )  
 	sTmp += string.charAt(i);
	}
return(sTmp)
}


function replaceAll(oldStr,findStr,repStr) {
  var srchNdx = 0;  
  var newStr = ""; 
  while (oldStr.indexOf(findStr,srchNdx) != -1)  							
  {
	newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx));							
	newStr += repStr;
	srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length);           
  }
  newStr += oldStr.substring(srchNdx,oldStr.length);          
  return newStr;
}


function perform(){
var newAmount = replaceAll(document.getElementById('amount').value,',','');
newAmount = replaceAll(newAmount,'$','');
getAmortization(newAmount,document.getElementById('term').value,document.getElementById('apr').value,document.getElementById('year').value,document.getElementById('month').value)
}

function JSRecalc()
{
	form = document.form1
	LoanAmount= form.LoanAmount.value

	DownPayment = "0"
	AnnualInterestRate = form.InterestRate.value/100
   Years=form.NumberOfYears.value
   	MonthRate=AnnualInterestRate/12
	NumPayments=Years*12
	Prin=LoanAmount-DownPayment

	form.NumberOfPayments.value=NumPayments
	form.IOnlyMonthlyPayment.value=Math.floor(Prin*MonthRate*100)/100
	MonthPayment=Math.floor((Prin*MonthRate)/(1-Math.pow((1+MonthRate),(-1*NumPayments)))*100)/100
		form.NumberOfPayments.value=NumPayments
	form.MonthlyPayment.value=(MonthPayment)

}

