home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 January / Chip_2004-01_cd1.bin / chplus / scio / courses / Ma9ch / templates / _sekv.js < prev    next >
Encoding:
Text File  |  2003-10-21  |  19.7 KB  |  1,011 lines

  1. ∩╗┐var pr_spravne="courses/Ma9ch/templates/images/tl_prep_spravne.gif";
  2. var pr_moje="courses/Ma9ch/templates/images/tl_prep_moje.gif";
  3. var stara_napoveda="courses/Ma9ch/templates/images/napoveda.gif";
  4.  
  5.  
  6.  
  7. var MMSound = new Array();
  8. MMSound[0] = "courses/Ma9ch/templates/sounds/CHYBA1a.mid";
  9. MMSound[1] = "courses/Ma9ch/templates/sounds/CHYBA3a.mid";
  10. MMSound[2] = "courses/Ma9ch/templates/sounds/CHYBA4a.mid";
  11. MMSound[3] = "courses/Ma9ch/templates/sounds/CHYBA5a.mid";
  12. MMSound[4] = "courses/Ma9ch/templates/sounds/SPRAVNE1a.mid";
  13. MMSound[5] = "courses/Ma9ch/templates/sounds/SPRAVNE2a.mid";
  14. MMSound[6] = "courses/Ma9ch/templates/sounds/SPRAVNE3a.mid";
  15. MMSound[7] = "courses/Ma9ch/templates/sounds/SPRAVNE4a.mid";
  16.  
  17.  
  18. document.write('<bgsound id="MMIEContainer">')  
  19. IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0; 
  20. NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
  21. ver4 = IE||NS? 1:0;
  22.  
  23.  
  24. function MMPreload() { 
  25.   if (!ver4)  
  26.     return;
  27.   if (NS)
  28.     MMEmb = new Layer(0,window);  
  29.   else {  
  30.     Str = "<div id='MMEmb' style='position:absolute;display:none'></div>";
  31.     document.body.insertAdjacentHTML("BeforeEnd",Str);
  32.   }
  33.   var Str = '';
  34.   for (i=0;i<MMSound.length;i++) 
  35.     Str += "<embed src='"+MMSound[i]+"' autostart='false' hidden='true'>"
  36.   if (IE)
  37.     MMEmb.innerHTML = Str; 
  38.   else { 
  39.     MMEmb.document.open();
  40.     MMEmb.document.write(Str);
  41.     MMEmb.document.close();
  42.   }
  43.   MMCon = IE? document.all.MMIEContainer:MMEmb;
  44.   MMCon.control = MMCtrl; 
  45. }
  46.  
  47.  
  48.  
  49. function MMCtrl(snd,play) {
  50.   if (IE)
  51.     this.src = play? MMSound[snd]:'';
  52.   else
  53.     eval("this.document.embeds[snd]." + (play? "play()":"stop()"))
  54. }
  55.  
  56. function playSound(snd) {
  57.   if (window.MMCon)
  58.     MMCon.control(snd,true);
  59. }
  60.  
  61. function stopSound(snd) {
  62.   if (window.MMCon)
  63.     MMCon.control(snd,false);
  64. }
  65.  
  66.  
  67. function Otevri(Soubor){window.open (Soubor, 'Zdroj' , 'location=1, toolbar=1, status=1,menubar=1, scrollbars=1, resizable=1, width=800, height=600');}
  68.  
  69. var LastName='';
  70. function  Show (Parent,Name,Save)
  71. {
  72.      document.getElementById(Name).style.display = 'block';
  73.     if (Parent.offsetParent.className == 'body') 
  74.     {
  75.         document.getElementById(Name).style.left = Parent.offsetLeft;
  76.         document.getElementById(Name).style.top = Parent.offsetTop - document.getElementById(Name).offsetHeight;
  77.  
  78.     }
  79.     else
  80.     {
  81.         document.getElementById(Name).style.left = Parent.offsetParent.offsetLeft + Parent.offsetLeft;
  82.         document.getElementById(Name).style.top = Parent.offsetParent.offsetParent.offsetTop + Parent.offsetTop - document.getElementById(Name).offsetHeight;
  83.     }
  84.  
  85.     
  86.     if (Save==1)    
  87.     {
  88.         LastName=Name;
  89.         LastParent=Parent;
  90.     }
  91. }
  92.  
  93. function ChangePosition()
  94. {
  95.     if  (LastName!='') 
  96.     {
  97.         document.getElementById(LastName).style.top = LastParent.offsetTop-document.getElementById(LastName).offsetHeight;
  98.         document.getElementById(LastName).style.left = LastParent.offsetLeft;
  99.     }    
  100. }
  101.  
  102. function  Hide(Name)
  103. {
  104.          document.getElementById(Name).style.display = 'none';
  105. }
  106.  
  107.  
  108.  
  109.  
  110.  
  111. function sE(i){document.getElementById(i).style.display="";}
  112. function hE(i){document.getElementById(i).style.display="none";}
  113. function cB(i,c){document.getElementById(i).style.background=c;}
  114. function dE(i) {document.getElementById(i).disabled=1;}
  115. function down(){window.location.href='#DOWN';}
  116. function cT(i,t) {document.getElementById(i).title=t;}
  117. function cV(i,t) {document.getElementById(i).value=t;}
  118. function gV(i) {return document.getElementById(i).value;}
  119. function iC(i) {if (document.getElementById(i).checked) return 1; else return 0;}
  120. function sC(i){ document.getElementById(i).checked=1;}
  121. function hH(i,p) { for (var j=1;j<=p;j++) hE('HN_'+i+'_'+j);}
  122. function dC(p,c,s) {for (var j=1;j<=c;j++) dE(p+j+s);}
  123. function gV(i) {return document.getElementById(i).value;}
  124. function hM(i,p) {hE('HP_'+i);hE('HK_'+i); for(var j=1;j<=p;j++) hE('H_'+i+'_'+j);}
  125. function sF(i) {document.getElementById(i).focus();}
  126. function rT(p,c,s) {for (var j=1;j<=c;j++) document.getElementById(p+j+s).readOnly=1;}
  127. function cS(i,s) { document.getElementById(i).className=s;}
  128. function cI(i,t) {document.getElementById(i).innerHTML=t;}
  129. function rO(i) {document.getElementById(i).readOnly=1;}
  130.  
  131. //function aM() {cV('CHECKBUTTON','Vyber spr┬ávnou odpov┼ÿ├ö a klikni zde');} 
  132. //function aS() {cV('CHECKBUTTON','Vepi├º spr┬ávnou odpov┼ÿ├ö a klikni zde');} 
  133. //function aP() {cV('CHECKBUTTON','Vyber spr┬ávnΓÇÜ odpov┼ÿdi a klikni zde');} 
  134. //function aU() {cV('CHECKBUTTON','Vypl─║ ┼ükol a klikni zde');} 
  135. //function aT() {cV('CHECKBUTTON','M┬ám p├╜e┼║teno');}
  136. //function aZ() {cV('CHECKBUTTON','Ozn┬ámkuj se');} 
  137.  
  138. function aM() {cV('CHECKBUTTON','D─é╦çl');} 
  139. function aS() {cV('CHECKBUTTON','D─é╦çl');} 
  140. function aP() {cV('CHECKBUTTON','D─é╦çl');} 
  141. function aU() {cV('CHECKBUTTON','D─é╦çl');} 
  142. function aT() {cV('CHECKBUTTON','D─é╦çl');}
  143. function aZ() {cV('CHECKBUTTON','D─é╦çl');} 
  144.  
  145.  
  146. function correct_text(text)
  147. {
  148.     text= text.replace(/\\/g, "\\\\");
  149.     text= text.replace(/\n/g, "\\n");
  150.     text= text.replace(/\r/g, "");
  151.     text= text.replace(/'/g, "\\'" );
  152.  
  153.     return text;
  154. }
  155.  
  156.  
  157. // (index,index_podulohy,delka,
  158. function upravHN(i,j,d)
  159. {
  160.     if (d==1)
  161.     {
  162.         hE('HNM_'+i+'_'+j);        
  163.     }
  164.     else
  165.     {
  166.         hE('HNM_'+i+'_'+j);        
  167.         hE('HNV_'+i+'_'+j);        
  168.     }
  169.     document.getElementById('EHN_'+i+'_'+j).src=stara_napoveda;
  170.     cS('HNL_'+i+'_'+j,'napoveda_stara_levy');
  171.     cS('HNR_'+i+'_'+j,'napoveda_stara_pravy');
  172.  
  173.  
  174. }
  175.  
  176.  
  177.  
  178. function _gender(m,f)
  179. {
  180.     if (gender==0) document.write(m);    
  181.     else document.write(f);
  182. }
  183.                        
  184. function Znamkuj(i)
  185. {
  186.  if (iC('U_'+i+'_1')) return 10;
  187.  if (iC('U_'+i+'_2')) return 7;
  188.  if (iC('U_'+i+'_3')) return 5;
  189.  if (iC('U_'+i+'_4')) return 2;
  190.  if (iC('U_'+i+'_5')) return 0;
  191.  return 0;
  192. }
  193.  
  194. function Oznamkovano(i)
  195. {
  196.  if (iC('U_'+i+'_1')) return 1;
  197.  if (iC('U_'+i+'_2')) return 1;
  198.  if (iC('U_'+i+'_3')) return 1;
  199.  if (iC('U_'+i+'_4')) return 1;
  200.  if (iC('U_'+i+'_5')) return 1;
  201.     alert('Mus├¡┼í se ozn├ímkovat!');
  202.  return 0;
  203. }
  204.  
  205.  
  206. // MC color correct
  207. // index, spravne, pocet 
  208. function mcCC(i,s,p)
  209. {
  210.     var j;
  211.     if (eval('vybrano_'+i)==s)
  212.     {
  213.         cS('yD_'+i+'_'+s,'mc_vzor_spravne');
  214.         return;
  215.     }    
  216.     for(j=1;j<=p;j++)
  217.     {
  218.         if (eval('vybrano_'+i)==j) 
  219.         {
  220.             cS('yD_'+i+'_'+s,'mc_vzor_spatne');
  221.             cS('yD_'+i+'_'+j,'mc_student_spatne');
  222.             return;
  223.         }             
  224.     }
  225.     cS('yD_'+i+'_'+s,'mc_vzor_nic');
  226.  
  227. }
  228.  
  229. // subcheckMC(index,spravne,pocet)
  230.  
  231. function subcheckMC(i,s,p)
  232. {
  233.     var correct=0;
  234.     var j;
  235.     for (j=1;j<=p;j++)
  236.     {
  237.         
  238.         if (iC('D_'+i+'_'+j))
  239.         {
  240.             eval('vybrano_'+i+'='+j+';');
  241.             if (j==s) correct++;            
  242.         }
  243.     }
  244.     return correct;
  245. }
  246.  
  247. function oMC(i,p,s,k,v,c)
  248. {
  249.     var j;
  250.         if (stav==i)
  251.     {
  252.             eval('stav_'+i+'=0;');
  253.         return;
  254.     }
  255. //        if ( i<stav && (c==0 || c==2) ) 
  256.         if ( i<stav ) 
  257.     {
  258.         sE('M_'+i);
  259.                 if (k==1) sE('K_'+i)
  260.         for (j=1;j<=p;j++) dE('D_'+i+'_'+j);
  261.         // cB('D_'+i+'_'+s,'green');
  262.         mcCC(i,s,p);
  263.                 if (v!="" && v!=-1) sC('D_'+i+'_'+v);
  264.         if (c==2) for (j=1;j<=p;j++) if (j!=s) hE('xD_'+i+'_'+j);
  265.  
  266.     }
  267. }
  268.  
  269.  
  270. // index,pocet,spravne
  271. function hideBad(i,p,s)
  272. {
  273.     var j;
  274.     for(j=1;j<=p;j++)
  275.     {
  276.         if (j!=s) hE('xD_'+i+'_'+j);
  277.     }
  278.         
  279. }
  280.  
  281. //  index,spravne,pocet,pocet_napoved,komentar,chovani,hlasky
  282. function checkMC(i,s,p,n,k,c,h)
  283. {
  284.     var j;
  285.     var st=eval('stav_'+i);
  286.     //pocatek zobrazim ulohu
  287.         if (st==0)
  288.     {
  289.         sE('M_'+i);
  290.             eval('stav_'+i+'++;');
  291.         sE('CHECKBUTTON');
  292.         if (h==1) sE('HU_'+i);
  293.         aM();
  294.         return;
  295.     }
  296.     //odpovedi
  297.     if (st>0 && st<=n)
  298.     {
  299.         if (h==1)
  300.         {
  301.             //schovam predchozi hlasku
  302.             if (st==1) hE('HU_'+i);    
  303.             else if (st>1)
  304.             {
  305.                 upravHN(i,(st-1),1);
  306.             }
  307.         }
  308.         if (subcheckMC(i,s,p)==1)  // trefil se
  309.         {
  310.             eval('stav_'+i+'='+(n+1)+';');
  311.             eval('st='+(n+1)+';');
  312.             playSound(4);
  313.         }
  314.         else
  315.         {
  316.             //zobrazim novou hlasku
  317.             if (h==1) sE('HN_'+i+'_'+st);
  318.             sE('N_'+i+'_'+st);                        
  319.             eval('stav_'+i+'++;');
  320.             eval('napoved_'+i+'++;');
  321.             playSound(0);
  322.             return;            
  323.         }
  324.     }
  325.     
  326.     // odpovedel spravne nebo po posledni napovede
  327.     if (st==(n+1))
  328.     {
  329.         // schovam predchozi hlasku
  330.         if (h==1)
  331.         {
  332.             if (n==0) hE('HU_'+i);
  333.             else upravHN(i,(st-1),1);            
  334.         }
  335.         dC('D_'+i+'_',p,'');
  336.         eval('stav_'+i+'++;');
  337.         if (subcheckMC(i,s,p)==1)
  338.         {
  339.             eval('bodu_'+i+'=1;');
  340.             if (h==1) sE('HP_'+i);
  341.             playSound(4);
  342.         }
  343.         else
  344.         {
  345.             if (h==1) sE('HK_'+i);
  346.             playSound(0);
  347.         }
  348.         mcCC(i,s,p);
  349.         if (k==1) sE('K_'+i);
  350.         return;
  351.         
  352.     }
  353.     // uklid a dalsi uloha     rozlisit podle chovani!!!!!
  354.     if (st==(n+2))
  355.     {
  356.         switch (c)
  357.         {
  358.         case 0:
  359.             break;
  360.         case 1:
  361.             hE('M_'+i);
  362.             break;
  363.         case 2:
  364.             hideBad(i,p,s);
  365.             break;
  366.         }
  367.         hH(i,n);  //schovam napovedy
  368.         if (h==1) 
  369.         {
  370.             hE('HP_'+i);
  371.             hE('HK_'+i);
  372.         }
  373.         hE('CHECKBUTTON');
  374.         stav++;
  375.         check();
  376.         return;
  377.     }
  378.     
  379.  
  380. }
  381.  
  382. // part color correct
  383. // index,pole spravnych
  384. function pCC(i,s)
  385. {
  386.     var j;
  387.     var v;
  388.     for(j=1;j<=s.length;j++)
  389.     {
  390.         v=eval('vybrano_'+i+'_'+j);
  391.         if (s[j-1]==1 )
  392.         {
  393.             if (v==1)
  394.             {
  395.                 cS('an_'+i+'_'+j+'_a','part_vzor_spravne');
  396.                 cS('an_'+i+'_'+j+'_n','part_nevzor_spravne');                    
  397.             }
  398.             else if (v==2)
  399.             {
  400.                 cS('an_'+i+'_'+j+'_a','part_vzor_spatne');
  401.                 cS('an_'+i+'_'+j+'_n','part_student_spatne');                    
  402.             }
  403.             else
  404.             {
  405.                 cS('an_'+i+'_'+j+'_a','part_vzor_nic');
  406.                 cS('an_'+i+'_'+j+'_n','part_nevzor_nic');                    
  407.                 }    
  408.         }
  409.         else if (s[j-1]==2 )
  410.         {
  411.             if (v==1)
  412.             {
  413.                 cS('an_'+i+'_'+j+'_a','part_student_spatne');
  414.                 cS('an_'+i+'_'+j+'_n','part_vzor_spatne');                    
  415.             }
  416.             else if (v==2)
  417.             {
  418.                 cS('an_'+i+'_'+j+'_a','part_nevzor_spravne');
  419.                 cS('an_'+i+'_'+j+'_n','part_vzor_spravne');                    
  420.             }
  421.             else
  422.             {
  423.                 cS('an_'+i+'_'+j+'_a','part_nevzor_nic');
  424.                 cS('an_'+i+'_'+j+'_n','part_vzor_nic');                    
  425.                 }    
  426.         }
  427.     }
  428.  
  429. }
  430.  
  431. // subcheckPart(index,pole_spravnych)
  432.  
  433. function subcheckPart(i,s)
  434. {
  435.     var correct=0;
  436.     var j;
  437.     for(j=1;j<=s.length;j++)
  438.     {
  439.         eval('vybrano_'+i+'_'+j+'=0;');
  440.          if (iC('r_an_'+i+'_'+j+'_a')) 
  441.         {
  442.             if (s[j-1]==1) correct++;
  443.             eval('vybrano_'+i+'_'+j+'=1;');
  444.         }
  445.         if (iC('r_an_'+i+'_'+j+'_n')) 
  446.         {
  447.             if (s[j-1]==2) correct++;
  448.             eval('vybrano_'+i+'_'+j+'=2;');
  449.         }
  450.  
  451.  
  452.     }
  453. //    sE('B_'+i);
  454. //    cI('BB_'+i,correct);
  455.     return correct;
  456. }
  457.  
  458.  
  459. // hideNoPart(index,pole_spravnych)
  460.  
  461. function hideNoPart(i,s)
  462. {
  463.     var j;
  464.     for(j=1;j<=s.length;j++)
  465.     {
  466.         if (s[j-1]==2) hE('anone_'+i+'_'+j);
  467.     }
  468. }
  469.  
  470. // checkPart(index,pole_spravnych,pocet_napoved,komentar,chovani,hlasky) 
  471.                        
  472. function checkPart(i,s,n,k,c,h)
  473. {
  474.     var j;
  475.     var st=eval('stav_'+i);
  476.     var b;
  477.     //pocatek zobrazim ulohu
  478.         if (st==0)
  479.     {
  480.         sE('P_'+i);
  481.         if (h==1) sE('HU_'+i);
  482.             eval('stav_'+i+'++;');
  483.         sE('CHECKBUTTON');
  484.         aP();
  485.         return;
  486.     }
  487.     // odpovedi
  488.     if (st>0 && st<=n)
  489.     {
  490.         if (h==1)
  491.         {
  492.             //schovam predchozi hlasku
  493.             if (st==1) hE('HU_'+i);    
  494.             else if (st>1)
  495.             {
  496.                 upravHN(i,(st-1),0);
  497.             }
  498.         }
  499.         b=subcheckPart(i,s);
  500.         if (b==s.length)   // trefil se
  501.         {
  502.             eval('stav_'+i+'='+(n+1));
  503.             eval('st='+(n+1)+';');
  504.             playSound(5);
  505.         }
  506.         else
  507.         {
  508.             if (h==1) 
  509.             {
  510.                 sE('HN_'+i+'_'+st);
  511.                 cI('HV_'+i+'_'+st,b);
  512.             }
  513.             sE('N_'+i+'_'+st);                        
  514.             eval('stav_'+i+'++;');
  515.             eval('napoved_'+i+'++;');
  516.             playSound(1);    
  517.             return;            
  518.         }
  519.     }
  520.     // odpovedel spravne nebo po posledni napovede
  521.     if (st==(n+1))
  522.     {
  523.         // schovam predchozi hlasku
  524.         if (h==1)
  525.         {
  526.             if (n==0) hE('HU_'+i);
  527.             else upravHN(i,(st-1),0);            
  528.         }
  529.         dC('r_an_'+i+'_',s.length,'_a');
  530.         dC('r_an_'+i+'_',s.length,'_n');
  531.         eval('stav_'+i+'++;');
  532.         var b=subcheckPart(i,s);
  533.         if (b==s.length)
  534.         {
  535.             if (h==1) sE('HP_'+i);
  536.             playSound(5);
  537.         }
  538.         else
  539.         {
  540.             if (h==1)
  541.             {
  542.                 sE('HK_'+i);
  543.                 cI('HKV_'+i,b);
  544.             }
  545.             playSound(1);
  546.         }
  547.         eval('bodu_'+i+'='+b+';');
  548.         pCC(i,s);
  549.         if (k==1) sE('K_'+i);
  550.         return;
  551.         
  552.     }
  553.     // uklid a dalsi uloha     rozlisit podle chovani!!!
  554.     if (st==(n+2))
  555.     {
  556.         switch (c)
  557.         {
  558.         case 0:
  559.             break;
  560.         case 1:
  561.             hE('P_'+i);
  562.             break;
  563.         case 2:
  564.             hideNoPart(i,s);
  565.             break;
  566.         }
  567.         hH(i,n);
  568.         if (h==1) 
  569.         {
  570.             hE('HP_'+i);
  571.             hE('HK_'+i);
  572.         }
  573.         hE('CHECKBUTTON');
  574.         stav++;
  575.         check();
  576.         return;
  577.     }
  578.  
  579.  
  580.  
  581. }
  582.  
  583. function oPart(i,p,k,s,c)
  584. {
  585.          
  586.     var j;
  587.     if (stav==i)
  588.     {
  589.         eval('stav_'+i+'=0;');
  590.          eval('stav_'+i+'=0;');
  591.             return;
  592.     }
  593.                         
  594. //    if ( i<stav && (c==0 || c==2) ) 
  595.     if ( i<stav ) 
  596.     {
  597.             sE('P_'+i);
  598.                 if (k==1) sE('K_'+i);
  599.         for (j=1;j<=p;j++)
  600.                 {
  601.                     dE('r_an_'+i+'_'+j+'_a');
  602.                         dE('r_an_'+i+'_'+j+'_n');
  603.         }
  604.         pCC(i,eval('an_'+i));
  605.                 for (j=1;j<=p;j++)
  606.         {
  607.                     if (eval('vybrano_'+i+'_'+j+'==1')) sC('r_an_'+i+'_'+j+'_a');
  608.                         if (eval('vybrano_'+i+'_'+j+'==2')) sC('r_an_'+i+'_'+j+'_n');
  609.                 }
  610.     }
  611. }
  612.  
  613. // checkTextik(index,chovani,hlasky)
  614. function checkTextik(i,c,h)
  615. {
  616.     var st=eval('stav_'+i);
  617.     //pocatek zobrazim textik
  618.         if (st==0)
  619.     {
  620.         sE('T_'+i);
  621.         if (h==1) sE('HU_'+i);
  622.             eval('stav_'+i+'++;');
  623.         sE('CHECKBUTTON');
  624.         aT();
  625.         return;
  626.     }
  627.     if (st==1)
  628.     {
  629.         if (h==1) hE('HU_'+i);
  630.         stav++;
  631.         switch(c)
  632.         {
  633.         case 0:
  634.             break;
  635.         case 1:
  636.             hE('T_'+i);
  637.             break;
  638.         } 
  639.         hE('CHECKBUTTON');
  640.         check();
  641.     }
  642.  
  643. }
  644.         
  645. function oT(i,c)
  646. {
  647.     if (stav==i)
  648.     {
  649.         eval('stav_'+i+'=0;');
  650.                 return;
  651.     }
  652. //        if (i<stav  && c==0) sE('T_'+i); 
  653.         if (i<stav) sE('T_'+i); 
  654. }
  655.  
  656. function getNumber(v)
  657. {
  658.     var pom;
  659.     return parseFloat(v); 
  660. }
  661.  
  662. // compareOneSA(spravne,hodnota)
  663. function compareOneSA(s,v)
  664. {
  665.     var j;
  666.     var num;    
  667.  
  668.     if ( v!='')
  669.     {
  670.         while (v.charAt(v.length-1)==' ')
  671.         {
  672.             v=v.substring(0,v.length-1)
  673.         }
  674.     }
  675.  
  676.  
  677.     for(j=1;j<=s.length/2;j++)
  678.     {
  679.         switch (s[2*(j-1)])
  680.         {
  681.             case 1:  // retezec
  682.                 if (v.search(s[2*j-1])!=-1) return 1;
  683.                 break;
  684.             case 2:  // interval
  685.                 num=getNumber(v);        
  686.                 if (isNaN(num)) return 0;
  687.                 if ( s[2*j-1][0]<=num && s[2*j-1][1]>=num) return 1;                
  688.                 break;
  689.         }
  690.     }
  691.     return 0;
  692. }
  693.  
  694. // function ccSA(index,spravne,mode)   mode 0-spravne    1-moje
  695. function ccSA(i,s,m)
  696. {
  697.     var b,j;
  698.     var delka=s.length/2;
  699.     for(j=1;j<=delka;j++)
  700.     {
  701.         b=eval('zadano_'+i+'_'+j);
  702.         switch (m)
  703.         {
  704.             case 0:
  705.                 cV('sa_'+i+'_'+j,s[2*(j-1)]);
  706.                 if (b=="") cS('sa_'+i+'_'+j,'vzor_nic');    
  707.                 else if (compareOneSA(s[2*(j-1)+1],b)!=0) cS('sa_'+i+'_'+j,'vzor_spravne');
  708.                 else cS('sa_'+i+'_'+j,'vzor_spatne');
  709.                 break;
  710.             case 1:
  711.                 cV('sa_'+i+'_'+j,b);
  712.                 if (b=="") cS('sa_'+i+'_'+j,'student_nic');    
  713.                 else if (compareOneSA(s[2*(j-1)+1],b)!=0) cS('sa_'+i+'_'+j,'student_spravne');
  714.                 else cS('sa_'+i+'_'+j,'student_spatne');
  715.                 break;
  716.         }
  717.  
  718.     }
  719.     
  720. }
  721.  
  722. // subcheckSA(index,pole_spravnych
  723.  
  724. function subcheckSA(i,s)
  725. {
  726.     var delka=s.length/2;
  727.     var b,j;
  728.     var correct=0;
  729.     for (j=1;j<=delka;j++)
  730.     {
  731.         b=gV('sa_'+i+'_'+j);
  732.         if (compareOneSA(s[2*(j-1)+1],b)!=0) correct++;
  733.         eval('zadano_'+i+'_'+j+'=b;');
  734.     }
  735.     return correct;
  736. }
  737.  
  738. // showCorrect(index)
  739.  
  740. function showCorrectSA(i,s)
  741. {
  742.     if (eval('zobrazeno_'+i)==1)
  743.     {
  744.         ccSA(i,s,0);    
  745.         eval('zobrazeno_'+i+'=0');
  746.         document.getElementById('UCP_'+i).src=pr_spravne;
  747.     }
  748.     else
  749.     {
  750.         ccSA(i,s,1);    
  751.         eval('zobrazeno_'+i+'=1');
  752.         document.getElementById('UCP_'+i).src=pr_moje;
  753.     }
  754. }
  755.  
  756.  
  757.  
  758. // checkSA(index,pole_spravnych,pocet_napoved,komentar,chovani,hlasky) 
  759.                        
  760.  
  761. function checkSA(i,s,n,k,c,h)
  762. {
  763.     var st=eval('stav_'+i);
  764.     var b=0;
  765.     //pocatek zobrazim textik
  766.         if (st==0)
  767.     {
  768.         sE('S_'+i);
  769.             eval('stav_'+i+'++;');
  770.         sE('CHECKBUTTON');
  771.         sF('sa_'+i+'_1');
  772.         aS();
  773.         if (h==1) sE('HU_'+i);
  774.         return;
  775.     }
  776.     if (st>0 && st<=n)
  777.     {        
  778.         if (h==1)
  779.         {
  780.             //schovam predchozi hlasku
  781.             if (st==1) 
  782.             {
  783.                 hE('HU_'+i);    
  784.             }
  785.             else if (st>1)
  786.             {
  787.                 upravHN(i,(st-1),s.length/2);                    
  788.             }
  789.         }
  790.         b=subcheckSA(i,s);
  791.         if (b==s.length/2)   // trefil se
  792.         {
  793.             eval('stav_'+i+'='+(n+1)+';');
  794.             eval('st='+(n+1)+';');
  795.             playSound(6);
  796.         }
  797.         else
  798.         {
  799.             //zobrazim novou hlasku
  800.             if (h==1)
  801.             {
  802.                 sE('HN_'+i+'_'+st);
  803.                 if ((s.length/2)!=1) cI('HV_'+i+'_'+st,b);    
  804.             }
  805.             sE('N_'+i+'_'+st);                        
  806.             eval('stav_'+i+'++;');
  807.             eval('napoved_'+i+'++;');
  808.             playSound(2);
  809.             return;            
  810.         }
  811.     }
  812.  
  813.     // odpovedel spravne nebo po posledni napovede
  814.     if (st==(n+1))
  815.     {
  816.         // schovam predchozi hlasku
  817.         if (h==1)
  818.         {
  819.             if (n==0) hE('HU_'+i);
  820.             else upravHN(i,(st-1),s.length/2);                                
  821.         }
  822.         rT('sa_'+i+'_',s.length/2,'');
  823.         eval('stav_'+i+'++;');
  824.         b=subcheckSA(i,s);
  825.         if (b==s.length/2)
  826.         {
  827.             if (h==1) sE('HP_'+i);
  828.             playSound(6);
  829.         }
  830.         else
  831.         {
  832.             if (h==1) 
  833.             {
  834.                 sE('HK_'+i);
  835.                 if ((s.length/2)!=1) cI('HKV_'+i,b);
  836.             }
  837.             playSound(2);
  838.         }
  839.         eval('bodu_'+i+'='+b+';');
  840.         ccSA(i,s,0);
  841.         sE('UC_'+i);
  842.         if (k==1) sE('K_'+i);
  843.         return;
  844.         
  845.     }
  846.     // uklid a dalsi uloha     rozlisit podle chovani!!!
  847.     if (st==(n+2))
  848.     {
  849.         switch (c)
  850.         {
  851.         case 0:
  852.             break;
  853.         case 1:
  854.             hE('S_'+i);
  855.             break;        
  856.         }
  857.         hH(i,n);  //schovam napovedy
  858.         if (h==1) 
  859.         {
  860.             hE('HP_'+i);
  861.             hE('HK_'+i);
  862.         }
  863.         hE('CHECKBUTTON');
  864.         stav++;
  865.         check();
  866.         return;
  867.     }
  868.  
  869. }
  870.  
  871. // oSA(index,pole_spravnych,komentar,chovani) 
  872. function oSA(i,s,k,c)
  873. {
  874.     var j;
  875.     for(j=1;j<=s.length/2;j++) cV('sa_'+i+'_'+j,'');    
  876.         if (stav==i)
  877.     {
  878.         eval('stav_'+i+'=0;');
  879.                 return;
  880.     }
  881. //    if ( i<stav && (c==0 || c==2) ) 
  882.     if ( i<stav ) 
  883.     {
  884.             sE('S_'+i);
  885.         if (k==1) sE('K_'+i);
  886.         rT('sa_'+i+'_',s.length/2,'');
  887.         ccSA(i,s,0);
  888.         sE('UC_'+i);
  889.     }
  890. }
  891.  
  892.  
  893. // checkUkol(index,pocet_napoved,komentar,chovani,znamkovat)
  894.  
  895. function checkUkol(i,n,k,c,z,h)
  896. {
  897.     var tmp;
  898.     var st=eval('stav_'+i);
  899.     //pocatek zobrazim textik
  900.         if (st==0)
  901.     {
  902.         sE('U_'+i);
  903.             eval('stav_'+i+'++;');
  904.         sE('CHECKBUTTON');
  905.         sF('U_'+i+'_x');
  906.         aU();
  907.         if (h==1) sE('HU_'+i);
  908.         return;
  909.     }
  910.     if (st>0 && st<=n)
  911.     {        
  912.         if (h==1)
  913.         {
  914.             //schovam predchozi hlasku
  915.             if (st==1) hE('HU_'+i);    
  916.             else if (st>1)
  917.             {
  918.                 upravHN(i,(st-1),1);                    
  919.             }
  920.         }
  921.         //zobrazim novou hlasku
  922.         if (h==1) sE('HN_'+i+'_'+st);
  923.         sE('N_'+i+'_'+st);                        
  924.         eval('stav_'+i+'++;');
  925.         eval('napoved_'+i+'++;');
  926.         playSound(3);
  927.         return;            
  928.     }
  929.     if (st==(n+1))
  930.     {
  931.         // schovam predchozi hlasku
  932.         if (h==1)
  933.         {
  934.             if (n==0) hE('HU_'+i);
  935.             else upravHN(i,n,1);                                
  936.             sE('HP_'+i);    // oznameni, aby se oznamkoval
  937.         }
  938.         rO('U_'+i+'_x');
  939.         sE('U_'+i+'_z');
  940.         eval('stav_'+i+'++;');
  941.         if (k==1) sE('K_'+i);
  942.         tmp=correct_text(gV('U_'+i+'_x'));
  943.         eval('zadano_'+i+'=\''+tmp+'\';');
  944.         playSound(3);
  945.         return;
  946.         
  947.     }
  948.     // cekam na oznamkovani
  949.     if (st==(n+2))
  950.     {
  951.         if (Oznamkovano(i)==0)
  952.         {
  953.             return;
  954.         }
  955.         playSound(7);
  956.         eval('stav_'+i+'++;');
  957.         eval('bodu_'+i+'='+Znamkuj(i)+';');
  958.         dC('U_'+i+'_',5,'');
  959.         switch (c)
  960.         {
  961.         case 0:
  962.             break;
  963.         case 1:
  964.             hE('U_'+i);
  965.             break;        
  966.         }
  967.         hH(i,n);  //schovam napovedy
  968.         if (h==1) 
  969.         {
  970.             hE('HP_'+i);
  971.         }
  972.         hE('CHECKBUTTON');
  973.         stav++;
  974.         check();
  975.         return;
  976.     }
  977. }
  978.                                                                
  979.                         
  980. function oU(i,k,c,z)
  981. {
  982.     var b=eval('bodu_'+i);
  983.         if (stav==i)
  984.     {
  985.         eval('stav_'+i+'=0;');
  986.                 return;
  987.         }
  988. //        if ( i<stav && c==0) 
  989.         if ( i<stav ) 
  990.         {
  991.         tmp=eval('zadano_'+i);
  992.         tmp=tmp.replace(/"/g,"\"");
  993.             cV('U_'+i+'_x',eval('zadano_'+i));
  994.                 sE('U_'+i);
  995.                 if (k==1) sE('K_'+i);
  996.                 dE('U_'+i+'_x');
  997.                 if (z==1)
  998.         {
  999.                     sE('U_'+i+'_z');
  1000.                     if (b==10) sC('U_'+i+'_1');
  1001.             if (b==7) sC('U_'+i+'_2');
  1002.                     if (b==5) sC('U_'+i+'_3');
  1003.             if (b==2) sC('U_'+i+'_4');
  1004.                     if (b==0) sC('U_'+i+'_5');
  1005.             dC('U_'+i+'_',5,'');
  1006.         }
  1007.     }
  1008. }
  1009.  
  1010.  
  1011.