<!--

  function priklady(){
    var pocet = self.document.forms.pocetPr.pocet.value;
    var poc = self.document.forms.pocetPr.poc.value;
    var typ = self.document.forms.pocetPr.typ.value;
    if(pocet != "" && poc != "" && typ != ""){
      poc = ((poc == 10) ? 10 : ((poc == 20) ? 20 : ((poc == 100) ? 100 : ((poc == 400) ? 400 : ((poc == 1000) ? 1000 : ((poc == 10000) ? 10000 : 1000000))))));
      var prikl = new Array;
      var zaokrouhleniNapoveda = "";
      switch(typ){
        case "plus":      prikl = plus(poc, pocet);
                          break;
        case "minus":     prikl = minus(poc, pocet);
                          break;
        case "plusminus": prikl = plusminus(poc, pocet);
                          break;
        case "krat":      prikl = krat(poc, pocet);
                          break;
        case "deleno":    prikl = deleno(poc, pocet);
                          break;
        case "kratdeleno":prikl = kratdeleno(poc, pocet);
                          break;                                                
        case "vse":       prikl = vse(poc, pocet);
                          break;
        case "delenodes": prikl = delenoDesetiny(poc, pocet)
                          zaokrouhleniNapoveda = jazyk_zakl_zaokrouh3;
                          break;
        case "kratdes":   prikl = kratDesetiny(poc, pocet)
                          zaokrouhleniNapoveda = jazyk_zakl_zaokrouh3;
                          break;
        case "kddes":     prikl = kratdelenoDesetiny(poc, pocet);
                          zaokrouhleniNapoveda = jazyk_zakl_zaokrouh3;
                          break; 
        case "procenta":  prikl = procentaPr(poc, pocet);
                          zaokrouhleniNapoveda = jazyk_zakl_zaokrouh;
                          break;
        case "moc":       prikl = mocnina2(poc, pocet);
                          break;
        case "odmoc":     prikl = odmocnina2(poc, pocet);
                          break;
        case "moc3":      prikl = mocnina3(poc, pocet);
                          break;
        case "odmoc3":    prikl = odmocnina3(poc, pocet);
                          break;  
        case "nasobek":   prikl = nejmensiSpolecnyNasobek(poc, pocet);
                          break; 
        case "delitel":   prikl = nejvetsiSpolecnyDelitel(poc, pocet);
                          break;                            
      }
      document.getElementById('priklady').innerHTML=vytvorFormPrikladu(prikl, pocet, zaokrouhleniNapoveda);
    }
    
    return false;
  }
  
  
  function vytvorFormPrikladu(prikl, pocet, zaokrouhleniNapoveda){
    var vyslform;
    vyslform = "<form action='' name='formPrikl' onSubmit='return vyhodnotPriklady()' method='post' class='' name='formPrikl' enctype='multipart/form-data'>"
                +"<fieldset>"
                  +"<legend>"+jazyk_priklPoc+": "+pocet+"</legend>"
                    +"<table class='priklady'>";
    if(zaokrouhleniNapoveda != ""){
                      vyslform += "<tr><td class='c' colspan='6'>"+zaokrouhleniNapoveda+"</td></tr>";
    }
    var nahoda = Math.round(Math.random()*100);
    var ukazka;
    var datum = new Date();
    datum.setTime(datum.getTime() + 1 * 24 * 60 * 60 * 1000);
    var cookieExpires = "expires="+ datum.toGMTString()+";";
    document.cookie="nahoda="+nahoda+";"+ cookieExpires;
    id=0;
    for(i in prikl){
      //self.document.cookie="vysl"+id+"="+prikl[i].vysledek+";"+cookieExpires;
      ukazka = prikl[i].prvni+" "+prikl[i].znaminko+" "+prikl[i].druhy+" = ";
      vyslform +=        "<tr><td></td>"
                              +"<td class='c m'>"+prikl[i].prvni+"</td>"
                              +"<td class='c mm'>"+prikl[i].znaminko+"</td>"
                              +"<td class='c m'>"+prikl[i].druhy+"</td>"
                              +"<td class='c mm'>=</td>"
                              +"<td class='l m'>"
                                +"<input type='hidden' name='priO' value='"+prikl[i].vysledek+"' />"
                                +"<input type='hidden' name='pri' value='"+ukazka+"' />"
                                +"<input type='text' name='priV' value='' maxlength='7' />"
                              +"</td>"
                              +"<td></td>"
                          +"</tr>";
      id++;
    }
  
    vyslform +=        "<tr><td></td>"
                            +"<td class='c' colspan='5'>"
                              +"<input type='hidden' name='pocet' value='"+pocet+"' />"
                              +"<input type='hidden' name='nahoda' value='"+nahoda+"' />"
                   					  +"<input type='submit' name='vysledkyOK' value='"+jazyk_vyhodnotit+"' />"
                   		      +"</td>"
                            +"<td></td>"  
                        +"</tr>"
                      +"</table>"
                    +"</fieldset>"
                  +"</form>";
    return vyslform;
  } 
 
  
  /* objekt prikladu */
  function PrikladObyc(prvni, druhy, vysledek, znaminko){
    this.prvni = prvni;
    this.druhy = druhy;
    this.vysledek = vysledek;
    this.znaminko = znaminko; 
  }
  
  function plus(poc, pocet){
    priklady = new Array;
    citac = 0;

    while(citac != pocet){
      cis1 = Math.round(Math.random()*poc);
      cis2 = Math.round(Math.random()*poc);
      if(cis1 < cis2){ // cis1 je vysledek
        pom = cis2;
        cis2 = cis1;
        cis1 = pom;
      }
      cis3 = cis1 - cis2;
      if(poc > 20 && (cis2 == 0 || cis3==0)){
        continue;
      } 
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis2, cis3, cis1, '+');
      } else if(!testShodyPrvADruh(priklady, cis2, cis3)){
        priklady[citac] = new PrikladObyc(cis2, cis3, cis1, '+');
      } else {
        continue;
      }
      citac++;
    }    
       
    return priklady;
  }

  function minus(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      cis1 = Math.round(Math.random()*poc);
      cis2 = Math.round(Math.random()*poc);
      if(cis1 < cis2){ // $cis1 vetsi 
        pom = cis2;
        cis2 = cis1;
        cis1 = pom;
      }
      cis3 = cis1 - cis2;
      if(poc > 20 && (cis2==0 || cis3==0)){
        continue;
      } 
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2, cis3, "-");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2)){
        priklady[citac] = new PrikladObyc(cis1, cis2, cis3, "-");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  } 
  
  function plusminus(poc, pocet){
    pr1 = new Array;
    pul = pocet/2;
    pr1 = plus(poc,pul);
    pr2 = new Array;
    pr2 = minus(poc,pul);
    for(i=0; i<pul; i++){
      index = i + pul;
      pr1[index] = pr2[i];
    }
    return pr1;
  }
  
  function krat(poc, pocet){
    priklady = new Array;
    citac = 0;
    pompoc = Math.round(Math.sqrt(poc))-1;
    while(citac != pocet){
      // interval <1;poc>
      cis1 = Math.round(((Math.random()*pompoc)+1));
      cis2 = Math.round(((Math.random()*pompoc)+1));
      if(cis1 > cis2){ // $cis1 je mensi jmenovatel
        pom = cis2;
        cis2 = cis1;
        cis1 = pom;
      }
      cis3 = cis2 * cis1;
      if(cis3 > poc){
        continue;
      }
      if(poc > 100 && (cis1 == 1 || cis2 == 1)){
        continue;
      }
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2, cis3, "x");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2)){
        priklady[citac] = new PrikladObyc(cis1, cis2, cis3, "x");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }  

  function deleno(poc, pocet){
    priklady = new Array;
    citac = 0;
    pompoc = Math.round(Math.sqrt(poc))-1;
    
    while(citac != pocet){
      // interval <1;poc>
      cis1 = Math.round(((Math.random()*pompoc)+1));
      cis2 = Math.round(((Math.random()*pompoc)+1));
      if(cis1 > cis2){ // $cis1 je mensi jmenovatel
        pom = cis2;
        cis2 = cis1;
        cis1 = pom;
      }
      cis3 = cis2 * cis1;
      if(cis3 > poc){
        continue;
      }
      if(poc > 100 && (cis1 == 1 || cis3 == 1)){
        continue;
      }
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis3, cis1, cis2, ":");
      } else if(!testShodyPrvADruh(priklady, cis3, cis1)){
        priklady[citac] = new PrikladObyc(cis3, cis1, cis2, ":");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }

  function kratdeleno(poc, pocet){
    pr1 = new Array;
    pul = pocet/2;
    pr1 = krat(poc,pul);
    pr2 = new Array;
    pr2 = deleno(poc,pul);
    for(i=0; i<pul; i++){
      index = i + pul;
      pr1[index] = pr2[i];
    }
    return pr1;
  }
  
  function vse(poc, pocet){
    if(((pocet/2)%2) == 0){
      pocet1 = pocet2 = pocet/2;
    } else {
      pocet1 = (pocet/2 - 1);
      pocet2 = (pocet/2 + 1);
    }
    pr_vse = new Array;
    pr_kd = new Array;
    pr_vse = plusminus(poc,pocet1);
    pr_kd = kratdeleno(poc,pocet2);
    for(i=0; i<pocet2; i++){
      index = i + pocet1;
      pr_vse[index] = pr_kd[i];
    }
    return pr_vse;
  }
  
  function delenoDesetiny(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      // interval <1;poc>
      cis1 = Math.round(((Math.random()*1000)+1))/100;
      cis2 = Math.round(((Math.random()*1000)+1))/100;
      if(cis1==cis2) continue;
      cis3 = cis1/cis2;
      if(cis3>100) continue;
      if(cis3 < 1){ 
        cis3 = zaokrouhleni3(cis3);
      } else {
        cis3 = Math.round(cis3*1000)/1000;
      }
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2, cis3, ":");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2)){
        priklady[citac] = new PrikladObyc(cis1, cis2, cis3, ":");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function kratDesetiny(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      // interval <1;poc>
      cis1 = Math.round(((Math.random()*1000)+1))/100;
      cis2 = Math.round(((Math.random()*1000)+1))/100;
      if(cis1==cis2) continue;
      cis3 = cis1*cis2;
      if(cis3>100) continue;
      if(cis3 < 1){ 
        cis3 = zaokrouhleni3(cis3);
      } else {
        cis3 = Math.round(cis3*1000)/1000;
      }
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2, cis3, "x");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2)){
        priklady[citac] = new PrikladObyc(cis1, cis2, cis3, "x");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function kratdelenoDesetiny(poc, pocet){
    pr1 = new Array;
    pul = pocet/2;
    pr1 = kratDesetiny(poc,pul);
    pr2 = new Array;
    pr2 = delenoDesetiny(poc,pul);
    for(i=0; i<pul; i++){
      index = i + pul;
      pr1[index] = pr2[i];
    }
    return pr1;
  }
  
  function zaokrouhleni3(cislo){
    var cis = "" + cislo.toString();
    var vv = 0;
    for(i=0; i<cis.length;i++){
      if(cis[i]=="0" || cis[i]=="."){ 
        continue;
      } else {
        if(parseFloat(cis[i+4]) >= 5){
          var pom = parseFloat(cis.substring(0,i+4)); // cislo
          var nasobek = Math.pow(10,(i+4-3)); // posun znamenka
          vv = Math.round(pom*nasobek)/nasobek; // zaokrouhlene
        } else {
          vv = parseFloat(cis.substring(0,i+3));
        }
        break;
      }  
    }
    return vv;
  }
  
  function procentaPr(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      cis1 = Math.floor((Math.random()*999)+1);
      cis2 = Math.floor((Math.random()*99)+1);
      cis3 = cis1*cis2/100; 
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2+"%", cis3, "");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2+"%")){
        priklady[citac] = new PrikladObyc(cis1, cis2+"%", cis3, "");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function mocnina2(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      cis1 = Math.floor((Math.random()*300)+1)/10;
      cis3 = Math.pow(cis1,2);
      cis3 = Math.round(cis3*10000)/10000; 
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(" ", cis1+"&nbsp;<sup>^2</sup>", cis3, "");
      } else if(!testShodyPrvADruh(priklady, " ", cis1+"&nbsp;<sup>^2</sup>")){
        priklady[citac] = new PrikladObyc(" ", cis1+"&nbsp;<sup>^2</sup>", cis3, "");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function odmocnina2(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      cis1 = Math.floor((Math.random()*300)+1)/10;
      cis3 = Math.pow(cis1,2);
      cis3 = Math.round(cis3*10000)/10000; 
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(" ", "√"+cis3, cis1, "");
      } else if(!testShodyPrvADruh(priklady, " ", "√"+cis3)){
        priklady[citac] = new PrikladObyc(" ", "√"+cis3, cis1, "");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function mocnina3(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      cis1 = Math.floor((Math.random()*210)+1)/10;
      cis3 = Math.pow(cis1,3);
      cis3 = Math.round(cis3*10000)/10000; 
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(" ", cis1+"&nbsp;<sup>^3</sup>", cis3, "");
      } else if(!testShodyPrvADruh(priklady, " ", cis1+"&nbsp;<sup>^3</sup>")){
        priklady[citac] = new PrikladObyc(" ", cis1+"&nbsp;<sup>^3</sup>", cis3, "");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function odmocnina3(poc, pocet){
    priklady = new Array;
    citac = 0;
    
    while(citac != pocet){
      cis1 = Math.floor((Math.random()*210)+1)/10;
      cis3 = Math.pow(cis1,3);
      cis3 = Math.round(cis3*10000)/10000; 
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(" ", "<sup>3</sup>√"+cis3, cis1, "");
      } else if(!testShodyPrvADruh(priklady, " ", "<sup>3</sup>√"+cis3)){
        priklady[citac] = new PrikladObyc(" ", "<sup>3</sup>√"+cis3, cis1, "");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function prvociselnyRozkladDelenim(vstup){
    prvocisla = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
    seznam = new Array;
    pocet = 0;
    cislo = 0;
    while(prvocisla.length != cislo){
        if (vstup%prvocisla[cislo] == 0){
            seznam[pocet]=prvocisla[cislo];
            pocet++;
            vstup = vstup/prvocisla[cislo]
        } else {
            cislo = cislo + 1;
        }     
        if (vstup == 1) break;
    }
    //seznam[pocet]=vstup; // doplneni posledni jednicky
    return seznam;
  }
  
  function nasobek(c1,c2){
    roz1 = new Array;
    roz2 = new Array;
    roz1 = prvociselnyRozkladDelenim(c1);
    roz2 = prvociselnyRozkladDelenim(c2);
    uk1 = 0;
    uk2 = 0;
    var vysledek = new Array;
    var pom = 0;
    var akt = "";
    while(true){
      akt = (roz1[uk1]<=roz2[uk2]) ? roz1[uk1] : roz2[uk2];
      vysledek[pom] = akt;
      pom++;
            
      if(akt == roz1[uk1]) uk1++;
      if(akt == roz2[uk2]) uk2++;
      if(uk1 >= roz1.length){
        while(uk2!=roz2.length){
          vysledek[pom] = roz2[uk2];
          pom++;
          uk2++;
        }
        break;
      }
      if(uk2 >= roz2.length) {
        while(uk1!=roz1.length){
          vysledek[pom] = roz1[uk1];
          pom++;
          uk1++;
        }
        break;
      }
    }
    pom=0;
    vysl = 1;
    while(pom != vysledek.length){
      vysl *= vysledek[pom];
      pom++;
    }
    return vysl;
  }
  
  function nejmensiSpolecnyNasobek(poc, pocet){
    priklady = new Array;
    citac = 0;
    hl = 0;
    
    while(citac != pocet){
      hl++
      if(hl>500) break;
      cis1 = Math.floor((Math.random()*98)+2);
      cis2 = Math.floor((Math.random()*98)+2);
      if(cis1==cis2) continue;
      cis3 = nasobek(cis1,cis2);
      //cis3 = prvociselnyRozkladDelenim(cis1); 
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2, cis3, ",");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2)){
        priklady[citac] = new PrikladObyc(cis1, cis2, cis3, ",");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
  
  function nejvetsiSpolecnyDelitel(poc, pocet){
    priklady = new Array;
    citac = 0;
    hl = 0;
    
    while(citac != pocet){
      hl++
      if(hl>1000) break;
      cis1 = Math.floor((Math.random()*98)+2);
      cis2 = Math.floor((Math.random()*98)+2);
      if(cis1==cis2) continue;
      cis3 = cis1*cis2/nasobek(cis1,cis2);
      if(cis3 == 1) continue;
      
      if(!priklady[0]){
        priklady[0] = new PrikladObyc(cis1, cis2, cis3, ",");
      } else if(!testShodyPrvADruh(priklady, cis1, cis2)){
        priklady[citac] = new PrikladObyc(cis1, cis2, cis3, ",");
      } else {
        continue;
      }
      citac++;
    }
    return priklady;
  }
    
-->
