//name: pomocne funkce pro kalkulator pujcka
//author: Martin Kosek, LBBW Bank CZ a.s. 2009

//================POMOCNE FUNKCE===================================

//RPSN vypocet
function vypoctiRpsn(splatkyPocet,uver,splatka) {  
  var pocetSplatek=splatkyPocet*12;
  var vyseUveru=uver;
  //vedeni uveroveho uctu mesicne - bude vyssi nez nula pokud jiz neni obsazen ve splatce
  var vedeniUctu=0;  
  var vyseSplatky=splatka + vedeniUctu;      
  
  //interval 0 - 1000%
  var min=0; 
  var max=10.0;  
  
  var suma;
  //zrizovaci poplatek bude vetsi nez 0 v pripade, ze neni soucasti splatky
  var poplatek=0;  
  var stred=0;
  var iterace=0;
           
  do {
          stred = (max + min) / 2;                    
          suma=poplatek; //sumu je nutne vzdy vynulovat pro opakovani vypoctu pripadne pripocist vzdy zrizovaci poplatek
          for (i=1;i<=pocetSplatek;++i) {                
            suma=suma+(vyseSplatky/Math.pow(1+stred,i/12)); //rok ma 12 mesicu a splaci se mesicne takze je to n/12, n je poradove cislo mesice
          }                            
          if ((suma-vyseUveru)<0) 
              max = stred - 0.001;
          else
              min = stred + 0.001;
          //++iterace;      
      }
      while ((suma-vyseUveru>0.001) || (suma-vyseUveru<0));
    
    //alert("Pocet iteraci: " + iterace);    
    return stred=Math.round(stred*10000)/100;  //zaokrouhli cislo na 2 desetinna cisla nahoru dle zakona                    
}


//pomocna funkce pro odstraneni mezer z formatovaneho textu
function bez_mezer(num) {
  var num=new String(num);
  var temp=new String;
  for (var i=0;i<num.length;i++){
    var pokus = num.substring(i,i+1);
    if (pokus!=" "){
      temp +=pokus;      
    }   
  } 
  return temp;
}


//naformatuje cislo po tisicich pr. 12 257 755, nebo 1 523
//vystup je String
function odsazeni_cisla(cislo) {
  var temp_cislo=bez_mezer(cislo);
  var cislo=parseFloat(temp_cislo);
  if (cislo > 0) 
  { //v případě že cislo je zaporne nebo neni cislo vrati puvodni hodnotu 
    cislo = new String(cislo);
    var temp = new String;
    var a=0;
    for (var n=cislo.length; n > 0; n--)
    {    
      if (a<3) 
      {
        temp+=cislo.substring(n,n-1);
        a+=1;
      }
      else
      {
        temp+=" "+cislo.substring(n, n-1);
        a=1;
      }
    }
    cislo = ""; //vyprazdneni promenne pro znovupouziti
    //serazeni cisla do puvodniho stavu
    for (var n=temp.length; n>0; n--)
    {
       cislo+=temp.substring(n-1, n);
    } 
    return cislo;
  }
  return temp_cislo;
}
