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 computeMonthlyPayment(prin, numPmts, intRate) {
var pmtAmt = 0;
if(intRate == 0) {
pmtAmt = prin / numPmts;
} else {
if (intRate >= 1.0) {
intRate = intRate / 100.0;
}
intRate /= 12;
var pow = 1;
for (var j = 0; j < numPmts; j++)
pow = pow * (1 + intRate);
pmtAmt = (prin * pow * intRate) / (pow - 1);
}
return pmtAmt;
}
function formatNumberDec(num, places, comma) {
var isNeg=0;
if(num < 0) {
num=num*-1;
isNeg=1;
}
var myDecFact = 1;
var myPlaces = 0;
var myZeros = "";
while(myPlaces < places) {
myDecFact = myDecFact * 10;
myPlaces = eval(myPlaces) + eval(1);
myZeros = myZeros + "0";
}
onum=Math.round(num*myDecFact)/myDecFact;
integer=Math.floor(onum);
if (Math.ceil(onum) == integer) {
decimal=myZeros;
} else{
decimal=Math.round((onum-integer)* myDecFact)
}
decimal=decimal.toString();
if (decimal.length<places) {
fillZeroes = places - decimal.length;
for (z=0;z<fillZeroes;z++) {
decimal="0"+decimal;
}
}
if(places > 0) {
decimal = "." + decimal;
}
if(comma == 1) {
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;
} else {
finNum=integer+""+decimal;
}
if(isNeg == 1) {
finNum = "-" + finNum;
}
return finNum;
}
function computeForm(form) {
if(document.taxSaveForm.prop_value.value == 0 || document.taxSaveForm.prop_value.value == "") {
alert("Please enter the value of the property (purchase price).");
document.taxSaveForm.prop_value.focus();
} else
if(document.taxSaveForm.principal.value == 0 || document.taxSaveForm.principal.value == "") {
alert("Please enter the mortgage's principal amount.");
document.taxSaveForm.principal.focus();
} else
if(document.taxSaveForm.rate.value == 0 || document.taxSaveForm.rate.value == "") {
alert("Please enter the mortgage's annual interest rate.");
document.taxSaveForm.rate.focus();
} else
if(document.taxSaveForm.term.value == 0 || document.taxSaveForm.term.value == "") {
alert("Please enter the mortgage's term in number of years.");
document.taxSaveForm.term.focus();
} else
if(document.taxSaveForm.tax_rate.value == 0 || document.taxSaveForm.tax_rate.value == "") {
alert("Please enter the your state and federal tax rate.");
document.taxSaveForm.tax_rate.focus();
} else
if(document.taxSaveForm.save_years.value == 0 || document.taxSaveForm.save_years.value == "") {
alert("Please enter the number of years you wish to calculate the tax savings for (must be less than or equal to the loan term).");
document.taxSaveForm.save_years.focus();
} else {
var Vprop_value = stripNum(document.taxSaveForm.prop_value.value);
var Vprincipal = stripNum(document.taxSaveForm.principal.value);
var Vrate = stripNum(document.taxSaveForm.rate.value);
var Vterm = stripNum(document.taxSaveForm.term.value);
var Vpoints = stripNum(document.taxSaveForm.points.value);
var Vclose_costs = stripNum(document.taxSaveForm.close_costs.value);
var Vprop_tax_rate = stripNum(document.taxSaveForm.prop_tax_rate.value);
var Vtax_rate = stripNum(document.taxSaveForm.tax_rate.value);
var Vsave_years = stripNum(document.taxSaveForm.save_years.value);
var months = Vterm * 12;
var Vmonthly_pmt = computeMonthlyPayment(Vprincipal, months, Vrate);
document.taxSaveForm.monthly_pmt.value = "$" + formatNumberDec(Vmonthly_pmt,2,1);
var prop_tax_perc = 0;
if(Vprop_tax_rate >= 1) {
prop_tax_perc = Vprop_tax_rate / 100;
}
var Vann_prop_tax = Vprop_value * prop_tax_perc;
document.taxSaveForm.ann_prop_tax.value = "$" + formatNumberDec(Vann_prop_tax,2,1);
var prin = Vprincipal;
var i = Vrate;
if(i >= 1) {
i /=100;
}
i /= 12;
var int_port = 0;
var accum_int = 0;
var prin_port = 0;
var save_months = 0;
if(Vsave_years > Vterm) {
save_months = months;
} else {
save_months = Vsave_years * 12;
}
var cnt = 0;
while(cnt < save_months) {
cnt += 1;
int_port = prin * i;
accum_int += int_port;
prin_port = eval(Vmonthly_pmt) - eval(int_port);
prin = eval(prin) - eval(prin_port);
}
var points_perc = Vpoints;
if(points_perc >= 1) {
points_perc /= 100;
}
var points_amt = points_perc * Vprincipal;
var tax_perc = Vtax_rate;
if(tax_perc >= 1) {
tax_perc /= 100;
}
var total_deduct = eval(accum_int) + eval(points_amt) + eval(Vsave_years * Vann_prop_tax);
var Vtax_savings = total_deduct * tax_perc;
document.taxSaveForm.tax_savings.value = "$" + formatNumberDec(Vtax_savings,2,1);
}
}
function clearResults(form) {
document.taxSaveForm.monthly_pmt.value = "";
document.taxSaveForm.ann_prop_tax.value = "";
document.taxSaveForm.tax_savings.value = "";
}
function saveReport(form) {
if(document.taxSaveForm.monthly_pmt.value.length == 0 || document.taxSaveForm.ann_prop_tax.value.length == 0 || document.taxSaveForm.tax_savings.value.length == 0) {
alert("Please calculate the top portion of the calculator before attempting to create the Annual Savings Report.");
} else {
var Vmonthly_pmt = stripNum(document.taxSaveForm.monthly_pmt.value);
var Vann_prop_tax = stripNum(document.taxSaveForm.ann_prop_tax.value);
var Vprop_value = stripNum(document.taxSaveForm.prop_value.value);
var Vprincipal = stripNum(document.taxSaveForm.principal.value);
var Vrate = stripNum(document.taxSaveForm.rate.value);
var Vterm = stripNum(document.taxSaveForm.term.value);
var Vpoints = stripNum(document.taxSaveForm.points.value);
var Vclose_costs = stripNum(document.taxSaveForm.close_costs.value);
var Vprop_tax_rate = stripNum(document.taxSaveForm.prop_tax_rate.value);
var Vtax_rate = stripNum(document.taxSaveForm.tax_rate.value);
var Vsave_years = stripNum(document.taxSaveForm.save_years.value);
var points_perc = Vpoints;
if(points_perc >= 1) {
points_perc /= 100;
}
var points_amt = points_perc * Vprincipal;
var tax_perc = Vtax_rate;
if(tax_perc >= 1) {
tax_perc /= 100;
}
var months = Vterm * 12;
var prin = Vprincipal;
var i = Vrate;
if(i >= 1) {
i /=100;
}
i /= 12;
var int_port = 0;
var accum_int = 0;
var accum_ann_int = 0;
var prin_port = 0;
var save_months = 0;
if(Vsave_years > Vterm) {
save_months = months;
} else {
save_months = Vsave_years * 12;
}
var cnt = 0;
var yr_cnt = 0;
var accum_pmts = 0;
var ann_pmts = Vmonthly_pmt * 12 + Vann_prop_tax;
var report_rows = "";
var ann_tax_deduct = 0;
var accum_tax_deduct = 0;
var ann_tax_save = 0;
var accum_tax_save = 0;
while(cnt < save_months) {
cnt += 1;
int_port = prin * i;
accum_int += int_port;
accum_ann_int += int_port;
prin_port = eval(Vmonthly_pmt) - eval(int_port);
prin = eval(prin) - eval(prin_port);
if(cnt % 12 == 0) {
yr_cnt += 1;
accum_pmts += ann_pmts;
report_rows += "<tr><td align='center'><small>" + yr_cnt + "</td>";
report_rows += "<td align='center'><small>$" + formatNumberDec(ann_pmts,2,1) + "</td>";
report_rows += "<td align='center'><small>$" + formatNumberDec(accum_ann_int,2,1) + "</td>";
ann_tax_deduct = eval(accum_ann_int) + eval(Vann_prop_tax);
if(yr_cnt == 1) {
ann_tax_deduct += points_amt;
}
ann_tax_save = ann_tax_deduct * tax_perc;
accum_tax_save += ann_tax_save;
report_rows += "<td align='center'><small>$" + formatNumberDec(ann_tax_save,2,1) + "</td></tr>";
accum_ann_int = 0;
ann_tax_save = 0;
}
}
var part1 = ("<head><title>Annual Tax Savings Report</title></head>" + "<body><center><table border=0 cellpadding=2 cellspacing=3><tr><td colspan='4' align='center'><font color='#C42E4B'><b>Annual Tax Savings Report</b></font><hr></td></tr>");
var part2 = ("<tr><td align='center' valign='top'><b>Year</b></td><td align='center' valign='top'><b>Mortgage & Property<br> Tax Payment</b></td><td align='center' valign='top'><b>Interest Paid</b></td><td align='center' valign='top'><b>Tax Savings</b></td></td></tr>");
var part3 = ("" + report_rows + "");
var part4 = ("<tr><td align='center'><small><b>Total:</b></small></td><td align='center'><small><b>$" + formatNumberDec(accum_pmts,2,1) + "</b></small></td><td align='center'><small><b>$" + formatNumberDec(accum_int,2,1) + "</b></small></td><td align=center><small><b>$" + formatNumberDec(accum_tax_save,2,1) + "</b></small></td></tr></table><br><center><form method='post'><input type='button' value='Close Window' onClick='window.close()'></form></center></body></html>");
var schedule = (part1 + "" + part2 + "" + part3 + part4 + "");
reportWin = window.open("","","width=500,height=400,toolbar=yes,menubar=yes,scrollbars=yes");
reportWin.document.write(schedule);
reportWin.document.close();
}
}
