﻿function CalculatePayment(){
        var P = document.getElementById('txtLoan').value;
        var I = document.getElementById('txtInterest').value;
        var L = document.getElementById('txtYears').value;
        var J = I/(12*100);
        var N = L*12;
        var Payment = document.getElementById('txtPayment');
        var Result = 1;
        for(i=0; i<N ;i++){
        Result = (Result * (1 + J));
        }
        var M = P * ( J / (1 - (1/Result)));
        
        var fees = document.getElementById('txtAFees').value;
        var taxes = document.getElementById('txtTaxes').value;
        
        if (taxes != 0){
            taxes = taxes/12;
        }
        var T;
        T = parseFloat(M) + parseFloat(fees) + parseFloat(taxes);
        
        Payment.value = formatCurrency(Math.round(parseFloat(T)*100)/100);
        /*Payment.value = P * ( J / (1 - ((1 + J) ** -N)));*/
    }
    
 function CalculateTotal(){
    var objtxtPI = document.getElementById('txtPI');
    var objtxtPMI = document.getElementById('txtPMI');
    var objfees = document.getElementById('txtAFees');
    objfees.value = objfees.value.replace(',', '').replace('$', '').replace(' ', '');
    var objHOFees = document.getElementById('txtHOFees');
    objHOFees.value = objHOFees.value.replace(',', '').replace('$', '').replace(' ', '');
    var objMtaxes = document.getElementById('txtTaxes');
    objMtaxes.value = objMtaxes.value.replace(',', '').replace('$', '').replace(' ', '');
    var objMInsurance = document.getElementById('txtMonthlyInsurance');
    objMInsurance.value = objMInsurance.value.replace(',', '').replace('$', '').replace(' ', '');
    if (objfees.value ==''){objfees.value = 0}
    if (objHOFees.value ==''){objHOFees.value = 0}
    if (objMtaxes.value ==''){objMtaxes.value = 0}
    if (objMInsurance.value ==''){objMInsurance.value = 0}
    var T;
    T = parseFloat(objtxtPI.value) + parseFloat(objtxtPMI.value) + parseFloat(objfees.value) + parseFloat(objHOFees.value) + parseFloat(objMtaxes.value) + parseFloat(objMInsurance.value);
    var Payment = document.getElementById('txtPayment');
    Payment.value = Math.round(parseFloat(T)*100)/100;
 }
    
 function CalculatePI(){
        var P = document.getElementById('txtLoan').value;
        var I = document.getElementById('txtInterest').value.replace(',', '').replace('$', '').replace(' ', '');
        var L = document.getElementById('txtYears').value.replace(',', '').replace('$', '').replace(' ', '');
        var J = I/(12*100);
        var N = L*12;
        var Payment = document.getElementById('txtPayment');
        var Result = 1;
        for(i=0; i<N ;i++){
        Result = (Result * (1 + J));
        }
        var M = P * ( J / (1 - (1/Result)));
       
        var objtxtPI = document.getElementById('txtPI');
        objtxtPI.value = Math.round(parseFloat(M)*100)/100;
       
    }
    function AutoCalculate(price,fees,taxes, HOFees, Insurance){
        // PRICE
        var objprice = document.getElementById('txtPrice');
        objprice.value = price;
        
        // CONDO ASSOCIATION
        var objfees = document.getElementById('txtAFees');
        objfees.value = fees;
        
        // HOMEOWNER ASSOCIATION
        var objHOFees = document.getElementById('txtHOFees');
        objHOFees.value = HOFees;
        
        // TAXES
        var objtaxes = document.getElementById('txtYearlyTaxes');
        objtaxes.value = taxes;
        var objMtaxes = document.getElementById('txtTaxes');
        if (taxes != 0){
        objMtaxes.value = taxes/12;}
        else {objMtaxes.value = 0;}
                
        // INSURANCE
        var objInsurance = document.getElementById('txtYearlyInsurance');
        objInsurance.value = Insurance;
        var objMInsurance = document.getElementById('txtMonthlyInsurance');
        if (Insurance != 0){
             objMInsurance.value = Insurance/12;}
        else { objMInsurance.value=0;}
        
        // INTEREST
        var objInterest = document.getElementById('ctl00_ContentPlaceHolder1_HF_Interest');
        var objtxtInterest =  document.getElementById('txtInterest');
        objtxtInterest.value = objInterest.value;
        
        // DOWN PAYMENT
        var objDownPercent = document.getElementById('txtDownPercent');
        var objDown = document.getElementById('txtDown');
        objDown.value = (objDownPercent.value*price)/100;
        
        // LOAN AMOUNT
        var objLoan = document.getElementById('txtLoan');
        objLoan.value = price - objDown.value;
        
        // PMI
        CalculatePMI();
        
        // PI
        CalculatePI();
        
        // TOTAL
        CalculateTotal();

        WriteControls();
    }

    function SetInterest() {
        // INTEREST
        var objInterest = document.getElementById('ctl00_ContentPlaceHolder1_HF_Interest');
        var objtxtInterest = document.getElementById('txtInterest');
        objtxtInterest.value = objInterest.value;
    }
    
    function CalculatePMI(){
        var objlblPMI = document.getElementById('ctl00_ContentPlaceHolder1_lblPMI');
        var objtxtPMI = document.getElementById('txtPMI');
        objtxtPMI.value = objtxtPMI.value.replace(',', '').replace('$', '').replace(' ', '');
        var DownPercent = document.getElementById('txtDownPercent').value.replace(',', '').replace('$', '').replace(' ', '');
        
        var Loan = document.getElementById('txtLoan').value;
        var FHAYes = document.getElementById('FHAYes');
        
        if (FHAYes.checked == true){
            objlblPMI.innerHTML = 'MIP:'; 
            if (DownPercent >= 20){
                objtxtPMI.value = 0;
            }  else {
                var FHAValue = document.getElementById('ctl00_ContentPlaceHolder1_HF_FHA').value;
                objtxtPMI.value = Math.round(parseFloat(FHAValue*Loan)*100)/100; }       
        } else {
            objlblPMI.innerHTML = 'PMI:'; 
            var HF_Per5 = document.getElementById('ctl00_ContentPlaceHolder1_HF_Per5');
            var HF_Per10 = document.getElementById('ctl00_ContentPlaceHolder1_HF_Per10');
            var HF_Per15 = document.getElementById('ctl00_ContentPlaceHolder1_HF_Per15');
            
            if (DownPercent < 10){
                objtxtPMI.value = Math.round(parseFloat(HF_Per5.value*Loan)*100)/100; }
            if (DownPercent >= 10 && DownPercent < 15){
                objtxtPMI.value = Math.round(parseFloat(HF_Per10.value*Loan)*100)/100; }            
            if (DownPercent >= 15 && DownPercent < 20){
                objtxtPMI.value = Math.round(parseFloat(HF_Per15.value*Loan)*100)/100; }
            if (DownPercent >= 20){
                objtxtPMI.value = 0 }    
        }
    }
    
    function formatCurrency(num) {
        num = num.toString().replace(/\$|\,/g,'');
        if(isNaN(num))
        num = "0";
        sign = (num == (num = Math.abs(num)));
        num = Math.floor(num*100+0.50000000001);
        cents = num%100;
        num = Math.floor(num/100).toString();
        if(cents<10)
        cents = "0" + cents;
        for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+
        num.substring(num.length-(4*i+3));
        return (((sign)?'':'-') + '$' + num + '.' + cents);
    }
    
    function DownChanged(){
        var objprice = document.getElementById('txtPrice');
        objprice.value = objprice.value.replace(',', '').replace('$', '').replace(' ', '');
        var objDown = document.getElementById('txtDown');
        objDown.value = objDown.value.replace(',', '').replace('$', '').replace(' ', '');
        var objDownPercent = document.getElementById('txtDownPercent');
        objDownPercent.value =  (parseFloat(objDown.value)*100)/parseFloat(objprice.value);
        Recalculate()        
    }
    
    function Recalculate(){
        // TAXES
        var objtaxes = document.getElementById('txtYearlyTaxes');
        objtaxes.value = objtaxes.value.replace(',', '').replace('$', '').replace(' ', '');
        var objMtaxes = document.getElementById('txtTaxes');
        objMtaxes.value = objMtaxes.value.replace(',', '').replace('$', '').replace(' ', '');
        if (objtaxes.value != 0) {
            objMtaxes.value = Math.round((objtaxes.value/ 12) * 100) / 100;
        }
        else {objMtaxes.value = 0;}
                
        // INSURANCE
        var objInsurance = document.getElementById('txtYearlyInsurance');
        objInsurance.value = objInsurance.value.replace(',', '').replace('$', '').replace(' ', '');
        var objMInsurance = document.getElementById('txtMonthlyInsurance');
        objMInsurance.value = objMInsurance.value.replace(',', '').replace('$', '').replace(' ', '');
        if (objInsurance.value != 0) {
            objMInsurance.value = Math.round((objInsurance.value / 12) * 100) / 100;
        }
        else { objMInsurance.value=0;}
        
         // DOWN PAYMENT
        var objprice = document.getElementById('txtPrice');
        objprice.value = objprice.value.replace(',', '').replace('$', '').replace(' ', '');
        var objDownPercent = document.getElementById('txtDownPercent');
        objDownPercent.value = objDownPercent.value.replace(',', '').replace('$', '').replace(' ', '');
        var objDown = document.getElementById('txtDown');
        objDown.value = objDown.value.replace(',', '').replace('$', '').replace(' ', '');
        objDown.value = (objDownPercent.value*objprice.value)/100;
        
         // LOAN AMOUNT
        var objLoan = document.getElementById('txtLoan');
        objLoan.value = objprice.value - objDown.value;
        
       
        
        // PMI
        CalculatePMI();
        
        // PI
        CalculatePI();
        
        // TOTAL
        CalculateTotal();

        WriteControls();
    }

    function CleanData(strControlID) {
        var strobj = document.getElementById(strControlID).value;
        strobj = strobj.replace(',', '').replace('$', '').replace(' ', '');
        if (strobj == '') {
            return 0;
        }
        else { return strobj; }
    }

    function WriteControls() {
        FormatData('txtPrice', true);
        FormatData('txtDown', true);
        FormatData('txtLoan', true);
        FormatData('txtPI', true);
        FormatData('txtPMI', true);
        FormatData('txtAFees', true);
        FormatData('txtHOFees', true);
        FormatData('txtYearlyInsurance', true);
        FormatData('txtMonthlyInsurance', true);
        FormatData('txtYearlyTaxes', true);
        FormatData('txtTaxes', true);
        FormatData('txtPayment', true);
        
    }

    function FormatData(strControlID, blCurrency) {
        if (blCurrency == true) {
            document.getElementById(strControlID).value = formatCurrency(document.getElementById(strControlID).value);
        }
    }
    
    
