function zHCIncome(vEvent) { //if (vEvent.propertyName != "value") return; var nIncome = zStrToInt(document.forms["calc"].elements["Income"].value); if (nIncome > 0) { document.forms["calc"].elements["MaxSum"].value = nIncome * 30; document.forms["calc"].elements["MaxPay"].value = (nIncome * 4) / 10; } else { document.forms["calc"].elements["MaxSum"].value = ""; document.forms["calc"].elements["MaxPay"].value = ""; } zHCMinPay(); } //zHCIncome /* -------------------------------------------------------------------------------- */ function zHCSum(vEvent) { //if (vEvent.propertyName != "value") return; var vSum = document.forms["calc"].elements["Sum"]; var nIncome = zStrToInt(document.forms["calc"].elements["Income"].value); var nMaxSum = zStrToInt(document.forms["calc"].elements["MaxSum"].value); if (nIncome > 0 && zStrToInt(vSum.value) > nMaxSum) vSum.style.color = "red"; else vSum.style.color = "#336633"; } //zHCSum /* -------------------------------------------------------------------------------- */ function zHCMinPay() { var vMinPay = document.forms["calc"].elements["MinPay"]; var nMinPay = zStrToInt(vMinPay.value); var nMaxPay = zStrToInt(document.forms["calc"].elements["MaxPay"].value); if (nMinPay > 0 && nMaxPay > 0 && nMaxPay < nMinPay) vMinPay.style.color = "red"; else vMinPay.style.color = "gray"; } //zHCMinPay /* -------------------------------------------------------------------------------- */ function zHCPeriod(obj) { //if (event.propertyName != "value") return; //if (zStrToInt(obj.value) < 1) obj.value = ""; document.forms["calc"].elements["Res1"].value = ""; document.forms["calc"].elements["OverPay"].value = ""; } //zHCPeriod /* -------------------------------------------------------------------------------- */ function zHCPayment(obj) { //if (event.propertyName != "value") return; //if (zStrToInt(obj.value) < 1) obj.value = ""; document.forms["calc"].elements["Res2"].value = ""; document.forms["calc"].elements["OverPay"].value = ""; } //zHCPayment /* -------------------------------------------------------------------------------- */ function zHCSource(vEvent) { //if (vEvent.propertyName != "value") return; var nSum = zStrToInt(document.forms["calc"].elements["Sum"].value); var nMonthly = zStrToInt(document.forms["calc"].elements["Percent"].value) / 1200; document.forms["calc"].elements["Res1"].value = ""; document.forms["calc"].elements["Res2"].value = ""; document.forms["calc"].elements["OverPay"].value = ""; var nMinPay = Math.round(nSum * nMonthly); if (nMinPay > 0) nMinPay++; if (nMinPay < 1) document.forms["calc"].elements["MinPay"].value = ""; else document.forms["calc"].elements["MinPay"].value = nMinPay; /* var vMaxPeriod = document.forms["calc"].elements["MaxPeriod"]; if (nSum < 1 || nMonthly <= 0) vMaxPeriod.value = ""; else { var nMaxPeriod = 1 - Math.log(1 - nSum * nMonthly / nMinPay) / Math.log(1 + nMonthly); nMaxPeriod = Math.round(nMaxPeriod / 12 * 10) / 10; vMaxPeriod.value = nMaxPeriod; if (nMaxPeriod > 20) vMaxPeriod.style.color = "red"; else vMaxPeriod.style.color = "gray"; } */ zHCMinPay(); } //zHCSource /* -------------------------------------------------------------------------------- */ function zHCLoan(nFlag) { var nSum = zStrToInt(document.forms["calc"].elements["Sum"].value); var nMonthly = zStrToInt(document.forms["calc"].elements["Percent"].value) / 1200; if (nSum < 1 || nMonthly <= 0) return(false); if (nFlag == 1) { var nMonthes = document.forms["calc"].elements["Period"].value * 12; if (nMonthes < 1) return(false); document.forms["calc"].elements["Payment"].value = ""; document.forms["calc"].elements["Res2"].value = ""; var vRes1 = document.forms["calc"].elements["Res1"]; var nPayment = nSum * nMonthly / (1 - 1 / Math.pow((1 + nMonthly), nMonthes - 1)); vRes1.value = Math.round(nPayment * 100) / 100; var nMaxPay = zStrToInt(document.forms["calc"].elements["MaxPay"].value); if (nMaxPay > 0 && zStrToInt(vRes1.value) > nMaxPay) vRes1.style.color = "red"; else vRes1.style.color = "gray"; document.forms["calc"].elements["OverPay"].value = Math.round(nPayment * nMonthes / nSum * 100) / 100; document.forms["calc"].elements["OverPay"].style.color = "gray"; } else if (nFlag == 2) { var nPayment = zStrToInt(document.forms["calc"].elements["Payment"].value); if (nPayment < 1) return(false); document.forms["calc"].elements["Period"].value = ""; document.forms["calc"].elements["Res1"].value = ""; var vRes2 = document.forms["calc"].elements["Res2"]; if (nPayment > nSum * nMonthly) { var nMonthes = 1 - Math.log(1 - nSum * nMonthly / nPayment) / Math.log(1 + nMonthly); document.forms["calc"].elements["OverPay"].value = Math.round(nPayment * nMonthes / nSum * 100) / 100; document.forms["calc"].elements["OverPay"].style.color = "gray"; vRes2.value = Math.round(nMonthes / 12 * 10) / 10; vRes2.style.color = "gray"; if (zStrToInt(vRes2.value) > 20) vRes2.style.color = "red"; else vRes2.style.color = "gray"; } else { vRes2.value = document.getElementById("infin").innerText; document.forms["calc"].elements["OverPay"].value = document.getElementById("infin").innerText; vRes2.style.color = "red"; document.forms["calc"].elements["OverPay"].style.color = "red"; } } return(false); } //zHCLoan /* -------------------------------------------------------------------------------- */ function zStrToInt(sPar, bFloat) { if (sPar.length == 0 || isNaN(sPar) || sPar == 0) return(0); while (sPar.substring(0, 1) == "0") sPar = sPar.substring(1, sPar.length); if (bFloat == true) return(parseFloat(sPar)); else return(parseInt(sPar)); } //zStrToInt /* -------------------------------------------------------------------------------- */ function zNumericField(obj, bFloat) { //if (event.propertyName != "value") return; if (bFloat == true) var nValue = parseFloat(obj.value); else var nValue = parseInt(obj.value); if (obj.value.toString() == nValue.toString() || obj.value.length == 0) ; //do nothing else if (isNaN(nValue)) obj.value = ""; else if (bFloat && obj.value.toString() == nValue.toString() + ".") ; //do nothing else if (obj.value != nValue) obj.value = nValue; } //zNumericField /* -------------------------------------------------------------------------------- */