<!--
function check(formname)
{ 
          count=eval("document."+formname+".elements.length");

          for (i=0;i<count;i++)
          {
                   box=eval("document."+formname+".elements[i]");
                             if (!box.value )
                    {
                              alert('You haven\'t filled in ' + box.name + '!');
                              box.focus();
                              return false;
                    }
                    if (box.type!="submit" && !isInteger(box.value))
                    {
                              alert(box.name + ' should be numeric !');
                              box.focus();
                              return false;
                    }
          }
          return true;
}

function isInteger(s){
        var i;
         if(s >= 0)
                return true;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function get_option()
{
          if(document.start.CalculationOption[0].checked==true)
          {
                    document.start.MonthLimit.value=0;
                    document.start.MonthlyPayment.disabled=false;
                    document.start.MonthlyPayment.focus();
                    document.start.MonthLimit.disabled=true;
                    document.start.MonthlyPayment.value='';
          }
          else if(document.start.CalculationOption[1].checked==true)
          {
                    document.start.MonthlyPayment.value=0;
                    document.start.MonthlyPayment.disabled=true;
                    document.start.MonthLimit.disabled=false;
                    document.start.MonthLimit.focus();
                    document.start.MonthLimit.value='';
          }
}

function MonthDisable()
{


          if(document.start.CalculationOption[0].checked==false && document.start.CalculationOption[1].checked==false)
          {
                    document.start.MonthlyPayment.disabled=true;
                    document.start.MonthLimit.disabled=true;
          }
}


//-->
function stripNum(num) {
var iPercent;
var iDollar;
var iSpace;
var iComma;
var numLength = num.length;
//lalalla Line #114
if(numLength > 0) {
num=num.toString();
iPercent = num.indexOf("%");
if(iPercent >= 0) {
num=num.substring(0,iPercent) + "" + num.substring(iPercent + 1,numLength);
numLength=num.length;
}
iDollar = num.indexOf("$");
if(iDollar >= 0) {
num=num.substring(0,iDollar) + "" + num.substring(iDollar + 1,numLength);
numLength=num.length;
}
iSpace = num.indexOf(" ");
if(iSpace >= 0) {
num=num.substring(0,iSpace) + "" + num.substring(iSpace + 1,numLength);
numLength=num.length;
}
iComma = num.indexOf(",");
if(iComma >= 0) {
while(iComma >=1) {
num=num.substring(0,iComma) + "" + num.substring(iComma + 1,numLength);
numLength=num.length;
iComma = num.indexOf(",");
}
}
num = eval(num);
} else {
num = 0;
}
return num;
}
function formatNumber(num) {
var isNeg=0;
if(num < 0) {
num=num*-1;
isNeg=1;
}
onum=Math.round(num*100)/100;
integer=Math.floor(onum);
if (Math.ceil(onum) == integer) {
decimal="00";
} else{
decimal=Math.round((onum-integer)*100)
}
decimal=decimal.toString();
if (decimal.length<2) decimal="0"+decimal;
integer=integer.toString();
var tmpnum="";
var tmpinteger="";
var y=0;
for (x=integer.length;x>0;x--) {
tmpnum=tmpnum+integer.charAt(x-1);
y=y+1;
if (y==3 & x>1) {
tmpnum=tmpnum+",";
y=0;
}
}
for (x=tmpnum.length;x>0;x--) {
tmpinteger=tmpinteger+tmpnum.charAt(x-1);
}
finNum=tmpinteger+"."+decimal;
if(isNeg == 1) {
finNum = "-" + finNum;
}
return finNum;
}
function computeForm(form) {
if(form.principalFirst.value == "") {
alert("Please enter the your first mortgage's current principal balance.");
form.principalFirst.focus();
} else
if(form.paymentFirst.value == "") {
alert("Please enter the amount of your first mortgage payment.");
form.paymentFirst.focus();
} else
if(form.intRateFirst.value == "") {
alert("Please enter your first mortgage's current annual interest rate.");
form.intRateFirst.focus();
} else
if(form.principalSec.value.length > 0 && form.paymentSec.value == "") {
alert("Please enter the amount of your second mortgage payment.");
form.paymentSec.focus();
} else 
if(form.principalSec.value.length > 0 && form.intRateSec.value == "") {
alert("Please enter your second mortgage's current annual interest rate.");
form.intRateSec.focus();
} else
if(form.intRateRefin.value == "") {
alert("Please enter the annual interest rate you'll be refinancing at.");
form.intRateRefin.focus();
} else
if(form.nperRefin.value == "") {
alert("Please enter the number of years you are refinancing for.");
form.nperRefin.focus();
} else
if(form.closingCost.value == "") {
alert("Please enter the closing cost percentage points.");
form.closingCost.focus(); 
} else {
var VprincipalFirst = stripNum(form.principalFirst.value);
var VprincipalSec = stripNum(form.principalSec.value);
var VprinCombo = eval(VprincipalFirst) + eval(VprincipalSec);
var closeCostAmt = 0;
var numMtgs = 1;
if(VprincipalSec > 0) {
numMtgs = 2;
}
if(form.ptsDol.selectedIndex == 0) {
var closeCostPerc = stripNum(form.closingCost.value);
// if(closeCostPerc >= 1) {
closeCostPerc = closeCostPerc / 100;
// } else {
// closeCostPerc = closeCostPerc;
// }
closeCostAmt = closeCostPerc * VprinCombo;
} else {
closeCostAmt = stripNum(form.closingCost.value);
}
//CALCULATE FIRST MORTGAGE
var pmtFirst = stripNum(form.paymentFirst.value);
var prinFirst = stripNum(form.principalFirst.value);
var intPortFirst = 0;
var prinPortFirst = 0;
var accumIntFirst = 0;
var accumPrinFirst = 0;
var iFirst = stripNum(form.intRateFirst.value);
if (iFirst >= 1.0) {
iFirst = iFirst / 100.0;
var sumiFirst = iFirst;
}
var iFirst = iFirst / 12;
var countFirst = 0;
while(prinFirst > 0) {
 intPortFirst = prinFirst * iFirst;
 prinPortFirst = pmtFirst - intPortFirst;
 prinFirst = prinFirst - prinPortFirst;
 accumPrinFirst = accumPrinFirst + prinPortFirst;
 accumIntFirst = accumIntFirst + intPortFirst;
 countFirst = countFirst + 1;
 if(countFirst > 600) {break; } else {continue; }
}
var VorigInt = accumIntFirst;
//CALCULATE SECOND MORTGAGE IF APPLICABLE
var pmtSec = stripNum(form.paymentSec.value);
var prinSec = stripNum(form.principalSec.value);
var intPortSec = 0;
var prinPortSec = 0;
var accumIntSec = 0;
var accumPrinSec = 0;
if(numMtgs == 2) {
var iSec = stripNum(form.intRateSec.value);
if (iSec >= 1.0) {
iSec = iSec / 100.0;
var sumiSec = iSec;
}
var iSec = iSec / 12;
var countSec = 0;
while(prinSec > 0) {
intPortSec = prinSec * iSec;
prinPortSec = pmtSec - intPortSec;
prinSec = prinSec - prinPortSec;
accumPrinSec = accumPrinSec + prinPortSec;
accumIntSec = accumIntSec + intPortSec;
countSec = countSec + 1;
if(countSec > 600) {break; } else {continue; }
}
}
var VorigInt = eval(VorigInt) + eval(accumIntSec);
form.origInt.value = "$" + formatNumber(VorigInt);
//form.origInt.value = "$" + formatNumber(accumIntFirst);
var VpaymentFirst = stripNum(form.paymentFirst.value);
var VpaymentSec = stripNum(form.paymentSec.value);
var VpmtCombo = eval(VpaymentFirst) + eval(VpaymentSec);
//CALCULATE REFINANCING
var iRefin = stripNum(form.intRateRefin.value);
if (iRefin >= 1.0) {
iRefin = iRefin / 100.0;
var sumiRefin = iRefin; 
}
var iRefin = iRefin / 12;
var prinRefin = 0;
if(form.yesNo.selectedIndex == 0) {
 prinRefin = VprinCombo;
} else {
 prinRefin = eval(VprinCombo) + eval(closeCostAmt);
}
var pow = 1;
var VnperRefin = stripNum(form.nperRefin.value);
for (var j = 0; j < VnperRefin *12; j++)
pow = pow * (1 + iRefin);
var pmtRefin = (prinRefin * pow * iRefin) / (pow - 1);
form.paymentRefin.value = "$" + formatNumber(pmtRefin);
var VmoSave = eval(VpmtCombo) - eval(pmtRefin);
if(VmoSave < 0) {
VmoSave = VmoSave * -1;
form.moSave.value = "$" + formatNumber(VmoSave) + "";
} else {
form.moSave.value = "($" + formatNumber(VmoSave) + ")";
}
var VtotIntRefin = (pmtRefin * VnperRefin *12) - prinRefin;
form.totIntRefin.value = "$" + formatNumber(VtotIntRefin);
var VintSave = VorigInt - VtotIntRefin;
if(VintSave <= 0) {
form.intSave.value = "$0.00";
} else {
form.intSave.value = "$" + formatNumber(VintSave);
}
//CALCULATE NUMBER OF MONTHS FOR SAVINGS TO OFFSET CLOSING COSTS
var prinFirst2 = stripNum(form.principalFirst.value);
var prinSec2 = stripNum(form.principalSec.value);
var prinRefin2 = eval(VprincipalFirst) + eval(VprincipalSec);
var intPortFirst2 = 0;
var intPortSec2 = 0;
var intPortRefin = 0;
var prinPortFirst2 = 0;
var prinPortSec2 = 0;
var prinPortRefin2 = 0;
var accumIntFirst2 = 0;
var accumIntSec2 = 0;
var accumIntRefin2 = 0;
var accumPrinFirst2 = 0;
var accumPrinSec2 = 0;
var accumPrinRefin2 = 0;
var amortIntSave = 0;
var count3 = 0;
while(amortIntSave < closeCostAmt) {
intPortFirst2 = prinFirst2 * iFirst;
intPortRefin2 = prinRefin2 * iRefin;
prinPortFirst2 = pmtFirst - intPortFirst2;
prinPortRefin2 = pmtRefin - intPortRefin2;
prinFirst2 = prinFirst2 - prinPortFirst2;
prinRefin2 = prinRefin2 - prinPortRefin2;
accumPrinFirst2 = accumPrinFirst2 + prinPortFirst2;
accumPrinRefin2 = accumPrinRefin2 + prinPortRefin2;
accumIntFirst2 = accumIntFirst2 + intPortFirst2;
accumIntCombo2 = accumIntFirst2 + accumIntSec2;
//IF CONSOLIDATIING 2 MORTGAGES
if(numMtgs == 2) {
intPortSec2 = prinSec2 * iSec;
prinPortSec2 = pmtSec - intPortSec2;
prinSec2 = prinSec2 - prinPortSec2;
accumPrinSec2 = accumPrinSec2 + prinPortSec2;
accumIntSec2 = accumIntSec2 + intPortSec2;
}
accumIntRefin2 = accumIntRefin2 + intPortRefin2;
amortIntSave = accumIntCombo2 - accumIntRefin2;
count3 = count3 + 1;
if(count3 > 600) {break; } else {continue; }
}
if(VintSave <= 0) {
form.closeMo.value = "N/A";
} else {
form.closeMo.value = count3;
}
var fnetSave = eval(VintSave) - eval(closeCostAmt);
var pmtUpDown = "";
if(pmtRefin > VpmtCombo) {
pmtUpDown = "increase by $" + formatNumber(eval(pmtRefin) - eval(VpmtCombo)) + "";
} else {
pmtUpDown = "decrease by $" + formatNumber(eval(VpmtCombo) - eval(pmtRefin)) + "";
}
var intSaveYesNo = "";
if(VorigInt < VtotIntRefin) {
intSaveYesNo = "pay an additional $" + formatNumber(eval(VtotIntRefin) - eval(VorigInt)) + " in interest charges over the life of the mortgage.";
} else {
intSaveYesNo = "save $" + formatNumber(eval(VorigInt) - eval(VtotIntRefin)) + " in interest charges over the life of the mortgage. However, in order for this refinancing to yield any savings at all you will need to stay in your current home for at least " + count3 + " months. That's how long it will take for the monthly interest savings to offset the closing costs attributable to refinancing.";
}
if(fnetSave <= 0) {
form.netSave.value = "$0.00";
} else {
form.netSave.value = "$" +formatNumber(fnetSave);
}
var intOneDisplay = stripNum(form.intRateFirst.value);
var intTwoDisplay = stripNum(form.intRateSec.value);
var intThreeDisplay = stripNum(form.intRateRefin.value);
if(intOneDisplay < 1) {
intOneDisplay = formatNumber(intOneDisplay * 100);
}
if(intTwoDisplay < 1) {
intTwoDisplay = formatNumber(intTwoDisplay * 100);
}
if(intThreeDisplay < 1) {
intThreeDisplay = formatNumber(intThreeDisplay * 100);
}
var secMtgText = "";
if(numMtgs ==2) {
 secMtgText = " and your current " + formatNumber(intTwoDisplay) + "% mortgage";
}
 form.summary.value = "If you refinance your current " + formatNumber(intOneDisplay) + "% mortgage" + secMtgText + " into a single " + formatNumber(intThreeDisplay) + "% mortgage, your monthly payment will " + pmtUpDown + " and you will " + intSaveYesNo + "";
 }
}