// // работаем только с браузерами поддерживающими DOM или IE4 // var DOM = (document.getElementById) ? true : false; var chIE4 = (document.all && document.all.item) ? true : false; var IE4 = (chIE4 && !DOM) ? true : false; function currencyFormat_int(fld, e, length) // onKeyPress="return(currencyFormat_int(this,event,length))" { var ch = ''; var strCheck = '0123456789'; if(IE4) { if(window.event.keyCode > 0) ch=String.fromCharCode(window.event.keyCode); } else { if(e.keyCode>0) ch=String.fromCharCode(e.keyCode); else if(e.charCode>0) ch=String.fromCharCode(e.charCode); } if( strCheck.indexOf(ch) == -1 ) return false; // Not a valid key if( fld.value.charAt(0) == '0' ) { fld.value = fld.value.substr(1); } if( fld.value.length < length ) { fld.value += ch; } return false; } // Round all passed numbers to two // decimal places (hundredths place) function round(number,decPlace) { decPlace = (!decPlace ? 2 : decPlace); return Math.round(number * Math.pow(10,decPlace)) / Math.pow(10,decPlace); } function roundMoney(number) { number = number.toString(); if( number.indexOf('.') != -1 ) { var sum = number.split(/\./) var part1 = sum[0] var part2 = sum[1] if( part2 != undefined ) { if( part2.length > 2 ) { if( Number(part2.charAt(2)) > 0 ) { return round(Number(part1 + '.' + part2.substr(0, 2)) + 0.01) } else { return part1 + '.' + part2.substr(0, 2); } } return part1 + '.' + part2; } } return round(number); } function getObject(obj) { var Obj; if (typeof obj != "object") { if (DOM) { Obj = document.getElementById(obj); } else if (IE4) { Obj = document.all[obj]; } } else if (obj) { Obj = obj; } return Obj; } // decimal places var decimalPlace = 6; //Cols var arrCols = new Array (new Array(12, 120), new Array (120, 240), new Array(240, 360)); var arrRows = new Array (new Array(30, 50), new Array (50, 70), new Array(70, 90)); var arrPerc = new Array (new Array(10.75, 12.0, 13.5), new Array(11.0, 12.25, 13.75), new Array(11.25, 12.5, 14.0)) //платеж не более % от дохода заемщика var ShareIncome = 50.0 var arrFVal = new Array (new Array("ppay","cost","income","year"), new Array("kz","percent","incomeperc","apay")); function currencyFormat_int(fld, e, length) // onKeyPress="return(currencyFormat_int(this,event,length))" { var ch = ''; var strCheck = '0123456789'; if(IE4) { if(window.event.keyCode > 0) ch=String.fromCharCode(window.event.keyCode); } else { if(e.keyCode>0) ch=String.fromCharCode(e.keyCode); else if(e.charCode>0) ch=String.fromCharCode(e.charCode); } if( strCheck.indexOf(ch) == -1 ) return false; // Not a valid key if( fld.value.charAt(0) == '0' ) { fld.value = fld.value.substr(1); } if( fld.value.length < length ) { fld.value += ch; } return false; } // Round all passed numbers to two // decimal places (hundredths place) function round(number,decPlace) { decPlace = (!decPlace ? 2 : decPlace); return Math.round(number * Math.pow(10,decPlace)) / Math.pow(10,decPlace); } function roundMoney(number) { number = number.toString(); if( number.indexOf('.') != -1 ) { var sum = number.split(/\./) var part1 = sum[0] var part2 = sum[1] if( part2 != undefined ) { if( part2.length > 2 ) { if( Number(part2.charAt(2)) > 0 ) { return round(Number(part1 + '.' + part2.substr(0, 2)) + 0.01) } else { return part1 + '.' + part2.substr(0, 2); } } return part1 + '.' + part2; } } return round(number); } function getObject(obj) { var Obj; if (typeof obj != "object") { if (DOM) { Obj = document.getElementById(obj); } else if (IE4) { Obj = document.all[obj]; } } else if (obj) { Obj = obj; } return Obj; } function clearF(dat, idx) { if( idx == undefined ) { for( var i=0; i= arr[i][0]) && (c <= arr[i][1]) ) { ret=i; break; } } else { if( (c > arr[i][0]) && (c <= arr[i][1]) ) { ret=i; break; } } } return ret; } function calc(dat) { var ppay = parseInt(dat.ppay.value) var cost = parseInt(dat.cost.value) var income = parseInt(dat.income.value) var year = parseInt(dat.year.value) var percent = 0 var emess = "" clearF(dat, 1) if( isNaN(ppay) || isNaN(cost) || isNaN(income) || isNaN(year) ) { viewD("Неправильный ввод данных!") return false } var month = year*12 var credit = cost-ppay if( month < arrCols[0][0] || month > arrCols[arrCols.length-1][1] ) { viewD("Срок кредита должен быть от "+ arrCols[0][0] +" до "+ arrCols[arrCols.length-1][1] +" месяцев.") return false } var KZ = round(((cost-ppay)/cost)*100, decimalPlace) var col1 = Cols(month, arrCols) var col2 = Cols(KZ, arrRows) if( col2 < 0 ) { viewD("Недопустимая разница между суммой кредита и первоначальным взносом.") return false } percent = arrPerc[col1][col2] var mpercent = round(percent/12/100, decimalPlace) var apay = credit * ( mpercent / (1-Math.pow((1+mpercent),(-(month-2))))) var incomeperc = roundMoney((apay/income)*100) if( incomeperc > ShareIncome ) { viewD("Платеж по требуемому кредиту превышает разрешенное значение доли Ваших доходов.") return false } dat.kz.value=roundMoney(KZ) dat.percent.value=percent dat.apay.value=roundMoney(apay) dat.incomeperc.value=incomeperc }