Subversion Repositories wimsdev

Rev

Rev 7086 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. !! item_list : lines , item_type : items , break=2 : 2 columns , break=6 : 6 columns
  2. !set DHTML=$empty
  3. !set n=$counter
  4. !if $dragcolors=$empty
  5.     !set unused_color=#ffbb63
  6.    !set pick_color=#639bff
  7.    !set drop_color=#00fc96
  8.    !set blue_layer=#b2d1ff
  9. !else
  10.     !set unused_color=!item 1 of $dragcolors
  11.     !set pick_color=!item 2 of $dragcolors
  12.     !set drop_color=!item 3 of $dragcolors
  13.     !set blue_layer=!item 4 of $dragcolors
  14. !endif
  15. !set c=0
  16. !set f=0
  17. !set total_objects=!itemcnt $item_type
  18. !set break_cnt=0
  19. !if $break=$empty
  20.     !set break=2
  21. !endif
  22. <table id="exercise" class="exercise">
  23.     <tr>
  24.     <td class="exercise_t">
  25.         $(question$n)
  26.         !if $exotext!=$empty
  27.             $exotext
  28.         !endif
  29.     </td>
  30.     </tr>
  31.     <tr>
  32.     <td class="exercise_m">
  33.         <table class="exercise">
  34.             <tr>
  35.             !for p=1 to $total_objects
  36.                 !increase break_cnt
  37.                 !set thing=!line $p of $item_list
  38.                 !set type=$(item_type[$p])
  39.                 <td style="text-align:center;background-color:$blue_layer;vertical-align:middle;">
  40.                     <div id="mydiv$c" style="width:$xsize;height:$ysize;text-align:center;background-color:$unused_color;position:relative;border:2px solid red;">
  41.                         !if $type=0
  42.                             $thing
  43.                         !else
  44.                             !if $type=1
  45.                                 !if $tex_adjust=1
  46.                                     !set ins_attr=width="$xsize"
  47.                                 !endif
  48.                                 !insmath $thing
  49.                             !else
  50.                                 !if $type=2
  51.                                     !set ins_attr=width="$xsize" height="$ysize"
  52.                                     !insdraw $thing
  53.                                 !else
  54.                                     !if $type=3
  55.                                         !set ins_attr=width="$xsize" height="$ysize"
  56.                                         !insplot $thing
  57.                                     !else
  58.                                         error: no type definitionlist $$item_type[$p]
  59.                                     !endif
  60.                                 !endif
  61.                             !endif
  62.                         !endif
  63.                         !set DHTML=!append item "mydiv$c" to $DHTML
  64.                     </div>
  65.                 </td>
  66.                 !if $break_cnt<$break
  67.                 <td style="background-color:$blue_layer;text-align:center;vertical-align:middle;height:$ysize;width:$xsize">
  68.                     <img src="$gifdir/blank.gif" style="display:block" id="blank$c" width="$xsize" height="$ysize" alt="noalt" />
  69.                     <img src="$gifdir/leftright.gif" style="display:none" id="leftright$c" width="$xsize" height="$ysize" alt="noalt" />
  70.                 </td>
  71.                 !endif
  72.                 !if $break_cnt=$break
  73.                     !set break_cnt=0
  74.                     </tr>
  75.                     <tr>
  76.                 !endif
  77.                 !increase c
  78.             !next p
  79.             </tr>
  80.         </table>
  81.     </td>
  82.     </tr>
  83. </table>
  84.    
  85. <div id="send_buttons" class="embedded_central">
  86.     <input type="button" id="schaersvoorde_ok_button" onclick="javascript:sendanswer();" value="$send" />
  87.     !if $wims_user = supervisor
  88.         <input type="button" id="schaersvoorde_ok_button" onclick="showanswer();" value="show correct answer" />
  89.     !else
  90.         !set clear=!record 67 of $remarkdir/commonremarks.$taal
  91.         <input type="button" id="schaersvoorde_nok_button" onclick="resetall();" value="$clear" />
  92.     !endif
  93.     <input type="button" id="schaersvoorde_nok_button" onclick="javascript:dontknow();"  value="$dontknow" />
  94. </div>
  95.  
  96. <script src="$jsdir/wz_dragdrop.js"></script>
  97.  
  98. <script>
  99. //<![CDATA[
  100. <!-- no validator -->
  101.     var URL;
  102.     SET_DHTML( CURSOR_MOVE , $DHTML);
  103.     var orgx = 0;
  104.     var orgy = 0;
  105.     var pick_id = 0;
  106.     var size = $total_objects;
  107.     var show="<ol>";
  108.     var reply = new Array();
  109.     for(var p = 0;p < size; p++){
  110.         reply[p] = p;
  111.     }
  112.    
  113.     function resetall(){
  114.         document.location.reload();
  115.     }
  116.    
  117.     function my_PickFunc(){
  118.         orgx = dd.obj.x;
  119.         orgy = dd.obj.y;
  120.         pick_id = dd.obj.id;
  121.         document.getElementById(dd.obj.id).style.backgroundColor = "$pick_color";
  122.     }
  123.    
  124.     function setVisible(n){
  125.         document.getElementById("leftright"+n).style.display = "block";
  126.         document.getElementById("blank"+n).style.display = "none";
  127.         return;
  128.     }
  129.    
  130.     !if $wims_user=supervisor
  131.         var only_once = 0;
  132.         function showanswer(){
  133.             if(only_once == 0 ){
  134.                 !set r=0
  135.                 x_original = new Array();
  136.                 y_original = new Array()
  137.                 !for p in $(answer$n)
  138.                     reply[$r] = "$p";
  139.                     x_original[$r] = dd.elements["mydiv$r"].x;
  140.                     y_original[$r] = dd.elements["mydiv$r"].y;
  141.                     !increase r
  142.                 !next p
  143.                 !set r=0
  144.                 !for p in $(answer$n)
  145.                     dd.elements["mydiv$p"].moveTo(x_original[$r],y_original[$r]);
  146.                     try{setVisible($p);}catch(e){}
  147.                     document.getElementById("mydiv$p").style.backgroundColor = "$drop_color";
  148.                     !increase r
  149.                 !next p
  150.                 only_once = 1;
  151.             }
  152.             return;
  153.         }
  154.     !endif
  155.    
  156.     function my_DropFunc(){
  157.         var marge = 10;var x = dd.obj.x;var y = dd.obj.y;var found = 0;var tmp;var idx;var id;
  158.         if( dd.obj.id == pick_id ){
  159.             id = pick_id.replace("mydiv","");
  160.             for(var p = 0; p < size  ; p++){
  161.                 if(reply[p] == id){
  162.                     idx = p; // dus sleepplaatje heeft rangvolgorde idx
  163.                 }
  164.             }
  165.             for(var p = 0; p < size  ; p++){
  166.                 if(found == 0 && reply[p] != id){
  167.                     if( y > dd.elements["mydiv"+reply[p]].y - marge && y < dd.elements["mydiv"+reply[p]].y + marge){
  168.                         if( x > dd.elements["mydiv"+reply[p]].x - marge && x < dd.elements["mydiv"+reply[p]].x + marge){
  169.                             dd.obj.moveTo(dd.elements["mydiv"+reply[p]].x,dd.elements["mydiv"+reply[p]].y);
  170.                             dd.elements["mydiv"+reply[p]].moveTo(orgx,orgy);
  171.                             found = 1;
  172.                             tmp = reply[p];
  173.                             try{setVisible(p);}catch(e){}
  174.                             try{setVisible(idx);}catch(e){}
  175.                             reply[p] = reply[idx];
  176.                             reply[idx] = tmp;
  177.                             document.getElementById("mydiv"+reply[p]).style.backgroundColor = "$drop_color";
  178.                             document.getElementById("mydiv"+reply[idx]).style.backgroundColor = "$drop_color";
  179.                         }
  180.                     }
  181.                 }
  182.             }
  183.         }
  184.         if(found == 0){ dd.obj.moveTo(orgx,orgy);
  185.         document.getElementById(dd.obj.id).style.backgroundColor = "$unused_color";}
  186.         dd.obj='null';
  187.     }
  188.    
  189.     function check_inputs(input_id){
  190.         if(document.getElementById(input_id+0)){
  191.             var i = 0;var input;var n=1;
  192.             while(document.getElementById(input_id+i)){
  193.                 input = document.getElementById(input_id+i).value;
  194.                 if (input.length == 0){setAlarm(r44+"&nbsp;no.&nbsp;"+n);return "error";}
  195.                 if(input.indexOf(',') != -1){setAlarm(r4);return "error";}
  196.                 input=science(input);if(input == "error"){return "error";}
  197.                 reply[size+i] = input;
  198.                 show=show + "<li>" + input + "</li>";
  199.                 document.getElementById(input_id+i).style.backgroundColor = "$drop_color";
  200.                 i++;
  201.             }
  202.         }
  203.         return;
  204.     }
  205.    
  206.     function sendanswer(){
  207.         // try if inputfields "mathml0" or "myinput0" are present
  208.         show="<ol>";// reset "show"
  209.         if(check_inputs("mathml")  == "error"){return;}
  210.         if(check_inputs("myinput") == "error"){return;}
  211.         for(var p = 0 ; p < size ; p++){
  212.             try{setVisible(p);}catch(e){}
  213.             document.getElementById("mydiv"+p).style.backgroundColor = "$drop_color";
  214.         }
  215.         show = show + "</ol>";
  216.         myConfirm(show,reply,'$wims_ref_name','$session','$module','$counter','$ok_send_color');
  217.     }
  218.    
  219.     function dontknow(){
  220.         myConfirm('$dontknow','?','$wims_ref_name','$session','$module','$counter','$nok_send_color');
  221.     }
  222. //]]>
  223. </script>
  224.