<!--
  function pr_zlomky(){
    var pocet = self.document.forms.pocetPr.pocet.value;
    var typ = self.document.forms.pocetPr.typ.value;
    if(pocet != "" && typ != ""){
      pocet = ((pocet == 10)? 10 : ((pocet == 20) ? 20 : ((pocet == 30) ? 30 : ((pocet == 40) ? 40 : 50))));
      var prikl = new Array;
      switch(typ){
        case "kraceni":    prikl = kraceniZlomku(pocet); 
                          break;                                                                                        
        case "plus":    prikl = scitaniZlomku(pocet); 
                          break;       
        case "minus":    prikl = odecitaniZlomku(pocet); 
                          break;       
        case "plusminus":    prikl = scitaniOdecitaniZlomku(pocet); 
                          break;       
        case "deleno":    prikl = deleniZlomku(pocet); 
                          break;       
                                                                                                           
      }
             
      document.getElementById('priklady').innerHTML=vytvorFormPrikladuPy(prikl, pocet);
    }
    
    return false;
  }
  
  function jaz(co){
    switch(co){
      case "napoveda": return jazyk[2];
    }
  }
  
  function zlomek(cit,jmen){
    return "<table class=\"zlomek\"><tr><td class=\"cit\">"+cit+"</td></tr><tr><td>"+jmen+"</td></tr></table>";
  }
  
  
  function vytvorFormPrikladuPy(prikl, pocet){
    var vyslform;
    vyslform = "<form action='' name='formPrikl' onSubmit='return vyhodnotPriklady()' method='post' class='' name='formPrikl' enctype='multipart/form-data'>"
                +"<fieldset>"
                  +"<legend>"+jazyk[0]+": "+pocet+"</legend>"
                    +"<div class='l'>"+jaz('napoveda')+"</div><br />"
                    +"<table class='priklady'>";
                     

    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){
      ukazka = ""+prikl[i].prvni+" "+prikl[i].znam+" "+prikl[i].druhy+" = ";
      vyslform +=        "<tr><td></td>"
                              +"<td class='c'>"+prikl[i].prvni+" "+prikl[i].znam+" "+prikl[i].druhy+"</td>"
                              +"<td class='l'> = <input type='text' name='priV' value='' maxlength='10' /> "
                                +"<input type='hidden' name='priO' value='"+prikl[i].vysledek+"' />"
                                +"<input type='hidden' name='pri' value='"+ukazka+"' />"
                              +"</td>"
                              +"<td></td>"
                          +"</tr>";
      id++;
    }
  
    vyslform +=        "<tr><td></td>"
                            +"<td class='c' colspan='2'>"
                              +"<input type='hidden' name='pocet' value='"+pocet+"' />"
                              +"<input type='hidden' name='nahoda' value='"+nahoda+"' />"
                   					  +"<input type='submit' name='vysledkyOK' value='"+jazyk[1]+"' />"
                   		      +"</td>"
                            +"<td></td>"  
                        +"</tr>"
                      +"</table>"
                    +"</fieldset>"
                  +"</form>";
    return vyslform;
  } 

  /* objekt prikladu */
  function PrikladPorov(prvni, druhy, vysledek, znam){
    this.prvni = prvni;
    this.druhy = druhy;
    this.znam = znam;
    this.vysledek = vysledek; 
  }
  
// prvociselny rozklad cisel do 100
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 zaokrouhleni3(cislo,nalez){
    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 kraceniZlomku(pocet){
    var priklady = new Array;
    var citac = 0;
    var moc = 0;
    
    while(citac != pocet){
      if(moc++ > 5000){
        break;
      }
      var cis1 = Math.floor((Math.random()*99)+1);
      var cis2 = Math.floor((Math.random()*99)+1);
      if(cis1==cis2 || cis1<10 || cis2<10) continue;
      var delitel = cis1*cis2/nasobek(cis1,cis2);
      if(!delitel || delitel < 3) continue;
      var cit = cis1/delitel;
      var jmen = cis2/delitel;
      var vysledek = ""+cit+"/"+jmen; 
      //var zlom = ""+cis1+"/"+cis2;
      var zlom = zlomek(cis1,cis2);
      
      if(!priklady[0]){
        priklady[0] = new PrikladPorov("", zlom, vysledek, "");
      } else if(!testShodyPrvADruh(priklady, "", zlom)){
        priklady[citac] = new PrikladPorov("", zlom, vysledek, "");
      } else {
        continue;
      }
      citac++;
    }
  
    return priklady;
  }
  
  function scitaniZlomku(pocet){
    var priklady = new Array;
    var citac = 0;
    var moc = 0;
    
    while(citac != pocet){
      if(moc++ > 5000){
        break;
      }
      var cis1z1 = Math.floor((Math.random()*99)+1);
      var cis2z1 = Math.floor((Math.random()*99)+1);
      var cis1z2 = Math.floor((Math.random()*99)+1);
      var cis2z2 = Math.floor((Math.random()*99)+1);
      if(cis1z1==cis1z2 && cis2z1==cis2z2) continue;
      var nasob = nasobek(cis2z1,cis2z2);
      if(nasob>1000) continue;
      var jmen = nasob;
      var cit = (nasob/cis2z1*cis1z1)+(nasob/cis2z2*cis1z2);
      var vysledek = ""+cit+"/"+jmen; 
      var zlomek1 = zlomek(cis1z1,cis2z1);
      var zlomek2 = zlomek(cis1z2,cis2z2);
      
      /*  stare, bez upravy zlomku
      if(!priklady[0]){
        priklady[0] = new PrikladPorov(cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2, vysledek, "+");
      } else if(!testShodyPrvADruh(priklady, cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2)){
        priklady[citac] = new PrikladPorov(cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2, vysledek, "+");
      } else {
        continue;
      }
      */
      
      if(!priklady[0]){  // nove, s upravou zlomku
        priklady[0] = new PrikladPorov(zlomek1, zlomek2, vysledek, "+");
      } else if(!testShodyPrvADruh(priklady, zlomek1, zlomek2)){
        priklady[citac] = new PrikladPorov(zlomek1, zlomek2, vysledek, "+");
      } else {
        continue;
      }
      citac++;
    }
  
    return priklady;
  }
  
  function odecitaniZlomku(pocet){
    var priklady = new Array;
    var citac = 0;
    var moc = 0;
    
    while(citac != pocet){
      if(moc++ > 5000){
        break;
      }
      var cis1z1 = Math.floor((Math.random()*99)+1);
      var cis2z1 = Math.floor((Math.random()*99)+1);
      var cis1z2 = Math.floor((Math.random()*99)+1);
      var cis2z2 = Math.floor((Math.random()*99)+1);
      if(cis1z1==cis1z2 && cis2z1==cis2z2) continue;
      var nasob = nasobek(cis2z1,cis2z2);
      if(nasob>600) continue;
      var jmen = nasob;
      var cit = (nasob/cis2z1*cis1z1)-(nasob/cis2z2*cis1z2);
      var vysledek = ""+cit+"/"+jmen; 
      var zlomek1 = zlomek(cis1z1,cis2z1);
      var zlomek2 = zlomek(cis1z2,cis2z2);
      
      /*   stare
      if(!priklady[0]){
        priklady[0] = new PrikladPorov(cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2, vysledek, "-");
      } else if(!testShodyPrvADruh(priklady, cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2)){
        priklady[citac] = new PrikladPorov(cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2, vysledek, "-");
      } else {
        continue;
      }
      */
      if(!priklady[0]){ // nove
        priklady[0] = new PrikladPorov(zlomek1, zlomek2, vysledek, "-");
      } else if(!testShodyPrvADruh(priklady, zlomek1, zlomek2)){
        priklady[citac] = new PrikladPorov(zlomek1, zlomek2, vysledek, "-");
      } else {
        continue;
      }
      citac++;
    }
  
    return priklady;
  }
  
  function scitaniOdecitaniZlomku(pocet){
    pr1 = new Array;
    pul = pocet/2;
    pr1 = scitaniZlomku(pul);
    pr2 = new Array;
    pr2 = odecitaniZlomku(pul);
    for(i=0; i<pul; i++){
      index = i + pul;
      pr1[index] = pr2[i];
    }
    return pr1;
  }
  
  function deleniZlomku(pocet){
    var priklady = new Array;
    var citac = 0;
    var moc = 0;
    
    while(citac != pocet){
      if(moc++ > 5000){
        break;
      }
      var cis1z1 = Math.floor((Math.random()*99)+1);
      var cis2z1 = Math.floor((Math.random()*99)+1);
      var cis1z2 = Math.floor((Math.random()*99)+1);
      var cis2z2 = Math.floor((Math.random()*99)+1);
      if(cis1z1==cis1z2 && cis2z1==cis2z2) continue;
      var nasob = nasobek(cis2z1,cis1z2);
      var pomCit = cis1z1*cis2z2;
      var pomJmen = cis2z1*cis1z2;
      var delitel = pomCit*pomJmen/nasobek(pomCit,pomJmen);
      if(!delitel || delitel < 3) continue;
      var cit = pomCit/delitel;
      var jmen = pomJmen/delitel;
      var vysledek = ""+cit+"/"+jmen;
      var zlomek1 = zlomek(cis1z1,cis2z1);
      var zlomek2 = zlomek(cis1z2,cis2z2); 

      /* stare
      if(!priklady[0]){
        priklady[0] = new PrikladPorov(cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2, vysledek, "/");
      } else if(!testShodyPrvADruh(priklady, cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2)){
        priklady[citac] = new PrikladPorov(cis1z1+"/"+cis2z1, cis1z2+"/"+cis2z2, vysledek, "/");
      } else {
        continue;
      }
      */ 
      if(!priklady[0]){   // nove
        priklady[0] = new PrikladPorov(zlomek1, zlomek2, vysledek, "/");
      } else if(!testShodyPrvADruh(priklady, zlomek1, zlomek2)){
        priklady[citac] = new PrikladPorov(zlomek1, zlomek2, vysledek, "/");
      } else {
        continue;
      }
      citac++;
    }
  
    return priklady;
  }
  
-->
