1window.automotiveCalculate = function(calculator) { 2 if(calculator.length){ 3 var cost = calculator.find('.cost').val(); 4 var downPayment = calculator.find('.down_payment').val(); 5 var interest = calculator.find('.interest').val(); 6 var loanYears = calculator.find('.loan_years').val(); 7 var frequency = calculator.find('.frequency').val(); 8 9 var frequencyRate = ''; 10 11 if (!cost || !downPayment || !interest || !loanYears || isNaN(cost) || isNaN(downPayment) || isNaN(interest) || isNaN(loanYears)) { 12 if (!cost || isNaN(cost)) { 13 calculator.find('.cost').addClass('error'); 14 } else { 15 calculator.find('.cost').removeClass('error'); 16 } 17 18 if (!downPayment || isNaN(downPayment)) { 19 calculator.find('.down_payment').addClass('error'); 20 } else { 21 calculator.find('.down_payment').removeClass('error'); 22 } 23 24 if (!interest || isNaN(interest)) { 25 calculator.find('.interest').addClass('error'); 26 } else { 27 calculator.find('.interest').removeClass('error'); 28 } 29 30 if (!loanYears || isNaN(loanYears)) { 31 calculator.find('.loan_years').addClass('error'); 32 } else { 33 calculator.find('.loan_years').removeClass('error'); 34 } 35 36 return; 37 } 38 39 calculator.find('input').removeClass('error'); 40 41 switch (frequency) { 42 case '0': 43 frequencyRate = 26; 44 break; 45 case '1': 46 frequencyRate = 52; 47 break; 48 case '2': 49 frequencyRate = 12; 50 break; 51 } 52 53 var payment = 0; 54 var payments = 0; 55 var difference = 0; 56 57 // 0% interest rate 58 if (interest === 0 || interest === '0') { 59 difference = cost - downPayment; 60 payments = loanYears * frequencyRate; 61 62 payment = Math.floor((difference) / payments); 63 } else { 64 var interestRate = (interest) / 100; 65 var rate = interestRate / frequencyRate; 66 payments = loanYears * frequencyRate; 67 difference = cost - downPayment; 68 69 payment = Math.floor((difference * rate) / (1 - Math.pow((1 + rate), (-1 * payments))) * 100) / 100; 70 } 71 72 if (typeof listing_ajax.currency_separator !== 'undefined' && typeof payment !== 'undefined') { 73 payment = parseInt(payment).toLocaleString(); 74 } 75 76 var currencySymbol = (typeof calculator.data('currency-symbol') !== 'undefined' ? calculator.data('currency-symbol') : false); 77 78 // backwards compatibility 79 if (currencySymbol === false) { 80 currencySymbol = (typeof listing_ajax.currency_symbol !== 'undefined' ? listing_ajax.currency_symbol : '$'); 81 } 82 83 calculator.find('.payments').text(payments); 84 if(listing_ajax.currency_placement == 0){ 85 calculator.find('.payment_amount').text(payment + currencySymbol); 86 } else { 87 calculator.find('.payment_amount').text(currencySymbol + payment); 88 } 89 } 90}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.