var credit_calc = new function() { this.params = {}; // Настройки this.show_overpay = true; this.pay_method = ''; this.radio_button_height = '18'; this.order_link_template = ''; this.default_price = 0; this.first_init = true; this.sliders_init_complete = false; this.price_slider_moving = false; this.out_of_range = false; this.side_rangeout = ''; // min or max this.stop_credit_sum = 0; this.stop_firstpay_sum = 0; this.price_slide_count = 0; this.manual_firstpay_sum = 0; // Сумма первоначального платежа которую пользователь ввёл вручную this.manual_rangeout = false; this.init = function(banks){ this.banks = banks; if(!credit_calc.isNumber(this.default_price)){ credit_calc.default_price = 0; } $('.aspro-banks a:not(.aspro-cur)').click(function(){ $('.aspro-banks a.aspro-cur').removeClass('aspro-cur'); $(this).addClass('aspro-cur'); var bank_id = $(this).attr('href'); credit_calc.form_init(bank_id.replace('#', '')); bank_name = banks[bank_id.replace('#', '')].name; }); $(".aspro-banks a:first").addClass('aspro-cur'); $("input[name=pay-method]").change(function(){ credit_calc.pay_method = $(this).val(); credit_calc.banks[credit_calc.params.bank_id].selected_paymethod = $(this).val(); if(credit_calc.pay_method == "annuity"){ $("div.aspro-credit-schedule").hide(); $("th.aspro-per-month, td.aspro-per-month").show(); $(".aspro-result").removeClass('aspro-box-diff').addClass('aspro-box-annuity'); }else if(credit_calc.pay_method == "diff"){ $("div.aspro-credit-schedule").show(); $("th.aspro-per-month, td.aspro-per-month").hide(); $(".aspro-result").removeClass('aspro-box-annuity').addClass('aspro-box-diff'); credit_calc.build_table(); } credit_calc.normalize_result_table(); credit_calc.calc_result(); }); } this.form_init = function(bank_id) { if(!this.first_init){ $("#aspro-price-slider").slider("destroy"); $("#aspro-firstpay-slider").slider("destroy"); $("#aspro-month-slider").slider("destroy"); } this.sliders_init_complete = false; $("div.aspro-documents .aspro-controls").children().remove(); if(!bank_id){ var order = 1000; for(var bank in this.banks){ if(this.banks[bank].order < order){ bank_id = bank; order = this.banks[bank].order; } } } var bank = this.banks[bank_id]; credit_calc.params.bank_id = bank_id; credit_calc.pay_method = bank.paymethod; if(bank.selected_paymethod){ credit_calc.pay_method = bank.selected_paymethod; var _radios = $("input[name=pay-method]"); _radios.filter('[value="'+credit_calc.pay_method+'"]').attr('checked', true).trigger('change'); }else{ if(bank.paymethod == 'manual' || bank.paymethod == 'diff'){ credit_calc.pay_method = 'diff'; $('.aspro-credit-schedule').show() }else if(bank.paymethod == 'annuity'){ credit_calc.pay_method = 'annuity'; $('.aspro-credit-schedule').hide(); } if(bank.paymethod == 'manual' && !credit_calc.first_init){ var _radios = $("input[name=pay-method]"); _radios.filter('[value="'+credit_calc.pay_method+'"]').attr('checked', true).trigger('change'); } } // Блок Метода погашения if(bank.paymethod == 'manual'){ $('.aspro-credit-calc .aspro-control-group.aspro-pay-method').show(); }else{ $('.aspro-credit-calc .aspro-control-group.aspro-pay-method').hide(); } // Блок документов if(bank.documents.length != 0){ $("div.aspro-documents").show(); }else{ $("div.aspro-documents").hide(); } // Скрытие элементов в результатах var _result_table = $('.aspro-credit-calc div.aspro-result table'); if(credit_calc.pay_method == 'diff'){ _result_table.find('th.aspro-per-month, td.aspro-per-month').hide(); }else if(credit_calc.pay_method == 'annuity'){ _result_table.find('th.aspro-per-month, td.aspro-per-month').show(); } var min_first_pay = bank.percent_rates[0].first_pay_from, max_first_pay = bank.percent_rates[0].first_pay_to; var credit_period_from = bank.percent_rates[0].credit_period_from, credit_period_to = bank.percent_rates[0].credit_period_to; for(var i = 0; i < bank.percent_rates.length; i++){ if(bank.percent_rates[i].first_pay_from < min_first_pay){ min_first_pay = bank.percent_rates[i].first_pay_from; } if(bank.percent_rates[i].first_pay_to > max_first_pay){ max_first_pay = bank.percent_rates[i].first_pay_to; } if(bank.percent_rates[i].credit_period_from < credit_period_from){ credit_period_from = bank.percent_rates[i].credit_period_from; } if(bank.percent_rates[i].credit_period_to > credit_period_to){ credit_period_to = bank.percent_rates[i].credit_period_to; } } credit_calc.params.max_first_pay = max_first_pay; credit_calc.params.max_period = credit_period_to; jQuery("#aspro-price-slider").slider({ range: 'min', min: bank.min_credit_size, max: bank.max_credit_size, step: 10000, slide: function( event, ui ) { credit_calc.on_price_changed(ui.value, true); }, change: function(event, ui){ credit_calc.price_slider_moving = false; credit_calc.on_price_changed(ui.value, false); if(credit_calc.pay_method == "diff"){ credit_calc.build_table(); } }, start: function(){ credit_calc.price_slider_moving = true; }, stop: function(){ credit_calc.price_slider_moving = false; }, create: function(){ var min = $(this).slider('option', 'min'), max = $(this).slider('option', 'max'), step = $(this).slider('option', 'step') html = ''; var values = []; for(var i = bank.min_credit_size; i < bank.max_credit_size; i += step*25){ values.push(i); } values.push(bank.max_credit_size); $(this).data('values', values); var data = $(this).data('values'); add = $(this).data('addition'); if (data) { for (var i in data) { value = data[i]; left = ((value - min) / (max - min)) * 100; exists = jQuery.inArray(value, add); if (exists > -1) { add[exists] = null; } html += '
  • ' + 'javascript:void(0)' + '
  • '; } $(this).children('.aspro-markers').remove().end().append(''); } if(!credit_calc.first_init){ if(credit_calc.params.credit_sum >= $(this).slider("option", "min") && credit_calc.params.credit_sum <= $(this).slider("option", "max")) { $(this).slider("value", credit_calc.params.credit_sum); //$("#price-slider").slider("refresh"); } else { if(credit_calc.params.credit_sum < $(this).slider("option", "min")) credit_calc.params.credit_sum = $(this).slider("option", "min"); if(credit_calc.params.credit_sum > $(this).slider("option", "max")) credit_calc.params.credit_sum = $(this).slider("option", "max"); $(this).slider("value", credit_calc.params.credit_sum); //$(this).slider("refresh"); } }else{ if(credit_calc.default_price > $(this).slider("option", "min") && credit_calc.default_price < $(this).slider("option", "max")){ credit_calc.params.credit_sum = parseInt(credit_calc.default_price); $(this).slider("value", credit_calc.params.credit_sum); }else{ credit_calc.params.credit_sum = $(this).slider("value"); } } $('#price-val').val(credit_calc.pretty_number(credit_calc.params.credit_sum)); } }); jQuery("#aspro-firstpay-slider").slider({ range: 'min', min: min_first_pay, max: max_first_pay, step:5, slide: function( event, ui ) { credit_calc.params.first_pay_percent = ui.value; credit_calc.params.first_pay_sum = credit_calc.params.credit_sum * credit_calc.params.first_pay_percent / 100; $('#firstpay-val').val(credit_calc.pretty_number(credit_calc.params.first_pay_sum)); credit_calc.manual_firstpay_sum = credit_calc.params.first_pay_sum; credit_calc.out_of_range = false; credit_calc.calc_result(); }, change: function(){ if(credit_calc.pay_method == "diff" && !credit_calc.price_slider_moving){ credit_calc.build_table(); } }, create: function(){ var min = $(this).slider('option', 'min'), max = $(this).slider('option', 'max'), step = $(this).slider('option', 'step') html = ''; var values = []; for(var i = min_first_pay; i < max_first_pay; i += step){ values.push(i); } values.push(max_first_pay); $(this).data('values', values); var data = $(this).data('values'); add = $(this).data('addition'); if (data) { for (var i in data) { value = data[i]; left = ((value - min) / (max - min)) * 100; exists = jQuery.inArray(value, add); if (exists > -1) { add[exists] = null; } html += '
  • ' + 'javascript:void(0)' + '
  • '; } $(this).children('.aspro-markers').remove().end().append(''); } if(!credit_calc.first_init){ if(credit_calc.params.first_pay_percent >= $(this).slider("option", "min") && credit_calc.params.first_pay_percent <= $(this).slider("option", "max")){ $(this).slider("value", credit_calc.params.first_pay_percent); //$(this).slider("refresh"); }else{ if(credit_calc.params.first_pay_percent < $(this).slider("option", "min")) credit_calc.params.first_pay_percent = $(this).slider("option", "min"); if(credit_calc.params.first_pay_percent > $(this).slider("option", "max")) credit_calc.params.first_pay_percent = $(this).slider("option", "max"); $(this).slider("value", credit_calc.params.first_pay_percent); //$(this).slider("refresh"); } }else{ credit_calc.params.first_pay_percent = $(this).slider("value"); } credit_calc.params.first_pay_sum = Math.round(credit_calc.params.credit_sum * credit_calc.params.first_pay_percent / 100); $("#firstpay-val").val(credit_calc.pretty_number(credit_calc.params.first_pay_sum)); } }); jQuery("#aspro-month-slider").slider({ range:'min', min: credit_period_from, max: credit_period_to, slide: function( event, ui ) { var values = $(this).data('values'), minimal_diff = null, minimal_diff_value = null, value = parseInt(ui.value); for(var i = 0; i < values.length; i++){ var diff = Math.abs(value - values[i]); if(minimal_diff == null || diff < minimal_diff){ minimal_diff = diff; minimal_diff_value = values[i]; } } $(this).slider('value', minimal_diff_value); credit_calc.params.period = minimal_diff_value; $("#month-val").val(credit_calc.params.period); credit_calc.calc_result(); return false; }, change: function(){ if(credit_calc.pay_method == "diff"){ credit_calc.build_table(); } }, create: function(){ var min = $(this).slider('option', 'min'), max = $(this).slider('option', 'max'); var html = ''; var values = []; // Собираем массив значений с конца if(credit_period_to > 24){ var start = (credit_period_from < 24) ? 24 : credit_period_from; for(var i = 24; i < credit_period_to; i += 6){ values.push(i); } } if(credit_period_from < 24){ var start = (credit_period_from < 12) ? 12 : credit_period_from, stop = (credit_period_to > 24) ? 24 : credit_period_to; for(var i = start; i < stop; i += 3){ values.push(i); } } if(credit_period_from < 12){ var start = (credit_period_from < 6) ? 6 : credit_period_from, stop = (credit_period_to > 12) ? 12 : credit_period_to; for(var i = start; i < stop; i += 3){ values.push(i); } } if(credit_period_from < 6){ var start = credit_period_from, stop = (credit_period_to > 6) ? 6 : credit_period_to; for(var i = start; i < stop; i++){ values.push(i); } } values.push(credit_period_to); values.sort(function(a, b){return a-b;}); // Сортировка числового массива $(this).data('values', values); var data = $(this).data('values'); add = $(this).data('addition'); if (data) { for (var i in data) { value = data[i]; left = ((value - min) / (max - min)) * 100; exists = jQuery.inArray(value, add); if (exists > -1) { add[exists] = null; } html += '
  • ' + 'javascript:void(0)' + '
  • '; } $(this).children('.aspro-markers').remove().end().append(''); } if(!credit_calc.first_init){ if(credit_calc.params.period >= $(this).slider("option", "min") && credit_calc.params.period <= $(this).slider("option", "max")) { $(this).slider("value", credit_calc.params.period); //$(this).slider("refresh"); } else { if(credit_calc.params.period < $(this).slider("option", "min")) credit_calc.params.period = $(this).slider("option", "min"); if(credit_calc.params.period > $(this).slider("option", "max")) credit_calc.params.period = $(this).slider("option", "max"); $(this).slider("value", credit_calc.params.period); //$(this).slider("refresh"); } }else{ credit_calc.params.period = $(this).slider("value"); } credit_calc.params.period = $(this).slider("value"); $("#month-val").val(credit_calc.params.period); credit_calc.sliders_init_complete = true; } }); // Центрирование маркеров слайдера $('.aspro-markers a').each(function(){ var $this = $(this); markersTitleWidth = $this.width(); $this.css({ marginLeft: (- markersTitleWidth / 2) + 'px' }) }); var _list_el = $('').attr('class', 'aspro-radio-groups'); $.each(bank.documents, function(index, value){ var _html = '
  • ' + '
  • ' _list_el.append(_html); }); $("div.aspro-documents .aspro-controls").append(_list_el); $("div.aspro-documents input[type=radio]").first().attr('checked', 'checked'); $("input[type='radio']").Custom({ customStyleClass:'radio', customHeight: credit_calc.radio_button_height }); $("input[name=document_input]").change(function(){ credit_calc.calc_result(); if(credit_calc.pay_method == "diff"){ credit_calc.build_table(); } }) $("#price-val").change(function(){ var new_val = parseInt($(this).val().replace(/\s/g, '')); if(new_val < $("#aspro-price-slider").slider("option", "min")){ new_val = $("#aspro-price-slider").slider("option", "min"); }else if(new_val > $("#aspro-price-slider").slider("option", "max")){ new_val = $("#aspro-price-slider").slider("option", "max"); } credit_calc.params.credit_sum = new_val; $("#aspro-price-slider").slider("value", new_val); $(this).val(credit_calc.pretty_number(credit_calc.params.credit_sum)); }) $("#firstpay-val").change(function(){ var _val = parseInt($(this).val().replace(/\s/g, '')), new_val_percent = Math.round(_val * 100 / credit_calc.params.credit_sum), new_val = credit_calc.params.credit_sum * new_val_percent / 100; if(new_val_percent < $("#aspro-firstpay-slider").slider("option", "min")){ new_val_percent = $("#aspro-firstpay-slider").slider("option", "min"); _val = credit_calc.params.credit_sum * new_val_percent / 100; } if(new_val_percent > $("#aspro-firstpay-slider").slider("option", "max")){ new_val_percent = $("#aspro-firstpay-slider").slider("option", "max"); _val = credit_calc.params.credit_sum * new_val_percent / 100; } credit_calc.manual_firstpay_sum = _val; credit_calc.params.first_pay_sum = _val; credit_calc.params.first_pay_percent = new_val_percent; $("#aspro-firstpay-slider").slider("value", new_val_percent); $(this).val(credit_calc.pretty_number(credit_calc.params.first_pay_sum)); credit_calc.calc_result(); }) $("#month-val").change(function(){ var new_val = parseInt($(this).val()); if(new_val < $("#aspro-month-slider").slider("option", "min")){ new_val = $("#aspro-month-slider").slider("option", "min"); }else if(new_val > $("#aspro-month-slider").slider("option", "max")){ new_val = $("#aspro-month-slider").slider("option", "max"); } credit_calc.params.period = new_val; $("#aspro-month-slider").slider("value", new_val); $(this).val(credit_calc.params.period); credit_calc.calc_result(); }) credit_calc.calc_result(); credit_calc.normalize_result_table(); if(credit_calc.pay_method == "diff"){ credit_calc.build_table(); } } this.on_price_changed = function(value, from_slider) { if(!credit_calc.sliders_init_complete){ return false; } if(from_slider) { credit_calc.price_slide_count += 1; /****************/ credit_calc.params.credit_sum = value; var new_first_pay_percent = 100 * credit_calc.params.first_pay_sum / credit_calc.params.credit_sum; var new_firstpay_sum = credit_calc.params.credit_sum * new_first_pay_percent / 100; var skip = false; if(!credit_calc.out_of_range && (new_first_pay_percent <= $("#aspro-firstpay-slider").slider("option", "min") || new_first_pay_percent >= $("#aspro-firstpay-slider").slider("option", "max"))) { credit_calc.out_of_range = true; if(new_first_pay_percent <= $("#aspro-firstpay-slider").slider("option", "min")){ credit_calc.side_rangeout = "min"; credit_calc.params.first_pay_percent = $("#aspro-firstpay-slider").slider("option", "min"); } if(new_first_pay_percent >= $("#aspro-firstpay-slider").slider("option", "max")){ credit_calc.side_rangeout = "max"; credit_calc.params.first_pay_percent = $("#aspro-firstpay-slider").slider("option", "max"); } $("#aspro-firstpay-slider").slider("value", credit_calc.params.first_pay_percent); //$("#firstpay-slider").slider("refresh"); credit_calc.stop_credit_sum = credit_calc.params.credit_sum; credit_calc.stop_firstpay_sum = Math.round(new_firstpay_sum); skip = true; } if(!skip){ if(credit_calc.out_of_range) { if(new_first_pay_percent <= $("#aspro-firstpay-slider").slider("option", "min")){ credit_calc.params.first_pay_percent = $("#aspro-firstpay-slider").slider("option", "min"); } if(new_first_pay_percent >= $("#aspro-firstpay-slider").slider("option", "max")){ credit_calc.params.first_pay_percent = $("#aspro-firstpay-slider").slider("option", "max"); } if((credit_calc.side_rangeout == "min" && credit_calc.params.credit_sum <= credit_calc.stop_credit_sum) || (credit_calc.side_rangeout == "max" && credit_calc.params.credit_sum >= credit_calc.stop_credit_sum)){ credit_calc.out_of_range = false; credit_calc.params.first_pay_sum = credit_calc.stop_firstpay_sum; $("#firstpay-val").val(credit_calc.pretty_number(credit_calc.params.first_pay_sum)); } if(credit_calc.out_of_range){ credit_calc.params.first_pay_sum = credit_calc.params.credit_sum * credit_calc.params.first_pay_percent / 100; $("#firstpay-val").val(credit_calc.pretty_number(Math.round(credit_calc.params.first_pay_sum))); } } else { credit_calc.params.first_pay_percent = Math.round(new_first_pay_percent); $("#aspro-firstpay-slider").slider("value", credit_calc.params.first_pay_percent); //$("#firstpay-slider").slider("refresh"); } }else{skip = false;} } else { if(credit_calc.price_slide_count <= 1) { // one click credit_calc.out_of_range = false; credit_calc.params.credit_sum = value; var _firstpay_percent = credit_calc.params.first_pay_sum * 100 / credit_calc.params.credit_sum, _side_rangeout = ''; //min or max _firstpay_sum = 0; if(_firstpay_percent <= $("#aspro-firstpay-slider").slider("option", "min") || _firstpay_percent >= $("#aspro-firstpay-slider").slider("option", "max")) { if(_firstpay_percent <= $("#aspro-firstpay-slider").slider("option", "min")){ _side_rangeout = "min"; credit_calc.params.first_pay_percent = $("#aspro-firstpay-slider").slider("option", "min"); } if(_firstpay_percent >= $("#aspro-firstpay-slider").slider("option", "max")){ _side_rangeout = "max"; credit_calc.params.first_pay_percent = $("#aspro-firstpay-slider").slider("option", "max"); } $("#aspro-firstpay-slider").slider("value", credit_calc.params.first_pay_percent); //$("#firstpay-slider").slider("refresh"); credit_calc.params.first_pay_sum = credit_calc.params.credit_sum * credit_calc.params.first_pay_percent / 100; $("#firstpay-val").val(credit_calc.pretty_number(credit_calc.params.first_pay_sum)); } else { $("#aspro-firstpay-slider").slider("value", Math.round(_firstpay_percent)); //$("#firstpay-slider").slider("refresh"); } } credit_calc.price_slide_count = 0; } $("#price-val").val(credit_calc.pretty_number(credit_calc.params.credit_sum)); credit_calc.calc_result(); } this.calc_result = function() { var bank = this.banks[credit_calc.params.bank_id]; credit_calc.params.percent_rate = 0; for(var i = 0; i < bank.percent_rates.length; i++){ if( bank.percent_rates[i].first_pay_to == credit_calc.params.max_first_pay) { if(credit_calc.params.period >= bank.percent_rates[i].credit_period_from && credit_calc.params.period <= bank.percent_rates[i].credit_period_to){ credit_calc.params.percent_rate = bank.percent_rates[i].percent_rate; break; } if(bank.percent_rates[i].credit_period_to == 1 && credit_calc.params.period == 1){ credit_calc.params.percent_rate = bank.percent_rates[i].percent_rate; break; } if(credit_calc.params.period == credit_calc.params.max_period && credit_calc.params.period == bank.percent_rates[i].credit_period_to){ credit_calc.params.percent_rate = bank.percent_rates[i].percent_rate; break; } } if(credit_calc.params.first_pay_percent >= bank.percent_rates[i].first_pay_from && credit_calc.params.first_pay_percent < bank.percent_rates[i].first_pay_to) { // Проверки попаданий в промежутки if(credit_calc.params.period >= bank.percent_rates[i].credit_period_from && credit_calc.params.period <= bank.percent_rates[i].credit_period_to){ credit_calc.params.percent_rate = bank.percent_rates[i].percent_rate; break; } if(bank.percent_rates[i].credit_period_to == 1 && credit_calc.params.period == 1){ credit_calc.params.percent_rate = bank.percent_rates[i].percent_rate; break; } // Проверки верхних значений if(credit_calc.params.period == credit_calc.params.max_period && credit_calc.params.period == bank.percent_rates[i].credit_period_to){ credit_calc.params.percent_rate = bank.percent_rates[i].percent_rate; break; } } } if($('input[name=document_input]').length){ var _doc_id = $("input[name=document_input]:checked").val(), _doc = bank.documents[_doc_id], _append_percent_rate = 0; if(_doc.rate_change == "plus"){ _append_percent_rate = _doc.percentrate_value; }else if(_doc.rate_change == "minus"){ _append_percent_rate = _doc.percentrate_value * (-1); } } credit_calc.params.append_percent_rate = _append_percent_rate; if(credit_calc.params.append_percent_rate){ credit_calc.params.percent_rate += parseFloat(credit_calc.params.append_percent_rate); } credit_calc.params.total_sum = credit_calc.params.credit_sum - credit_calc.params.first_pay_sum; $('div.aspro-result td.aspro-total-price > span').text(credit_calc.pretty_number(credit_calc.params.total_sum)); $('div.aspro-result td.percents > span').text(credit_calc.params.percent_rate.toString() + '%'); if(credit_calc.pay_method == 'annuity'){ var month_rate = credit_calc.params.percent_rate/12/100; credit_calc.params.month_pay = Math.round(((credit_calc.params.credit_sum - credit_calc.params.first_pay_sum)*month_rate) / (1 - Math.pow(1+month_rate, -1*credit_calc.params.period))); $('div.aspro-result td.aspro-per-month > span').text(credit_calc.pretty_number(credit_calc.params.month_pay)); if(credit_calc.show_overpay){ var overpay = credit_calc.params.month_pay * credit_calc.params.period - credit_calc.params.total_sum; $("td.overpay > span").text(credit_calc.pretty_number(overpay, true)); } } // Изменение ссылки кнопки var _button = $(".aspro-credit-calc a.aspro-button-order"), _document_description = $(".aspro-credit-calc .aspro-documents input[type=radio]:checked").data('description'); _href = credit_calc.order_link_template .replace('#PRICE#', credit_calc.params.credit_sum) .replace('#FIRST_PAY#', credit_calc.params.first_pay_sum) .replace('#PERIOD#', credit_calc.params.period) .replace('#METHOD_PAY#', credit_calc.pay_method) .replace('#DOCUMENTS#', _document_description); _button.attr('href', _href); popup_period = credit_calc.params.period; popup_bank_name = bank.name; popup_credit_size = credit_calc.pretty_number(credit_calc.params.credit_sum); this.first_init = false; } this.build_table = function() { var per_month_pay = credit_calc.params.total_sum / credit_calc.params.period, total_overpay = 0; var _tbody = $("#credit-schedule > tbody"); $("#credit-schedule > tbody > tr").remove(); /*Browser detection patch*/ jQuery.browser = {}; jQuery.browser.mozilla = /mozilla/.test(navigator.userAgent.toLowerCase()) && !/webkit/.test(navigator.userAgent.toLowerCase()); jQuery.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase()); jQuery.browser.opera = /opera/.test(navigator.userAgent.toLowerCase()); jQuery.browser.msie = /msie/.test(navigator.userAgent.toLowerCase()); if($.browser.msie && ($.browser.version.slice(0,1) == "8" || $.browser.version.slice(0,1) == "9")){ _tbody.append($("").addClass('stupidie') .append($("")) .append($("")) .append($("")) .append($("")) .append($("")) .append($("")) ); } for(var i = 0; i < credit_calc.params.period; i++){ var balance = credit_calc.params.total_sum - (per_month_pay*i), // остаток задолженности pay_for_percents = balance * credit_calc.params.percent_rate / 12 /100, // начисленные проценты total_month_pay = per_month_pay + pay_for_percents; total_overpay += pay_for_percents; _tbody.append($("") .append($("").text(i+1)) .append($("").text(credit_calc.pretty_number(total_month_pay, true))) .append($("").text(credit_calc.pretty_number(pay_for_percents, true))) .append($("").text(credit_calc.pretty_number(per_month_pay, true))) .append($("").text(credit_calc.pretty_number(balance, true))) .append($("").text(credit_calc.pretty_number(credit_calc.params.total_sum - balance, true))) ); } $("td.overpay > span").text(credit_calc.pretty_number(total_overpay, true)); } this.normalize_result_table = function() { var _table = $(".aspro-result > table") if(_table.find("thead > tr > th:visible").size() == 2){ _table.find("th").css('text-align', 'center'); _table.find("td").css('text-align', 'center'); }else if(_table.find("thead > tr > th:visible").size() > 2){ _table.find("thead > tr > th:first").css('text-align', 'left'); _table.find("tbody > tr > td:first").css('text-align', 'left'); _table.find("thead > tr > th:last").css('text-align', 'right'); _table.find("tbody > tr > td:last").css('text-align', 'right'); } } this.pretty_number = function(text, round, delimiter) { if(!delimiter){ delimiter = ' '; } if(!round){ round = false; }else{ text = Math.round(text); } return text.toString().replace(new RegExp("(^\\d{"+(text.toString().length%3||-1)+"})(?=\\d{3})"),"$1"+delimiter).replace(/(\d{3})(?=\d)/g,"$1"+delimiter); } this.isNumber = function(n) { return !isNaN(parseFloat(n)) && isFinite(n); } }