$.fn.initCalc = function(){
var form = $(this);
$('input.nums',form).allowNums();
$('input.decmal',form).allowDecmal();
if(form.hasClass('osago')){
form.initCalcOsago();
}
form.submit(function(){
if(form.initCheck()){
var calc = $('input[name=calc]').val();
var result = '';
switch (calc) {
case 'credit':
result = form.calcCredit();
break;
case 'tnalog':
result = form.calcTnalog();
break;
case 'osago':
result = form.calcOsago();
break;
default:
break;
}
$('#popup-calc').Popup('show',{
title:'Результат расчётов',
content: '
' + result + '
'
});
}
return false;
});
return this;
}
$.fn.initCalcOsago = function(){
var form = $(this);
$('select[name=i_owner]',form).change(function(){
var inputs = $('input[name=i_unlimited],input[name=i_age],input[name=i_standing]',form);
switch (parseFloat($(this).val())) {
case 2:
inputs.parent().parent().slideUp();
inputs.attr('disabled','disabled')
break;
case 1:
inputs.removeAttr('disabled')
inputs.parent().parent().slideDown();
break;
default:
break;
}
});
}
$.fn.initCheck = function(){
var form = $(this);
var check_required = $('label > b',form).parent().parent().find('select,input,textarea').not(':not([name=model]):disabled').checkRequired();
var check_format = $('input[type=text]',form).checkFormat();
return (check_required && check_format);
}
$.fn.calcOsago = function(){
var form = $(this);
var result = '';
var owner = parseFloat($('select[name=i_owner]',form).val());
var type = parseFloat($('select[name=i_type]',form).val());
var standing = parseFloat($('input[name=i_standing]',form).val());
var age = parseFloat($('input[name=i_age]',form).val());
var power = parseFloat($('input[name=i_power]',form).val());
var KS = 1;
switch (parseFloat($('select[name=i_useperiod]',form).val())) {
case 3:{KS = 0.4;break;}
case 4:{KS = 0.5;break;}
case 5:{KS = 0.6;break;}
case 6:{KS = 0.7;break;}
case 7:{KS = 0.8;break;}
case 8:{KS = 0.9;break;}
case 9:{KS = 0.95;break;}
case 10:{KS = 1;break;}
}
var KO = 1;
switch (owner) {
case 1:
KO = $('input[name=i_unlimited]:checked',form).length ? 1.7 : 1;
break;
case 2:
KO = 1.7;
break;
default:
break;
}
var KT = 1;
switch (parseFloat($('select[name=i_region]',form).val())) {
case 1:
KT = (type == 11 || type == 14) ? 1.3 : 0.8;
break;
case 2:
KT = (type == 11 || type == 14) ? 1 : 0.8;
break;
case 3:
KT = (type == 11 || type == 14) ? 0.65 : 0.5;
break;
default:
break;
}
var KBM = 1;
switch (parseFloat($('select[name=i_classbm]',form).val())) {
case -1:{KBM = 2.45;break;}
case 0:{KBM = 2.3;break;}
case 1:{KBM = 1.55;break;}
case 2:{KBM = 1.4;break;}
case 3:{KBM = 1;break;}
case 4:{KBM = 0.95;break;}
case 5:{KBM = 0.9;break;}
case 6:{KBM = 0.85;break;}
case 7:{KBM = 0.8;break;}
case 8:{KBM = 0.75;break;}
case 9:{KBM = 0.7;break;}
case 10:{KBM = 0.65;break;}
case 11:{KBM = 0.6;break;}
case 12:{KBM = 0.55;break;}
case 13:{KBM = 0.5;break;}
}
var TB = 1980;
switch (type) {
case 1:{TB = 1215;break;}
case 2:{TB = owner == 1 ? 1980 : 2375;break;}
case 3:{TB = 2965;break;}
case 4:{TB = 2025;break;}
case 5:{TB = 3240;break;}
case 6:{TB = 1620;break;}
case 7:{TB = 2025;break;}
case 8:{TB = 2965;break;}
case 9:{TB = 1620;break;}
case 10:{TB = 1010;break;}
case 11:{TB = 1215;break;}
case 12:{TB = 395;break;}
case 13:{TB = 810;break;}
case 14:{TB = 305;break;}
}
var KVS = 1;
if(age <= 22 && standing <= 3) KVS = 1.7;
else if(age <= 22 && standing > 3) KVS = 1.5;
else if(age > 22 && standing <= 3) KVS = 1.3;
else if(age > 22 && standing > 3) KVS = 1;
var KM = 1;
if(power <= 50) KM = 0.6;
else if(power > 50 && power <= 70) KM = 0.9;
else if(power > 70 && power <= 100) KM = 1;
else if(power > 100 && power <= 120) KM = 1.2;
else if(power > 120 && power <= 150) KM = 1.4;
else if(power > 150) KM = 1.6;
var KN = $('input[name=i_violations]:checked',form).length ? 1.7 : 1;
var T = 0;
if(type >= 2 && type <= 3){
if(owner == 1){
T = TB * KT * KBM * KVS * KO * KM * KS * KN;
} else {
KO = 1.7;
T = TB * KT * KBM * KO * KM * KN;
}
}
else if((type >= 4 && type <= 11) || type == 1){
if(owner == 1){
T = TB * KT * KBM * KVS * KO * KS * KN;
} else {
KO = 1.7;
T = TB * KT * KBM * KO * KN;
}
}
else if(type >= 12){
T = TB * KT * KS;
}
result += ''
result += 'ТБ: ' + TB + ' ';
result += 'КТ: ' + KT + ' ';
result += 'КВМ: ' + KBM + ' ';
result += 'КО: ' + KO + ' ';
result += 'КВС: ' + KVS + ' ';
result += 'КМ: ' + KM + ' ';
result += 'КС: ' + KS + ' ';
result += 'КН: ' + KN + ' ';
result += ' | Итого: ' + T.toFixed(2) + ' рублей';
result += ' |
';
return result;
}
$.fn.calcCredit = function(){
var form = $(this);
var result = '';
var type = $('select[name=type]',form).val();
var credit = parseFloat($('input[name=credit]',form).val()); //сумма кредита
var period = parseFloat($('input[name=period]',form).val()); //период
var rate = parseFloat($('input[name=rate]',form).val());
rate = rate / (12 * 100); //процентная ставка
var pay_month;
var pay_percent;
switch (type) {
case '1':
pay_month = '';
pay_percent = (credit * rate * (period+1)) / 2;
for(var i = 0; i < period; i++) {
var tmp = (credit / period) + (credit * (period - i) * rate / period);
pay_month += 'платёж ' + (i+1) + ': ' + tmp.toFixed(2) + '';
}
result += 'Ежемесячный платёж:
Сумма процентов: ' + pay_percent.toFixed(2) + '
';
break;
case '2':
pay_month = (credit * rate) / (1 - 1/(Math.pow((1+rate),period)));
pay_percent = (pay_month * period) - credit;
result += 'Ежемесячный платёж: ' + pay_month.toFixed(2) + '
Сумма процентов: ' + pay_percent.toFixed(2) + '
';
break;
default:
break;
}
result += 'Расчёты являются приблизительными, за более точной информацией и расчетами обращайтесь в банк
';
return result;
}
$.fn.calcTnalog = function(){
var form = $(this);
var year = 2012;
var typecar = parseFloat($('select[name=typecar]', form).val());
var power = parseFloat($('input[name=power]', form).val());
var years = year - parseFloat($('select[name=godvipusk]', form).val());
var typepower = parseFloat($('select[name=typepower]', form).val());
var mes = parseFloat($('select[name=mesup]', form).val()) - parseFloat($('select[name=mesdown]', form).val()) + 1;
var stavka = 0;
if(typepower == 2){
power = (power * 1000) / 735.49875;
}
if(typecar == 1){
if(years < 7){
if(power <= 100){
stavka = 10.5;
} else if(power > 100 && power <= 150){
stavka = 14.5;
} else if(power > 150 && power <= 200){
stavka = 35;
} else if(power > 200 && power <= 250){
stavka = 52.5;
} else if(power > 250){
stavka = 105;
}
} else if(years >= 7){
if(power <= 100){
stavka = 6.5;
} else if(power > 100 && power <= 150){
stavka = 9.5;
} else if(power > 150 && power <= 200){
stavka = 30.5;
} else if(power > 200 && power <= 250){
stavka = 46;
} else if(power > 250){
stavka = 92.5;
}
}
} else if(typecar == 2) {
if(years < 7){
if(power <= 20){
stavka = 4;
} else if(power > 20 && power <= 35){
stavka = 7;
} else if(power > 35 && power <= 40){
stavka = 10;
} else if(power > 40){
stavka = 13;
}
} else if(years >= 7){
if(power <= 20){
stavka = 2.5;
} else if(power > 20 && power <= 35){
stavka = 5;
} else if(power > 35 && power <= 40){
stavka = 6;
} else if(power > 40){
stavka = 8;
}
}
} else if(typecar == 3) {
if(power <= 200){
stavka = 20;
} else if(power > 200){
stavka = 39.5;
}
} else if(typecar == 4) {
if(power <= 100){
stavka = 10.5;
} else if(power > 100 && power <= 150){
stavka = 16;
} else if(power > 150 && power <= 200){
stavka = 20;
} else if(power > 200 && power <= 250){
stavka = 26.5;
} else if(power > 250){
stavka = 34.5;
}
} else if(typecar == 5) {
if(power <= 50){
stavka = 10.5;
} else if(power > 50){
stavka = 20;
}
} else if(typecar == 6) {
if(power <= 100){
stavka = 6.5;
} else if(power > 100){
stavka = 39.5;
}
} else if(typecar == 7) {
if(power <= 100){
stavka = 100;
} else if(power > 100){
stavka = 200;
}
} else if(typecar == 8) {
if(power <= 100){
stavka = 87.5;
} else if(power > 100){
stavka = 175;
}
} else if(typecar == 9) {
stavka = 39.5;
} else if(typecar == 10) {
stavka = 50.5;
} else if(typecar == 11) {
stavka = 39.5;
} else if(typecar == 12) {
stavka = 396.5;
}
var tnalog = Math.floor(((stavka * power) / 12) * mes);
return 'Транспортный налог на ' + year + ' год составит: ' + tnalog + ' рублей
';
}
$(document).ready(function(){
$("form.calc").initCalc();
});