  function ESSOX_aktualizuj(typ) {
    return eval("ESSOX_splatkyJS_" + typ + "(ESSOX_get('ESSOX_" + typ + "_cena'),ESSOX_get('ESSOX_" + typ + "_akontace'),ESSOX_get('ESSOX_" + typ + "_pocetSplatek'))");
  }

  function ESSOX_get(el) {
  return (document.getElementById(el).type=="select") ? document.getElementById(el).options[document.getElementById(el).selectedIndex].value : document.getElementById(el).value;
  }
  
  function ESSOX_maxCastka(typZbozi,akontace) {
  akontace *= 1; typZbozi *= 1; 
  switch (typZbozi) {
    case 1: switch (akontace) {case 0: max = 40000; break; case 10: max = 60000; break; case 20: max = 80000; break; case 30: case 40: case 50: case 60: case 70: max = 200000; break; default: max = false;} break;
    case 2: switch (akontace) {case 0: max = 20000; break; case 10: max = 40000; break; case 20: max = 60000; break; case 30: case 40: case 50: case 60: case 70: max = 200000; break; default: max = false;} break; 
    case 3: switch (akontace) {case 0: max = 20000; break; case 10: max = 40000; break; case 20: max = 60000; break; case 30: case 40: case 50: case 60: case 70: max = 200000; break; default: max = false;} break; 
    default: max = false;
  }
  return max;
  }
  
function setContent(el,res) {
if (document.getElementById(el).textContent) document.getElementById(el).textContent = res;
else document.getElementById(el).innerText = res;
}

function rozdilDnu(pujcDen,pujcMes,pujcRok,splDen,splMes,splRok)
{
    pujcDen = parseInt(pujcDen);
	pujcMes = parseInt(pujcMes);
	pujcRok = parseInt(pujcRok);
    splDen = parseInt(splDen);
	splMes = parseInt(splMes);
	splRok = parseInt(splRok);
    if (pujcMes <= 2) { pujcRok -=1; pujcMes +=12; }
	a = Math.floor( pujcRok/100 );
	b = 2 - a + Math.floor( a/4 );
	JulianDayPujcka = Math.floor( 365.25 * ( pujcRok + 4716 )) + Math.floor( 30.6001 * ( pujcMes + 1 )) + pujcDen + b;
	if (splMes <= 2) { splRok -=1; splMes +=12; }
	a = Math.floor( splRok/100 );
	b = 2 - a + Math.floor( a/4 );
	JulianDaySplatka = Math.floor( 365.25 * ( splRok + 4716 )) + Math.floor( 30.6001 * ( splMes + 1 )) + splDen + b;  		 
    return ( JulianDaySplatka - JulianDayPujcka );  
} 

function fhodnota(pujcka,rok,tsplatka,tcas,sazba)
{
	soucet = 0;
    for (i=0; i<tsplatka.length; i++)
    {
       soucet += (tsplatka[i])/Math.pow((1+sazba),tcas[i]/rok);        
    }
    return(soucet - pujcka);
}

function ESSOXpocitejRPSN(pocetSplatek,pujcka,splatka) 
{  
	rok = 365;
  pujcDen = 1;
  pujcMes = new Date(); pujcMes = parseInt(pujcMes.getMonth()+1);
  pujcRok = new Date(); pujcRok = parseInt(pujcRok.getFullYear());
	
	aSplatka = new Array();
	cas = new Array();
	for (i=(pujcMes+1); i<pocetSplatek+(pujcMes+1); i++)
	{
	  aSplatka[(i-(pujcMes+1))] = splatka;
    splDen = 15;
    splMes = (i%12) ? i%12 : 12;
    splRok = pujcRok;
    splRok += (i>12) ? Math.floor((i-1)/12) : 0;
    cas[(i-(pujcMes+1))] = rozdilDnu(pujcDen,pujcMes,pujcRok,splDen,splMes,splRok); 
    } 
		
    rozdilstr = 0;
    odhad1 = 0; 
    odhad2 = 10.001;  // i.e. predpoklada se, ze koren lezi mezi 0% a 1000%
    fhodnota1 = fhodnota(pujcka,rok,aSplatka,cas,odhad1);
    fhodnota2 = fhodnota(pujcka,rok,aSplatka,cas,odhad2);
    if (fhodnota1*fhodnota2<0) 
    {
	        odhadstr = (odhad1 + odhad2)/2;
        	fhodnotastr = fhodnota(pujcka,rok,aSplatka,cas,odhadstr);
        
        	do {
			   if ((fhodnota1*fhodnotastr)>0) odhad1 = odhadstr;
   		       if ((fhodnota2*fhodnotastr)>0) odhad2 = odhadstr;
        	   fhodnota1 = fhodnota(pujcka,rok,aSplatka,cas,odhad1);
        	   fhodnota2 = fhodnota(pujcka,rok,aSplatka,cas,odhad2);
        	   rozdilstr = Math.abs(odhadstr - (odhad1 + odhad2)/2);
               odhadstr = (odhad1 + odhad2)/2;
               fhodnotastr = fhodnota(pujcka,rok,aSplatka,cas,odhadstr);
        	} 
        	while (rozdilstr>0.000001);    

            rpsn2 =Math.round(odhadstr*10000)/100; 
    }
    else if (fhodnota1 == 0) rpsn2 = "0";
		 else rpsn2 = "0"; 
		 
	return rpsn2;
	
}

