есть отдельный скрипт непосредственно для рассчёта калькулятора.
я сначала подумал, что можно обойтись без него, но тут привязана часть функционала.
оттуда и лезет ошибка с планами
plans[p] is undefined
function round2(z)
{
z = (1*z).toFixed(2);
return 1*z;
}
function recalc()
{
var sum=round2(document.forms['calc']['sum'].value);
if (sum<=0) sum=0;
var prib=0;
{*
var cmpd=0;
var radios=document.getElementsByName('cmpd');
for (i=0; i<radios.length; i++)
if (radios[i].checked)
{
cmpd=radios[i].value;
break;
}
*}
var cmpd=document.forms['calc']['cmpd'];
if (cmpd==undefined)
{
cmpd=0;
}
else
{
cmpd=cmpd.value;
}
document.getElementById('cmpd').innerHTML=cmpd;
var days=document.forms['calc']['days'];
if (days==undefined)
{
days=0;
}
else
{
days=days.value;
}
var plans=[{$calc_plans}];
var pn='?';
var pd='?';
var ip='?';
var db='?';
var dr='?';
var dd='?';
var p=document.forms['calc']['plan'];
if (p==undefined)
{
for (var p in plans)
if ((sum>=plans[p][1]) & (sum<plans[p][2]))
{
pn=plans[p][0];
pd=plans[p][3];
ip=plans[p][4];
db=plans[p][5];
dr=plans[p][6];
dd=plans[p][7];
break;
}
}
else
{
p=p.value;
pn=plans[p][0];
pd=plans[p][3];
ip=plans[p][4];
db=plans[p][5];
dr=plans[p][6];
dd=plans[p][7];
}
if (pn!='?')
{
if (ip == 0)
{
ip = days;
dd = days;
}
sum=round2(sum+db*sum/100);
zcomp=0;
for (i=0; i<ip; i++)
{
profit=round2(pd*sum/100);
csum=round2(cmpd*profit/100);
zcomp=zcomp+csum;
prib=prib+profit-csum;
sum=sum+csum;
}
sum=round2(dr*(sum-zcomp)/100);
}
document.getElementById('plan').innerHTML=pn;
document.getElementById('bonus').innerHTML=db;
document.getElementById('profit').innerHTML=pd;
document.getElementById('period').innerHTML=ip;
document.getElementById('days').innerHTML=dd;
document.getElementById('prib').innerHTML=round2(prib+zcomp);
document.getElementById('return').innerHTML=dr;
document.getElementById('prib2').innerHTML=round2(sum+prib+zcomp);
}
recalc();