<script>
const initialAmount = 250000;
const initialTerm = 2;
const initialCredit = 'Excellent';
let deposited, oneTime, payment, value, intRate, fee;
let durationField = $("input[name=loan-duration][value='" + initialTerm * 12 + "']");
let duration = durationField.val();
durationField.attr('checked', true);
durationField.parent().addClass('active');
let creditValues = {
"Good": "B",
"Excellent": "A"
};
let creditField = $("input[name=credit-score][value='" + creditValues[initialCredit] + "']");
let creditScore = creditField.val();
creditField.attr('checked', true);
creditField.parent().addClass('active');
$('.state').on('click', function () {
$(this).parent().find('.state.active').removeClass('active');
$(this).addClass('active');
});
var fees = {
greater: {
'A': [3.49, 3.49, 3.49, 3.49, 3.99, 4.99,],
'B': [3.49, 3.99, 4.99, 4.99, 5.99, 5.99,]
},
less: {
'A': [3.49, 3.49, 3.49, 3.99, 4.99, 5.99,],
'B': [3.49, 3.99, 4.99, 5.99, 6.99, 6.99,]
}
};
var CREDIT_RATES = {
'A': [4.99, 6.99, 7.49, 7.99, 8.49, 8.99,],
'B': [13.49, 13.99, 14.49, 15.49, 16.49, 17.99,]
};
var range_all_sliders = {
'min': [25000],
'10%': [50000],
'20%': [100000],
'30%': [150000],
'40%': [200000],
'50%': [250000],
'60%': [300000],
'70%': [350000],
'80%': [400000],
'90%': [450000],
'max': [500000]
};
var pipsSteps = document.getElementById('range');
noUiSlider.create(pipsSteps, {
range: range_all_sliders,
start: initialAmount,
snap: true,
pips: {
mode: 'count',
density: 9,
values: 11,
stepped: true,
}
});
pipsSteps.noUiSlider.on('update', function (values, handle) {
value = values[handle];
let loanValue = formatNumber(parseInt(values[handle]));
$('.loan-ammount p').text('$' + loanValue)
update();
});
$('.state.label-duration').on('click', function () {
duration = $(this).children('input').val();
update();
});
$('.state.label-credit').on('click', function () {
creditScore = $(this).children('input').val();
update();
});
function update() {
//start
if (duration === '6' && creditScore === 'A' && value < 75000) {
intRate = CREDIT_RATES.A[0];
intRateS = intRate / 1200;
fee = fees.less.A[0] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '6' && creditScore === 'A' && value > 75000) {
intRate = CREDIT_RATES.A[0];
intRateS = intRate / 1200;
fee = fees.greater.A[0] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '6' && creditScore === 'B' && value < 75000) {
intRate = CREDIT_RATES.B[0];
intRateS = intRate / 1200;
fee = fees.less.B[0] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '6' && creditScore === 'B' && value > 75000) {
intRate = CREDIT_RATES.B[0];
intRateS = intRate / 1200;
fee = fees.greater.B[0] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
//end
//start
else if (duration === '12' && creditScore === 'A' && value < 75000) {
intRate = CREDIT_RATES.A[1];
intRateS = intRate / 1200;
fee = fees.less.A[1] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '12' && creditScore === 'A' && value > 75000) {
intRate = CREDIT_RATES.A[1];
intRateS = intRate / 1200;
fee = fees.greater.A[1] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '12' && creditScore === 'B' && value < 75000) {
intRate = CREDIT_RATES.B[1];
intRateS = intRate / 1200;
fee = fees.less.B[1] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '12' && creditScore === 'B' && value > 75000) {
intRate = CREDIT_RATES.B[1];
intRateS = intRate / 1200;
fee = fees.greater.B[1] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
//end
//start
else if (duration === '24' && creditScore === 'A' && value < 75000) {
intRate = CREDIT_RATES.A[2];
intRateS = intRate / 1200;
fee = fees.less.A[2] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '24' && creditScore === 'A' && value > 75000) {
intRate = CREDIT_RATES.A[2];
intRateS = intRate / 1200;
fee = fees.greater.A[2] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '24' && creditScore === 'B' && value < 75000) {
intRate = CREDIT_RATES.B[2];
intRateS = intRate / 1200;
fee = fees.less.B[2] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '24' && creditScore === 'B' && value > 75000) {
intRate = CREDIT_RATES.B[2];
intRateS = intRate / 1200;
fee = fees.greater.B[2] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
//end
//start
else if (duration === '36' && creditScore === 'A' && value < 75000) {
intRate = CREDIT_RATES.A[3];
intRateS = intRate / 1200;
fee = fees.less.A[3] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '36' && creditScore === 'A' && value > 75000) {
intRate = CREDIT_RATES.A[3];
intRateS = intRate / 1200;
fee = fees.greater.A[3] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '36' && creditScore === 'B' && value < 75000) {
intRate = CREDIT_RATES.B[3];
intRateS = intRate / 1200;
fee = fees.less.B[3] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '36' && creditScore === 'B' && value > 75000) {
intRate = CREDIT_RATES.B[3];
intRateS = intRate / 1200;
fee = fees.greater.B[3] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
//end
//start
else if (duration === '48' && creditScore === 'A' && value < 75000) {
intRate = CREDIT_RATES.A[4];
intRateS = intRate / 1200;
fee = fees.less.A[4] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '48' && creditScore === 'A' && value > 75000) {
intRate = CREDIT_RATES.A[4];
intRateS = intRate / 1200;
fee = fees.greater.A[4] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '48' && creditScore === 'B' && value < 75000) {
intRate = CREDIT_RATES.B[4];
intRateS = intRate / 1200;
fee = fees.less.B[4] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '48' && creditScore === 'B' && value > 75000) {
intRate = CREDIT_RATES.B[4];
intRateS = intRate / 1200;
fee = fees.greater.B[4] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
//end
//start
else if (duration === '60' && creditScore === 'A' && value < 75000) {
intRate = CREDIT_RATES.A[5];
intRateS = intRate / 1200;
fee = fees.less.A[5] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '60' && creditScore === 'A' && value > 75000) {
intRate = CREDIT_RATES.A[5];
intRateS = intRate / 1200;
fee = fees.greater.A[5] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '60' && creditScore === 'B' && value < 75000) {
intRate = CREDIT_RATES.B[5];
intRateS = intRate / 1200;
fee = fees.less.B[5] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
else if (duration === '60' && creditScore === 'B' && value > 75000) {
intRate = CREDIT_RATES.B[5];
intRateS = intRate / 1200;
fee = fees.greater.B[5] / 100;
oneTime = Math.round(value * fee);
net = value - oneTime;
payment = value * intRateS / (1 - (Math.pow(1 / (1 + intRateS), duration)));
}
//end
$('.one-time').val('$' + formatNumber(net));
$('input.fixed-monthly-payment').val('$' + formatNumber(payment.toFixed(2)));
}
function formatNumber(num) {
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
}
</script>