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);
}
}