//*******************************************
//DO NOT REMOVE THIS COPYWRITE INFO!
//Interest Only vs. Principal & Interest Mortgage Calculator
//2007 Daniel C. Peterson ALL RIGHTS RESERVED
//Created: 01/31/2007
//Last Modified: 01/31/2007
//This script may not be copied, edited, distributed or reproduced
//without express written permission from
//Daniel C. Peterson of Web Winder Website Services
//For commercial use rates, contact:
//Dan Peterson:
//Web Winder Website Services
//P.O. Box 11
//Bemidji, MN  56619
//dan@webwinder.com
//http://www.webwinder.com
//Commercial User Licence #:5782-1237-146-1198
//Commercial Licence Date:2008-09-11
//*******************************************



function stripNum(num) {

   num=num.toString();


   var len = num.length;
   var rnum = "";
   var test = "";
   var j = 0;

   var b = num.substring(0,1);
   if(b == "-") {
      rnum = "-";
   }

   for(i = 0; i <= len; i++) {

      b = num.substring(i,i+1);

      if(b == "0" || b == "1" || b == "2" || b == "3" || b == "4" || b == "5" || b == "6" || b == "7" || b == "8" || b == "9" || b == ".") {
         rnum = rnum + "" + b;

      }

   }

   if(rnum == "" || rnum == "-") {
      rnum = 0;
   }

   rnum = Number(rnum);

   return rnum;

}



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.mortgagePayment.principal.value == 0 || document.mortgagePayment.principal.value == "") {
   alert("Please enter the mortgage's principal amount.");
   document.mortgagePayment.principal.focus();
} else
if(document.mortgagePayment.intRate.value == 0 || document.mortgagePayment.intRate.value == "" || eval(document.mortgagePayment.intRate.value) > 25) {
   alert("Please enter the mortgage's annual interest rate (maximum of 25%).");
   document.mortgagePayment.intRate.focus();
} else
if(document.mortgagePayment.numYears.value == 0 || document.mortgagePayment.numYears.value == "" || eval(document.mortgagePayment.numYears.value) > 40) {
   alert("Please enter the mortgage's term in number of years (maximum of 40 years).");
   document.mortgagePayment.numYears.focus();
} else {

var v_prin = stripNum(document.mortgagePayment.principal.value);

var v_rate = stripNum(document.mortgagePayment.intRate.value);

var v_years = stripNum(document.mortgagePayment.numYears.value);

var v_ann_tax = stripNum(document.mortgagePayment.annualTax.value);

var v_mo_tax =0;
if(v_ann_tax == 0) {
   v_ann_tax = 0;
   v_mo_tax =0;
} else {
   v_ann_tax = v_ann_tax;
   v_mo_tax = v_ann_tax / 12;
   v_mo_tax *= 100;
   v_mo_tax = Math.round(v_mo_tax);
   v_mo_tax /= 100;
}

var v_ann_ins = stripNum(document.mortgagePayment.annualIns.value);
var v_mo_ins =0;
if(v_ann_ins == 0) {
   v_ann_ins = 0;
   v_mo_ins =0;
} else {
   v_ann_ins = v_ann_ins;
   v_mo_ins = v_ann_ins / 12;
   v_mo_ins *= 100;
   v_mo_ins = Math.round(v_mo_ins);
   v_mo_ins /= 100;
}

var v_mo_PMI = stripNum(document.mortgagePayment.monthlyPMI.value);
var v_mo_assoc = stripNum(document.mortgagePayment.monthlyAssoc.value);

var v_other_pmts = eval(v_mo_tax) + eval(v_mo_ins) + eval(v_mo_PMI) + eval(v_mo_assoc);

var v_npr = v_years * 12;


var v_pi_pmt = computeMonthlyPayment(v_prin, v_npr, v_rate);

var v_tot_pi_pmt = eval(v_pi_pmt) + eval(v_other_pmts);


document.mortgagePayment.monthlyPI.value = "$" + formatNumberDec(v_pi_pmt,2,1);
document.mortgagePayment.otherPmtsPI.value = "$" + formatNumberDec(v_other_pmts,2,1);
document.mortgagePayment.monthlyPmtPI.value = "$" + formatNumberDec(v_tot_pi_pmt,2,1);

var io_rate_perc = v_rate;
if(io_rate_perc >= 1) {
   io_rate_perc /= 100;
}
io_rate_perc /= 12;
var v_io_pmt = v_prin * io_rate_perc;
var v_tot_io_pmt = eval(v_io_pmt) + eval(v_other_pmts);


document.mortgagePayment.monthlyIO.value = "$" + formatNumberDec(v_io_pmt,2,1);
document.mortgagePayment.otherPmtsIO.value = "$" + formatNumberDec(v_other_pmts,2,1);
document.mortgagePayment.monthlyPmtIO.value = "$" + formatNumberDec(v_tot_io_pmt,2,1);

   }

}


function clearResults(form) {

document.mortgagePayment.monthlyPI.value = "";
document.mortgagePayment.otherPmtsPI.value = "";
document.mortgagePayment.monthlyPmtPI.value = "";

document.mortgagePayment.monthlyIO.value = "";
document.mortgagePayment.otherPmtsIO.value = "";
document.mortgagePayment.monthlyPmtIO.value = "";


}


function createReport(form) {

var alert_txt = "";

if(document.mortgagePayment.monthlyPI.value == 0 || document.mortgagePayment.monthlyPI.value == "") {
   alert_txt = "Please enter compute the top section of the calculator ";
   alert_txt += "before attempting to create the printer friendly report.";
   alert(alert_txt);
   document.mortgagePayment.principal.focus();
} else {

var v_prin = stripNum(document.mortgagePayment.principal.value);
var v_rate = stripNum(document.mortgagePayment.intRate.value);
if(v_rate < 1) {
   v_rate *= 100;
}
var v_years = stripNum(document.mortgagePayment.numYears.value);

var v_ann_tax = stripNum(document.mortgagePayment.annualTax.value);

var v_mo_tax =0;
if(v_ann_tax == 0) {
   v_ann_tax = 0;
   v_mo_tax =0;
} else {
   v_ann_tax = v_ann_tax;
   v_mo_tax = v_ann_tax / 12;
   v_mo_tax *= 100;
   v_mo_tax = Math.round(v_mo_tax);
   v_mo_tax /= 100;
}

var v_ann_ins = stripNum(document.mortgagePayment.annualIns.value);
var v_mo_ins =0;
if(v_ann_ins == 0) {
   v_ann_ins = 0;
   v_mo_ins =0;
} else {
   v_ann_ins = v_ann_ins;
   v_mo_ins = v_ann_ins / 12;
   v_mo_ins *= 100;
   v_mo_ins = Math.round(v_mo_ins);
   v_mo_ins /= 100;
}

var v_mo_PMI = stripNum(document.mortgagePayment.monthlyPMI.value);
var v_mo_assoc = stripNum(document.mortgagePayment.monthlyAssoc.value);


var rows = "";

var head = "<head><title>Interest-Only Vs. Principal Interest Mortgage ";
head += "Payment Comparison</title></head><body bgcolor= '#FFFFFF'><br>";
head += "<br><center><font face='arial'><strong>Interest-Only Vs. ";
head += "Principal-Interest<br>Mortgage Payment Comparison</strong></font></center><br>";

var titles = "<center><table border=1 cellpadding=2 cellspacing=0><tr>";
titles += "<td colspan=3><font face='arial'><small><b>Principal: ";
titles += "$" + formatNumberDec(v_prin,2,1) + "<br>Interest ";
titles += "Rate: " + formatNumberDec(v_rate,3,0) + "%<br>";
titles += "Term: " + v_years + " years</b></small></font></td></tr>";
titles += "<tr bgcolor='silver'><td align='center'><font face='arial'><small>";
titles += "<b>Descriptions</b></small></font></td><td align='center'>";
titles += "<font face='arial'><small><b>Interest<br>Only</b></small></font>";
titles += "</td><td align='center'><font face='arial'><small><b>Principal";
titles += "<br>& Interest</b></small></font></td></tr>";

rows += "<tr><td align=left><font face='arial'><small>Mortgage payment</small></font></td>";
rows += "<td align=right><font face='arial'>";
rows += "<small>" + document.mortgagePayment.monthlyIO.value + "</small></font></td>";
rows += "<td align=right><font face='arial'>";
rows += "<small>" + document.mortgagePayment.monthlyPI.value + "</small>";
rows += "</font></td></tr>";

rows += "<tr><td align=left><font face='arial'><small>Monthly property taxes</small>";
rows += "</font></td><td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_tax,2,1) + "</small></font></td>";
rows += "<td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_tax,2,1) + "</small></font></td></tr>";

rows += "<tr><td align=left><font face='arial'><small>Monthly insurance</small>";
rows += "</font></td><td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_ins,2,1) + "</small></font></td>";
rows += "<td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_ins,2,1) + "</small></font></td></tr>";

rows += "<tr><td align=left><font face='arial'><small>Monthly PMI ";
rows += "(Private Mortgage Insurance)</small></font></td><td align=right>";
rows += "<font face='arial'><small>$" + formatNumberDec(v_mo_PMI,2,1) + "</small>";
rows += "</font></td><td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_PMI,2,1) + "</small></font></td></tr>";

rows += "<tr><td align=left><font face='arial'><small>Monthly association dues</small>";
rows += "</font></td><td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_assoc,2,1) + "</small></font></td>";
rows += "<td align=right><font face='arial'>";
rows += "<small>$" + formatNumberDec(v_mo_assoc,2,1) + "</small></font></td></tr>";

rows += "<tr><td align=left><font face='arial'><small>Total monthly payments</small>";
rows += "</font></td><td align=right><font face='arial'>";
rows += "<small>" + document.mortgagePayment.monthlyPmtIO.value + "</small></font></td>";
rows += "<td align=right><font face='arial'>";
rows += "<small>" + document.mortgagePayment.monthlyPmtPI.value + "</small></font></td></tr>";

var foot = "</table><br><center><form method='post'>";
foot += "<input type='button' value='Print Report' onClick='window.print()'><br>";
foot += "<br><input type='button' value='Close Window' onClick='window.close()'>";
foot += "</form></center></body></html>";

var schedule = (head + "" + titles + "" + rows + "" + foot);


  reportWin = window.open("","","width=500,height=500,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes");
  reportWin.document.write(schedule);
  reportWin.document.close();
}
}
