$(document).ready(function(){
    
    
});

function CleanMortgageForm() {
        $('#mortgage_calculator input[name="payments"]').val('');
        $('#mortgage_calculator input[name="principal"]').val('');
        $('#mortgage_calculator input[name="monthly"]').val('');
        
        $('#mortgage_calculator input[name="price"]').val(clean_numeric( $('#mortgage_calculator input[name="price"]').val()));
        $('#mortgage_calculator input[name="apr"]').val(clean_numeric( $('#mortgage_calculator input[name="apr"]').val()));
        $('#mortgage_calculator input[name="down"]').val(clean_numeric( $('#mortgage_calculator input[name="down"]').val()));
        $('#mortgage_calculator input[name="years"]').val(clean_numeric( $('#mortgage_calculator input[name="years"]').val()));
}

function CalculateMortgageForm() {
    CleanMortgageForm();
    if ( ValidateMortgageForm() ) {
        var payments;
        var principal;
        var monthly;
        
        rate = $('#mortgage_calculator input[name="apr"]').val() / 100 / 12;
        payments = 12 * $('#mortgage_calculator input[name="years"]').val();
        principal = $('#mortgage_calculator input[name="price"]').val() - $('#mortgage_calculator input[name="down"]').val();
        monthly = Math.floor((principal * rate) / (1 - Math.pow(1 + rate, (-1 * payments))) * 100) / 100;

        $('#mortgage_calculator input[name="payments"]').val(payments);
        $('#mortgage_calculator input[name="principal"]').val(principal);
        $('#mortgage_calculator input[name="monthly"]').val(monthly);
    }
}

function ValidateMortgageForm() {
    var result = true;
    
    $('#mortgage_calculator input').removeClass('error');
    if ( $('#mortgage_calculator input[name="price"]').val() == '0' ) {
        result = false;
        $('#mortgage_calculator input[name="price"]').addClass('error');
    }
    if ( $('#mortgage_calculator input[name="apr"]').val() == '0' ) {
        result = false;
        $('#mortgage_calculator input[name="apr"]').addClass('error');
    }
    if ( $('#mortgage_calculator input[name="years"]').val() == '0' ) {
        result = false;
        $('#mortgage_calculator input[name="years"]').addClass('error');
    }
    
    return result;
}

function clean_numeric(value) {
     var clean = value.replace(/[^0-9.]/g,'');
     
     if ( clean.length == 0 ) clean = '0';

     return clean;
}

function is_numberic(value) {
    var reg = /^([0-9.$]{5})$/;
    
    return reg.test(value); 
}