function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



//DO NOT REMOVE THIS COPYWRITE INFO!
//Mortgage Refinancing Calculator
//By Daniel C. Peterson
//Web Winder Website Services, 1997-2005  All Rights Reserved.
//Distribution, editing or reselling of this script is strictyly prohibited
//without expressed written permission from Daniel C. Peterson.
//For commercial grade (professional) versions of this and many other
//calculators, visit http://www.webwinder.com.

function computeForm(form) {

    var pmt1 = form.payment.value;

    var prin1 = form.principal.value;

    var intPort1 = 0;

    var prinPort1 = 0;

    var accumInt1 = 0;

    var accumPrin1 = 0;

    var i1 = form.intRate.value;

    if (i1 > 1.0) {

        i1 = i1 / 100.0;

        form.intRate.value = i1;

    }

    var i1  = i1  / 12;

    var i2 = form.intRate2.value;

       if (i2 > 1.0) {

           i2 = i2 / 100.0;

           form.intRate2.value = i2;

       }

       var i2  = i2  / 12;

    var count1 = 0;

    while(prin1 > 0) {

        intPort1 = prin1 * i1;

        prinPort1 = pmt1 - intPort1;

        prin1 = prin1 - prinPort1;

        accumPrin1 = accumPrin1 + prinPort1;

        accumInt1 = accumInt1 + intPort1;

        count1 = count1 + 1;

        if(count1 > 600) {break; } else {continue; }

       }

    form.origInt.value = "$" + parseInt(accumInt1,10);

    var pow = 1;

    for (var j = 0; j < form.nper2.value *12; j++)

        pow = pow * (1 + i2);

    var fpayment2 = (form.principal.value * pow * i2) / (pow - 1);

    form.payment2.value = "$" + parseInt(fpayment2,10) + "." + parseInt(fpayment2 % 1 * 100,10);

   var fmoSave = form.payment.value - fpayment2;

   form.moSave.value = "$" + parseInt(fmoSave,10) + "." + parseInt(fmoSave % 1 *100,10);
		
		var ftotInt2 = (fpayment2 * form.nper2.value *12)
    - form.principal.value;

   form.totInt2.value = "$" + parseInt(ftotInt2,10);

   var fintSave = accumInt1 - ftotInt2;

    form.intSave.value = "$" + parseInt(fintSave,10);

    form.closeMo.value = parseInt(form.closingCost.value / fmoSave,10);

   var fnetSave = fintSave - form.closingCost.value;

   form.netSave.value = "$" + parseInt(fnetSave,10);

    form.summary.value = "If you refinance your current " + parseInt(form.intRate.value *100,10) + "." + parseInt(form.intRate.value *100 % 1 *100,10) + "% mortgage to a " + parseInt(form.intRate2.value *100,10) + "." + parseInt(form.intRate2.value *100 % 1 *100,10) + "% mortgage, your monthly payment will drop by " + form.moSave.value + " and you will save " + form.intSave.value + " 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 " + form.closeMo.value + " months.  That's how long it will take for your monthly payment savings to offset the closing costs attributable to refinancing.";
		
}



function clearForm(form)

{

    form.principal.value = "";
    form.payment.value = "";
    form.intRate.value = "";
    form.intRate2.value = "";
    form.nper2.value = "";
    form.closingCost.value = "";
    form.payment2.value = "";
    form.moSave.value = "";
    form.closeMo.value = "";
    form.intSave.value = "";
    form.origInt.value = "";
    form.netSave.value = "";
    form.totInt2.value = "";
    form.summary.value = "";

}

//DO NOT REMOVE THIS COPYWRITE INFO!
//Bi-Weekly Mortgage Calculator
//By Daniel C. Peterson
//Web Winder Website Services, 1997-2005  All Rights Reserved.
//Distribution, editing or reselling of this script is strictyly prohibited
//without expressed written permission from Daniel C. Peterson.
//For commercial grade (professional) versions of this and many other
//calculators, visit http://www.webwinder.com.

function computeForm2(form) {

    var pmt1 = form.payment.value;

    var pmt2 = form.payment.value / 2;

    var prin1 = form.principal.value;

    var prin2 = form.principal.value;

    var intPort1 = 0;

    var intPort2 = 0;

    var prinPort1 = 0;

    var prinPort2 = 0;

    var accumInt1 = 0;

    var accumPrin1 = 0;

    var accumInt2 = 0;

    var accumPrin2 = 0;

    var i = form.intRate.value;

    if (i > 1.0) {

        i = i / 100.0;

        form.intRate.value = i;

    }

    var i1  = i  / 12;

    var i2 = i / 26;

    var count1 = 0;

    var count2 = 0;

    while(prin1 > 0) {

        intPort1 = prin1 * i1;

        prinPort1 = pmt1 - intPort1;

        prin1 = prin1 - prinPort1;

        accumPrin1 = accumPrin1 + prinPort1;

        accumInt1 = accumInt1 + intPort1;

        count1 = count1 + 1;

     if(count1 > 600) {
        break;
        } else {
        continue;
        }

       }

if(count1 > 600) {
 alert("Using your entered terms you will never pay off this amount.  Please either lower the principal amount, lower the interest rate, or increase the payment amount.;")
        form.origInt.value = "";
        form.biwkInt.value = "";
        form.intSave.value = "";
        form.time.value = "";
        } else {

    form.origInt.value = "$" + parseInt(accumInt1,10);

    while(prin2 > 0) {

        intPort2 = prin2 * i2;

        prinPort2 = pmt2 - intPort2;

        prin2 = prin2 - prinPort2;

        accumPrin2 = accumPrin2 + prinPort2;

        accumInt2 = accumInt2 + intPort2;

        count2 = count2 + 1;

        if(count1 > 600) {break; } else {continue; }

       }
    
    form.biwkInt.value = "$" + parseInt(accumInt2,10);

    form.intSave.value = "$" + parseInt(accumInt1 - accumInt2,10);

    form.time.value = "In essence, what you are really doing is adding a 13th payment to your annual number of payments, and splitting it up between 26 bi-weekly payments. Which in your case means that by coughing up and extra $" + parseInt(pmt1 / 26,10) + " every two weeks you will pay off your mortgage in " + parseInt(count2 /26*12,10) + " months instead of the current " + count1 + " months, and save $" + parseInt(accumInt1 - accumInt2) + " in mortgage interest in the process.  Now I ask you, is there anything else you would rather spend your $" + parseInt(accumInt1 - accumInt2) + " on besides interest?";

   }
		
}



function clearForm2(form)

{

    form.principal.value = "";

    form.payment.value = "";

    form.intRate.value = "";

    form.intSave.value = "";

    form.origInt.value = "";

    form.biwkInt.value = "";

    form.time.value = "";

}
