
function pocitaj()
{

// vstupne hodnoty

poczam = new Number (document.frm.vstupc5.value);
mzda = new Number (document.frm.vstupc6.value);
penze1 = new Number (document.frm.vstupc9.value);
zivot1 = new Number (document.frm.vstupc10.value);

deti = new Number (document.frm.vstupc16.value);
manzelka = new Number (document.frm.vstupc17.value);
penze2 = new Number (document.frm.vstupc20.value);
zivot2 = new Number (document.frm.vstupc21.value);

danprijem1 = new Number (document.frm.amnc7.value);
danszp1 = new Number (document.frm.amnc8.value);

danprijem2 = new Number (document.frm.amng4.value);
danszp2 = new Number (document.frm.amng5.value);

celkem1 = penze1+zivot1;
celkem2 = penze2+zivot2;

document.frm.vstupc11.value = celkem1;
document.frm.vstupc22.value = celkem2;

document.frm.amnc12.value = mzda;

// odpocitatelne polozky

naosobu = 24840;
nadeti = 10680;
namanzelku = naosobu;

pfrocmin = 6000;
pfrocmax = 18000;
zivotrocmin = 0;
zivotrocmax = 12000;

pfmesmin = pfrocmin/12;
pfmesmax = pfrocmax/12;
zivotmesmin = zivotrocmin/12;
zivotmesmax = zivotrocmax/12;

pfzproc = 24000;
pfzpmes = pfzproc/12;

priemmzda = 21560;
stroproc = priemmzda*48;
stropmes = priemmzda*4;

if(stropmes < mzda) szp1 = stropmes*danszp1/100;
else szp1 = mzda*danszp1/100;

document.frm.amnc13.value = Math.round(szp1);
document.frm.amnc14.value = Math.round(mzda+szp1);

slevanaosobu = naosobu/12;
slevanamanzelku = namanzelku/12*manzelka;
dandeti = nadeti/12*deti;

document.frm.amng6.value = Math.round(slevanaosobu);
document.frm.amng7.value = Math.round(slevanamanzelku);
document.frm.amng8.value = Math.round(dandeti);

// statni prispevek

if(penze2 < 100) {
  prispzakl = 0;
  prispplus = 0;
  prispmin = 0;
}
else if(penze2 < 200)
{
  prispzakl = 50;
  prispplus = 0.4;
  prispmin = 100;
}
else if(penze2 < 300) {
  prispzakl = 90;
  prispplus = 0.3;
  prispmin = 200;
}
else if(penze2 < 400) {
  prispzakl = 120;
  prispplus = 0.2;
  prispmin = 300;
}
else if(penze2 < 500) {
  prispzakl = 140;
  prispplus = 0.1;
  prispmin = 400;
}
else {
  prispzakl = 150;
  prispplus = 0;
  prispmin = 500;
}

prispevek = Math.ceil(prispzakl + prispplus*(penze2 - prispmin));


document.frm.amng11.value = Math.round(mzda);

if(stropmes < mzda) szp2 = -stropmes*danszp2/100;
else szp2 = -mzda*danszp2/100;

document.frm.amng12.value = Math.round(szp2);

// vypocet dane

zakladszp1 = Math.ceil(12*mzda);
if(zakladszp1 < stroproc) dilciz1 = zakladszp1 + zakladszp1 * danszp1 / 100;
else dilciz1 = zakladszp1 + stroproc * danszp1 / 100;
if(dilciz1 <= 0) zaokrdz1 = 0;
else zaokrdz1 = Math.floor(dilciz1/100)*100;
danfoif = zaokrdz1 * danprijem2 / 100 - 12 * ( slevanaosobu + slevanamanzelku );
if(danfoif > 0) danfo = danfoif - 12 * dandeti;
else danfo = -12 * dandeti;
danfo = - danfo / 12;

document.frm.amng13.value = Math.round(danfo);

vychoziprijem = mzda + szp2 + danfo;

document.frm.amng14.value = Math.round(vychoziprijem);

// prvy text

if(penze1 > 0 && zivot1 <= 0) text01typ = "PP";
else if(penze1 <= 0 && zivot1 > 0) text01typ = "ZP";
else text01typ = "OB";
if(text01typ == "ZP") text1 = "Příspěvek zaměstnavatele ve výši "+zivot1+" Kč měsíčně na životní pojištění";
else if(text01typ == "OB") text1 = "Příspěvek zaměstnavatele ve výši "+penze1+" Kč měsíčně na penzijní připojištění a ve výši "+zivot1+" Kč měsíčně na životní pojištění";
else text1 = "Příspěvek zaměstnavatele ve výši "+penze1+" Kč měsíčně na penzijní připojištění";

document.getElementById('text01').innerHTML = text1;

// vyhody

document.frm.amnb20.value = Math.round(celkem1);
document.frm.amnc20.value = Math.round(celkem1);
document.frm.amnf20.value = Math.round(celkem1);
document.frm.amng20.value = Math.round(celkem1);

zakladszp2 = Math.ceil(12*mzda);
zakladszp4 = Math.ceil(12*(mzda + celkem1));
if(zakladszp4 < stroproc)
{
  if(zakladszp2 < stroproc) vyhoda1szp1 = (zakladszp4 - zakladszp2) * danszp1 / 100 / 12;
  else vyhoda1szp1 = (zakladszp4 - stroproc) * danszp1 / 100 / 12;
}
else
{
  if(zakladszp2 < stroproc) vyhoda1szp1 = (stroproc - zakladszp2) * danszp1 / 100 / 12;
  else vyhoda1szp1 = (stroproc - stroproc) * danszp1 / 100 / 12;
}
 
document.frm.amnb21.value = Math.round(vyhoda1szp1);

zakladszp6a = penze1 + zivot1 - pfzpmes;
if(zakladszp6a > 0) zakladszp6 = Math.ceil(12*(mzda + zakladszp6a));
else zakladszp6 = Math.ceil(12*mzda);
if(zakladszp6 < stroproc)
{
  if(zakladszp2 < stroproc) vyhoda1szp2 = (zakladszp6 - zakladszp2) * danszp1 / 100 / 12;
  else vyhoda1szp2 = (zakladszp6 - stroproc) * danszp1 / 100 / 12;
}
else
{
  if(zakladszp2 < stroproc) vyhoda1szp2 = (stroproc - zakladszp2) * danszp1 / 100 / 12;
  else vyhoda1szp2 = (stroproc - stroproc) * danszp1 / 100 / 12;
}

document.frm.amnc21.value = Math.round(vyhoda1szp2);

celkomnaklady1 = celkem1 + vyhoda1szp1;
celkomnaklady2 = celkem1 + vyhoda1szp2;

document.frm.amnb22.value = Math.round(celkomnaklady1);
document.frm.amnc22.value = Math.round(celkomnaklady2);

usporames = celkomnaklady1 - celkomnaklady2;
usporarok = usporames*12;
usporavsetci = usporarok*poczam;

document.frm.amnc24.value = Math.round(usporames);
document.frm.amnb25.value = Math.round(usporarok);
document.frm.amnb26.value = Math.round(usporavsetci);

if(poczam < 5 && poczam > 0) text2 = "Úspora na "+poczam+" zaměstnance za rok";
else text2 = "Úspora na "+poczam+" zaměstnanců za rok"
document.getElementById('text02').innerHTML = text2;

if(zakladszp4 < stroproc)
{
  if(zakladszp2 < stroproc) vyhoda2szp1 = - (zakladszp4 - zakladszp2) * danszp2 / 100 / 12;
  else vyhoda2szp1 = - (zakladszp4 - stroproc) * danszp2 / 100 / 12;
}
else
{
  if(zakladszp2 < stroproc) vyhoda2szp1 = - (stroproc - zakladszp2) * danszp2 / 100 / 12;
  else vyhoda2szp1 = - (stroproc - stroproc) * danszp2 / 100 / 12;
}
if(zakladszp6 < stroproc)
{
  if(zakladszp2 < stroproc) vyhoda2szp2 = - (zakladszp6 - zakladszp2) * danszp2 / 100 / 12;
  else vyhoda2szp2 = - (zakladszp6 - stroproc) * danszp2 / 100 / 12;
}
else
{
  if(zakladszp2 < stroproc) vyhoda2szp2 = - (stroproc - zakladszp2) * danszp2 / 100 / 12;
  else vyhoda2szp2 = - (stroproc - stroproc) * danszp2 / 100 / 12;
}


document.frm.amnf21.value = Math.round(vyhoda2szp1);
document.frm.amng21.value = Math.round(vyhoda2szp2);

if(zakladszp2 < stroproc) dd1 = zakladszp2;
else dd1 = stroproc;
if(penze2 < pfmesmax) dd2 = penze2;
else dd2 = pfmesmax;
dd3 = dd2 - pfmesmin;
if(dd3 > 0) dd4 = dd3;
else dd4 = 0;
if(zivot2 < zivotmesmax) dd5 = zivot2;
else dd5 = zivotmesmax;

dilciz2 = zakladszp2 + dd1 * danszp1 / 100 - (dd4 + dd5) * 12;
if(dilciz2 <= 0) zaokrdz2 =  0;
else zaokrdz2 = Math.floor(dilciz2/100)*100;

dan2x = zaokrdz2 * danprijem2 / 100 - 12 * (slevanaosobu + slevanamanzelku);
if(dan2x > 0) dan2 = dan2x - 12 * dandeti;
else dan2 = - 12 * dandeti;

if(zakladszp4 < stroproc) ddd1 = zakladszp4;
else ddd1 = stroproc;
if(penze2 < pfmesmax) ddd2 = penze2;
else ddd2 = pfmesmax;
ddd3 = ddd2 - pfmesmin;
if(ddd3 > 0) ddd4 = ddd3;
else ddd4 = 0;
if(zivot2 < zivotmesmax) ddd5 = zivot2;
else ddd5 = zivotmesmax;

dilciz4 = zakladszp4 + ddd1 * danszp1 / 100 - (ddd4 + ddd5) * 12;
if(dilciz4 <= 0) zaokrdz4 =  0;
else zaokrdz4 = Math.floor(dilciz4/100)*100;

dan4x = zaokrdz4 * danprijem2 / 100 - 12 * (slevanaosobu + slevanamanzelku);
if(dan4x > 0) dan4 = dan4x - 12 * dandeti;
else dan4 = - 12 * dandeti;

dpfo1 = - (dan4 - dan2) / 12;

document.frm.amnf22.value = Math.round(dpfo1);

if(zakladszp6 < stroproc) dddd1 = zakladszp6;
else dddd1 = stroproc;
if(penze2 < pfmesmax) dddd2 = penze2;
else dddd2 = pfmesmax;
dddd3 = dddd2 - pfmesmin;
if(dddd3 > 0) dddd4 = dddd3;
else dddd4 = 0;
if(zivot2 < zivotmesmax) dddd5 = zivot2;
else dddd5 = zivotmesmax;

dilciz6 = zakladszp6 + dddd1 * danszp1 / 100 - (dddd4 + dddd5) * 12;
if(dilciz6 <= 0) zaokrdz6 =  0;
else zaokrdz6 = Math.floor(dilciz6/100)*100;

dan6x = zaokrdz6 * danprijem2 / 100 - 12 * (slevanaosobu + slevanamanzelku);
if(dan6x > 0) dan6 = dan6x - 12 * dandeti;
else dan6 = - 12 * dandeti;

dpfo2 = - (dan6 - dan2) / 12;

document.frm.amng22.value = Math.round(dpfo2);

cistyprijem1 = celkem1 + vyhoda2szp1 + dpfo1;
cistyprijem2 = celkem1 + vyhoda2szp2 + dpfo2;
navicmes = cistyprijem2 - cistyprijem1;
navicrok = navicmes*12;

document.frm.amnf23.value = Math.round(cistyprijem1);
document.frm.amng23.value = Math.round(cistyprijem2);
document.frm.amng25.value = Math.round(navicmes);
document.frm.amnf26.value = Math.round(navicrok);

// druhy text

if(penze2 > 0 && zivot2 <= 0) text03typ = "PP";
else if(penze2 <= 0 && zivot2 > 0) text03typ = "ZP";
else text03typ = "OB";

if(text03typ == "ZP") text3 = "Vlastní příspěvek zaměstnance ve výši "+zivot2+" Kč měsíčně na životní pojištění";
else if(text03typ == "OB") text3 = "Vlastní příspěvek zaměstnance ve výši "+penze2+" Kč měsíčně na penzijní připojištění a ve výši "+zivot2+" Kč měsíčněna životní pojištění";
else text3 = "Vlastní příspěvek zaměstnance ve výši "+penze2+" Kč měsíčně na penzijní připojištění";

document.getElementById('text03').innerHTML = text3;

// Výhody z vlastního příspěvku zaměstnance

if(zakladszp6 < stroproc) pozdaneni6 = 12 * (mzda - (penze2 + zivot2)) - zakladszp6 * danszp2 / 100 - dan6;
else pozdaneni6 = 12 * (mzda - (penze2 + zivot2)) - stroproc * danszp2 / 100 - dan6;
ciste6 = pozdaneni6 / 12;

zakladszp5a = penze1 + zivot1 - pfzpmes;
if(zakladszp5a > 0) zakladszp5 = Math.ceil(12*(mzda + zakladszp5a));
else zakladszp5 = Math.ceil(12*mzda);

if(zakladszp5 < stroproc) dilciz5 = zakladszp5 + zakladszp5 * danszp1 / 100;
else dilciz5 = zakladszp5 + stroproc * danszp1 / 100;
if(dilciz5 <= 0) zaokrdz5 =  0;
else zaokrdz5 = Math.floor(dilciz5/100)*100;

dan5x = zaokrdz5 * danprijem2 / 100 - 12 * (slevanaosobu + slevanamanzelku);
if(dan5x > 0) dan5 = dan5x - 12 * dandeti;
else dan5 = - 12 * dandeti;

if(zakladszp5 < stroproc) pozdaneni5 = 12 * mzda - zakladszp5 * danszp2 / 100 - dan5;
else pozdaneni5 = 12 * mzda - stroproc * danszp2 / 100 - dan5;
ciste5 = pozdaneni5 / 12;

usporadane = ciste6 - ciste5 + penze2 + zivot2;
vyhodycelkem = usporadane + prispevek;
vyhodycelkemrok = vyhodycelkem*12;
sumames = vyhodycelkem + navicmes;
sumarok = vyhodycelkemrok + navicrok;

document.frm.amnc32.value = Math.round(usporadane);
document.frm.amnc33.value = Math.round(prispevek);
document.frm.amnc34.value = Math.round(vyhodycelkem);
document.frm.amnf32.value = Math.round(vyhodycelkem);
document.frm.amng32.value = Math.round(vyhodycelkemrok);
document.frm.amnf33.value = Math.round(navicmes);
document.frm.amng33.value = Math.round(navicrok);
document.frm.amnf34.value = Math.round(sumames);
document.frm.amng34.value = Math.round(sumarok);

// posledne texty

if(text01typ == "ZP") text4 = "Pokud zaměstnavatel místo zvýšení vyměřovacího základu zaměstnance o "+celkem1+" Kč mu přispěje "+zivot1+" Kč na životní pojištění měsíčně, čistý roční příjem zaměstnance vzroste o "+Math.round(navicrok)+" Kč.";
else if(text01typ == "OB") text4 = "Pokud zaměstnavatel místo zvýšení vyměřovacího základu zaměstnance o "+celkem1+" Kč mu přispěje "+penze1+" Kč na penzijní připojištění a "+zivot1+" Kč na životní pojištění měsíčně, čistý roční příjem zaměstnance vzroste o "+Math.round(navicrok)+" Kč.";
else text4 = "Pokud zaměstnavatel místo zvýšení vyměřovacího základu zaměstnance o "+celkem1+" Kč mu přispěje "+penze1+" Kč na penzijní připojištění měsíčně, čistý roční příjem zaměstnance vzroste o "+Math.round(navicrok)+" Kč.";

if((poczam>=40 && poczam<50) || (poczam>=70 && poczam<80) || (poczam>=100 && poczam<200) || (poczam>=400 && poczam<500) || (poczam>=700 && poczam<800) || poczam==2 || poczam==3 || poczam==4 || poczam==7 || poczam==14 || poczam==17) predlozka = "se";
else predlozka = "s";
if(poczam==1) textzam = "zaměstnancem";
else textzam = "zaměstnanci";

if(text01typ == "ZP") text5 = "Pokud se zaměstnavatel "+predlozka+" "+poczam+" "+textzam+" rozhodne každému z nich přispívat "+zivot1+" Kč na životní pojištění měsíčně, uspoří na nákladech "+usporavsetci+" Kč ročně oproti tomu, kdyby o stejnou částku navýšil vyměřovací základ zaměstnance.";
if(text01typ == "OB") text5 = "Pokud se zaměstnavatel "+predlozka+" "+poczam+" "+textzam+" rozhodne každému z nich přispívat "+penze1+" Kč na penzijní připojištění a "+zivot1+" Kč na životní pojištění měsíčně, uspoří na nákladech "+usporavsetci+" Kč ročně oproti tomu, kdyby o stejnou částku navýšil vyměřovací základ zaměstnance.";
else text5 = "Pokud se zaměstnavatel "+predlozka+" "+poczam+" "+textzam+" rozhodne každému z nich přispívat "+penze1+" Kč na penzijní připojištění měsíčně, uspoří na nákladech "+usporavsetci+" Kč ročně oproti tomu, kdyby o stejnou částku navýšil vyměřovací základ zaměstnance.";

document.getElementById('text04').innerHTML = text4;
document.getElementById('text05').innerHTML = text5;

}
