<!doctypehtml><!-- Payment Calculator By Fullintro - https://fullintro.com --><html lang=en><meta charset=UTF-8><meta content="width=device-width,initial-scale=1"name=viewport><meta content="ie=edge"http-equiv=X-UA-Compatible><title>Payment Calculator</title><link crossorigin=anonymous href=https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css integrity=sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO rel=stylesheet><style>#loading,#results{display:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background-color:#fff;outline:0;box-shadow:none;border-color:#ced4da}.container{max-width:1150px}.card{background-color:#f0f0f0;border:6px solid #bfbfbf;border-radius:10px;margin-top:0!important}.btn{background-color:#1cab26!important;color:#fff!important;border-color:#1cab26!important;box-shadow:none!important;border-radius:5px;font-size:24px;margin-bottom:-15px;font-family:Arial}.btn:hover{background-color:#1cab26!important;color:#fff!important;border-color:#1cab26!important;box-shadow:none!important}.btn:focus{outline:0!important;box-shadow:none!important}.btn:active{background-color:#1cab26!important;color:#fff!important;border-color:#1cab26!important;box-shadow:none!important}#results .btn{background-color:#1cab26!important;color:#fff!important;border-color:#1cab26!important}</style><body class=bg-white><div class=container><div class=row><div class="col-md-8 mx-auto"><div class="card card-body mt-5 text-center"><form id=payment-form><div class="form-group input-group"><div class=input-group-prepend><span class=input-group-text>$</span></div><input class=form-control id=principal placeholder="Loan Amount"type=number step=0.01 required></div><div class="form-group input-group"><div class=input-group-prepend><span class=input-group-text>%</span></div><input class=form-control id=annual-rate placeholder="Annual Interest Rate"type=number step=0.01 required></div><div class="form-group input-group"><div class=input-group-prepend><span class=input-group-text>Year:</span></div><input class=form-control id=years placeholder="Loan Term"type=number step=1><div class=input-group-prepend><span class=input-group-text>Month:</span></div><input class=form-control id=months placeholder="Loan Term"type=number step=1></div><div class="form-group input-group"><div class=input-group-prepend><span class=input-group-text>Loan Start Date:</span></div><input class=form-control id=start-date placeholder="Select Start Date"type=date required></div><div class=form-group><input class="btn btn-block btn-dark"type=submit value=Calculate></div></form><div id=loading><br><h4 style=color:#444;font-family:Arial>Calculating...</h4></div><div class=pt-4 id=results><h5 style=color:#444><b>PAYMENT</b></h5><br><div class="form-group input-group"><div class=input-group-append><span class=input-group-text>Monthly Payment</span></div><input class=form-control id=monthly-payment disabled></div><div class="form-group input-group"><div class=input-group-prepend><span class=input-group-text>Total Payment</span></div><input class=form-control id=total-payment disabled></div><div class="form-group input-group"><div class=input-group-prepend><span class=input-group-text>Total Interest</span></div><input class=form-control id=total-interest disabled></div><h5 class=mt-4><strong>Amortization Schedule</h5><br><h6><b>Monthly Schedule</b></h6><div class=table-responsive id=monthly-schedule></div><h6><b>Annual Schedule</b></h6><div class=table-responsive id=annual-schedule></div></div></div></div></div></div><script>document.getElementById('payment-form').addEventListener('submit',function(e){e.preventDefault();document.getElementById('results').style.display='none';document.getElementById('loading').style.display='block';setTimeout(calculatePayment,2000)});function calculatePayment(){const UIprincipal=document.getElementById('principal');const UIannualRate=document.getElementById("annual-rate");const UIyears=document.getElementById("years");const UImonths=document.getElementById("months");const UIstartDate=document.getElementById("start-date");const UImonthlyPayment=document.getElementById("monthly-payment");const UItotalPayment=document.getElementById("total-payment");const UItotalInterest=document.getElementById("total-interest");const principal=parseFloat(UIprincipal.value);const annualRate=parseFloat(UIannualRate.value)/100;const monthlyRate=annualRate/12;const years=parseInt(UIyears.value)||0;const months=parseInt(UImonths.value)||0;const totalPayments=(years*12)+months;const startDate=new Date(UIstartDate.value);if(isNaN(startDate.getTime())){showError('Please select a valid start date');return}
if(principal<=0||annualRate<=0||totalPayments<=0){showError('Please enter valid, positive values for all fields');return}
const loanAmount=principal;const x=Math.pow(1+monthlyRate,totalPayments);const monthly=(loanAmount*monthlyRate*x)/(x-1);if(isFinite(monthly)){UImonthlyPayment.value=`$${monthly.toFixed(2)}`;UItotalPayment.value=`$${(monthly * totalPayments).toFixed(2)}`;UItotalInterest.value=`$${((monthly * totalPayments) - loanAmount).toFixed(2)}`;displayAmortizationSchedule(startDate,monthly,monthlyRate,loanAmount,totalPayments);document.getElementById('results').style.display='block';document.getElementById('loading').style.display='none'}else{showError('Please check your input values')}}
function showError(error){document.getElementById('results').style.display='none';document.getElementById('loading').style.display='none';const errorDiv=document.createElement('div');errorDiv.className='alert alert-danger';errorDiv.appendChild(document.createTextNode(error));const card=document.querySelector('.card');card.insertBefore(errorDiv,card.querySelector('.heading'));setTimeout(()=>errorDiv.remove(),3000)}
function displayAmortizationSchedule(startDate,monthly,monthlyRate,loanAmount,totalPayments){let balance=loanAmount;let monthlyScheduleHTML='<table class="table table-bordered amortization-table"><thead><tr><th>Month</th><th>Date</th><th>Payment</th><th>Interest</th><th>Principal</th><th>Balance</th></tr></thead><tbody>';let annualScheduleHTML='<table class="table table-bordered amortization-table"><thead><tr><th>Year</th><th>Payment</th><th>Interest</th><th>Principal</th><th>Balance</th></tr></thead><tbody>';let annualTotalPayment=0,annualTotalInterest=0,annualTotalPrincipal=0,annualBalance=loanAmount;for(let month=1;month<=totalPayments;month++){const interestPayment=balance*monthlyRate;const principalPayment=monthly-interestPayment;balance-=principalPayment;const paymentDate=new Date(startDate);paymentDate.setMonth(paymentDate.getMonth()+month-1);monthlyScheduleHTML+=`<tr>
            <td>${month}</td>
            <td>${paymentDate.toLocaleDateString()}</td>
            <td>$${monthly.toFixed(2)}</td>
            <td>$${interestPayment.toFixed(2)}</td>
            <td>$${principalPayment.toFixed(2)}</td>
            <td>$${balance.toFixed(2)}</td>
        </tr>`;if(month%12===0||month===totalPayments){const year=paymentDate.getFullYear();annualScheduleHTML+=`<tr>
                <td>${year}</td>
                <td>$${(annualTotalPayment + monthly).toFixed(2)}</td>
                <td>$${(annualTotalInterest + interestPayment).toFixed(2)}</td>
                <td>$${(annualTotalPrincipal + principalPayment).toFixed(2)}</td>
                <td>$${annualBalance.toFixed(2)}</td>
            </tr>`;annualTotalPayment=0;annualTotalInterest=0;annualTotalPrincipal=0}
annualTotalPayment+=monthly;annualTotalInterest+=interestPayment;annualTotalPrincipal+=principalPayment;annualBalance-=principalPayment}
monthlyScheduleHTML+='</tbody></table>';annualScheduleHTML+='</tbody></table>';document.getElementById('monthly-schedule').innerHTML=monthlyScheduleHTML;document.getElementById('annual-schedule').innerHTML=annualScheduleHTML}</script><!-- Right Click Disable --><script>document.addEventListener('contextmenu',function(event){event.preventDefault()});</script><!-- IFrame Setup --><script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.2/iframeResizer.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.2/iframeResizer.contentWindow.min.js"></script></body></html>