Diff for /rat/client/parameter.html between versions 1.11 and 1.71.4.1

version 1.11, 2001/08/08 13:31:43 version 1.71.4.1, 2017/06/21 19:55:03
Line 1 Line 1
 <html>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <!--  <!--
 The LearningOnline Network with CAPA  The LearningOnline Network with CAPA
 Parameter Input Window  Parameter Input Window
 06/16/00,06/17,11/17,11/18,11/23,11/27,11/28,12/15,12/16,  //
 03/21/01,03/24,06/26 Gerd Kortemeyer  // $Id$
 07/24/01 Scott Harrison  //
   // Copyright Michigan State University Board of Trustees
   //
   // This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   //
   // LON-CAPA is free software; you can redistribute it and/or modify
   // it under the terms of the GNU General Public License as published by
   // the Free Software Foundation; either version 2 of the License, or
   // (at your option) any later version.
   //
   // LON-CAPA is distributed in the hope that it will be useful,
   // but WITHOUT ANY WARRANTY; without even the implied warranty of
   // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   // GNU General Public License for more details.
   //
   // You should have received a copy of the GNU General Public License
   // along with LON-CAPA; if not, write to the Free Software
   // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   //
   // /home/httpd/html/adm/gpl.txt
   //
   // http://www.lon-capa.org/
   //
 -->  -->
 <head>  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>LON-CAPA</title>  <title>LON-CAPA</title>
 </head>  
   
 <script>  <script type="text/javascript">
   // <![CDATA[
   
 var ptype='';  var ptype='';
 var pvalue='';  var pvalue='';
   var pmodval='';
   var pextraval='';
   var pextravaltwo='';
 var preturn='';  var preturn='';
 var pcode='';  var pcode='';
 var pscat='';  var pscat='';
 var pmarker='';  var pmarker='';
   var pmodal='';
 var pname='';  var pname='';
   
   var defhour=0;
   var defmin=0;
   var defsec=0;
   
 var svalue;  var svalue;
 var stype;  var stype;
 var smarker;  var smarker;
Line 41  function selwrite(text) { Line 74  function selwrite(text) {
 }  }
   
 function choicestart() {  function choicestart() {
   this.window.choices.document.clear();    this.window.choices.document.open();
   choicewrite('<html><body bgcolor="#FFFFFF">');    choicewrite('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
     choicewrite('<html xmlns="http://www.w3.org/1999/xhtml">');
     choicewrite('<head>');
     choicewrite('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
     choicewrite('<title>LON-CAPA</title>');
     choicewrite('<style type="text/css">');
     choicewrite('<!--');
     choicewrite('body {');
     choicewrite('font-family: Verdana,Arial,Helvetica,sans-serif;');
     choicewrite('line-height:130%;');
     choicewrite('font-size:0.83em;');
     choicewrite('background: #FFFFFF;');
     choicewrite('}');
     choicewrite('table.LC_parmsel_table {font-size: 90%;}');
     choicewrite('table.LC_parmsel_table tr td { padding: 5px; border: 1px solid #C8C8C8;}');
     choicewrite('-->');
     choicewrite('</style>');
     choicewrite('</head>');
     choicewrite('<body>');
 }  }
   
 function choiceend() {  function choiceend() {
Line 55  function choicewrite(text) { Line 106  function choicewrite(text) {
 }  }
   
 function tablestart(headtext) {  function tablestart(headtext) {
   choicewrite('<table><tr bgcolor="#AAFFAA"><th colspan=3>'+    choicewrite('<table class="LC_parmsel_table"><tr bgcolor="#C5DB99"><th colspan="3">'+
               headtext+'</th></tr>');                headtext+'</th></tr>');
 }  }
   
 function valline(text,id1,id2) {  function valline(text,id1,id2) {
   choicewrite('<tr bgcolor="#AAFFAA"><td>'+text+    choicewrite('<tr><td>'+text+
               '</td><td><input type=text size=4 name=val'+                '</td><td><input type="text" size="4" name="val'+
               id1+'></td><td>incl:<input type=checkbox name=val'+                id1+'" /></td><td>incl:<input type="checkbox" name="val'+
               id2+'></td></tr>');                id2+'" /></td></tr>');
   }
   
   function escapeHTML(text) {
     text = text.replace(/&/g, '&amp;');
     text = text.replace(/"/g, '&quot;');
     text = text.replace(/</g, '&lt;');
     text = text.replace(/>/g, '&gt;');
     return text;
 }  }
   
 function datecalc() {  function datecalc() {
Line 82  function datecalc() { Line 141  function datecalc() {
 function hour() {  function hour() {
    var thishour=cdate.getHours();     var thishour=cdate.getHours();
     var i; var j;      var i; var j;
     choicewrite('<select name=hours onChange="parent.datecalc();">');      choicewrite('<select name="hours" onchange="parent.datecalc();">');
     for (i=0;i<=23;i++) {      for (i=0;i<=23;i++) {
         choicewrite('<option value='+i);          choicewrite('<option value="'+i+'"');
         if (i==thishour) {          if (i==thishour) {
             choicewrite(' selected');              choicewrite(' selected="selected"');
         }          }
         choicewrite('>');          choicewrite('>');
         if (i==12) { choicewrite('noon'); } else {          if (i==12) { choicewrite('noon'); } else {
Line 106  function hour() { Line 165  function hour() {
 function minute() {  function minute() {
    var thisminutes=cdate.getMinutes();     var thisminutes=cdate.getMinutes();
     var i;      var i;
     choicewrite('<select name=minutes onChange="parent.datecalc();">');      choicewrite('<select name="minutes" onchange="parent.datecalc();">');
     for (i=0;i<=59;i++) {      for (i=0;i<=59;i++) {
         choicewrite('<option value='+i);          choicewrite('<option value="'+i+'"');
         if (i==thisminutes) {          if (i==thisminutes) {
             choicewrite(' selected');              choicewrite(' selected="selected"');
         }          }
         choicewrite('>'+i+'</option>');          choicewrite('>'+i+'</option>');
     }      }
Line 120  function minute() { Line 179  function minute() {
 function second() {  function second() {
    var thisseconds=cdate.getSeconds();     var thisseconds=cdate.getSeconds();
     var i;      var i;
     choicewrite('<select name=seconds onChange="parent.datecalc();">');      choicewrite('<select name="seconds" onchange="parent.datecalc();">');
     for (i=0;i<=59;i++) {      for (i=0;i<=59;i++) {
         choicewrite('<option value='+i);          choicewrite('<option value="'+i+'"');
         if (i==thisseconds) {          if (i==thisseconds) {
             choicewrite(' selected');              choicewrite(' selected="selected"');
         }          }
         choicewrite('>'+i+'</option>');          choicewrite('>'+i+'</option>');
     }      }
Line 135  function second() { Line 194  function second() {
 function date() {  function date() {
    var thisdate=cdate.getDate();     var thisdate=cdate.getDate();
     var i;      var i;
     choicewrite('<select name=date onChange="parent.datecalc();">');      choicewrite('<select name="date" onchange="parent.datecalc();">');
     for (i=1;i<=31;i++) {      for (i=1;i<=31;i++) {
         choicewrite('<option value='+i);          choicewrite('<option value="'+i+'"');
         if (i==thisdate) {          if (i==thisdate) {
             choicewrite(' selected');              choicewrite(' selected="selected"');
         }          }
         choicewrite('>'+i+'</option>');          choicewrite('>'+i+'</option>');
     }      }
Line 148  function date() { Line 207  function date() {
   
 function year() {  function year() {
    var thisyear=cdate.getFullYear();     var thisyear=cdate.getFullYear();
      var nowdate=new Date();
      var nowyear=nowdate.getFullYear();
      if ( !thisyear ) { thisyear=nowyear; }
      var loweryear=thisyear-2;
      var upperyear=thisyear+5;
      if (thisyear>nowyear) { loweryear=nowyear-2; }
      if (thisyear<nowyear) { upperyear=nowyear+5; } 
     var i;      var i;
     choicewrite('<select name=year onChange="parent.datecalc();">');      choicewrite('<select name="year" onchange="parent.datecalc();">');
     for (i=thisyear-25;i<=thisyear+50;i++) {      for (i=loweryear;i<=upperyear;i++) {
         choicewrite('<option value='+i);          choicewrite('<option value="'+i+'"');
         if (i==thisyear) {          if (i==thisyear) {
             choicewrite(' selected');              choicewrite(' selected="selected"');
         }          }
         choicewrite('>'+i+'</option>');          choicewrite('>'+i+'</option>');
     }      }
Line 163  function year() { Line 229  function year() {
 function month() {  function month() {
     var thismonth=cdate.getMonth();      var thismonth=cdate.getMonth();
     var i;      var i;
     choicewrite('<select name=month onChange="parent.datecalc();">');      choicewrite('<select name="month" onchange="parent.datecalc();">');
     for (i=0;i<=11;i++) {      for (i=0;i<=11;i++) {
         choicewrite('<option value='+i);          choicewrite('<option value="'+i+'"');
         if (i==thismonth) {          if (i==thismonth) {
             choicewrite(' selected');              choicewrite(' selected="selected"');
         }          }
         choicewrite('>'+months[i]+'</option>');          choicewrite('>'+months[i]+'</option>');
     }      }
Line 178  function month() { Line 244  function month() {
 function intminute() {  function intminute() {
    var thisminutes=cmins;     var thisminutes=cmins;
     var i;      var i;
     choicewrite('<select name=minutes onChange="parent.intcalc();">');      var result = '';
       result += '<select name="minutes" onchange="parent.intcalc();">';
     for (i=0;i<=59;i++) {      for (i=0;i<=59;i++) {
         choicewrite('<option value='+i);          result += '<option value="'+i+'"';
         if (i==thisminutes) {          if (i==thisminutes) {
             choicewrite(' selected');              result += ' selected="selected"';
         }          }
         choicewrite('>'+i+'</option>');          result += '>'+i+'</option>';
     }      }
     choicewrite('</select>');      result += '</select>';
       return result;
 }   } 
   
 function inthour() {  function inthour() {
    var thishours=chours;     var thishours=chours;
     var i;      var i;
     choicewrite('<select name=hours onChange="parent.intcalc();">');      var result = '';
       result += '<select name="hours" onchange="parent.intcalc();">';
     for (i=0;i<=23;i++) {      for (i=0;i<=23;i++) {
         choicewrite('<option value='+i);          result += '<option value="'+i+'"';
         if (i==thishours) {          if (i==thishours) {
             choicewrite(' selected');              result += ' selected="selected"';
         }          }
         choicewrite('>'+i+'</option>');          result += '>'+i+'</option>';
     }      }
     choicewrite('</select>');      result += '</select>';
 }       return result;
   }
   
 function intsecond() {  function intsecond() {
    var thisseconds=csecs;      var thisseconds=csecs;
     var i;      var i;
     choicewrite('<select name=seconds onChange="parent.intcalc();">');      var result = '';
       result += '<select name="seconds" onchange="parent.intcalc();">';
     for (i=0;i<=59;i++) {      for (i=0;i<=59;i++) {
         choicewrite('<option value='+i);          result += '<option value="'+i+'"';
         if (i==thisseconds) {          if (i==thisseconds) {
             choicewrite(' selected');              result += ' selected="selected"';
         }          }
         choicewrite('>'+i+'</option>');          result += '>'+i+'</option>';
     }      }
     choicewrite('</select>');      result += '</select>';
       return result;
 }   } 
   
   
 function intday() {  function intday() {
    var thisdate=cdays;     var thisdate=cdays;
     var i;      var i;
     choicewrite('<select name=date onChange="parent.intcalc();">');      var result ='';
       result += '<select name="date" onchange="parent.intcalc();">';
     for (i=0;i<=31;i++) {      for (i=0;i<=31;i++) {
         choicewrite('<option value='+i);          result += '<option value="'+i+'"';
         if (i==thisdate) {          if (i==thisdate) {
             choicewrite(' selected');              result += ' selected="selected"';
         }          }
         choicewrite('>'+i+'</option>');          result += '>'+i+'</option>';
     }      }
     choicewrite('</select>');      result += '</select>';
       return result;
 }  }
   
 function intcalc() {  function intcalc() {
Line 238  function intcalc() { Line 312  function intcalc() {
              sform.hours.options[sform.hours.selectedIndex].value*1)*60+               sform.hours.options[sform.hours.selectedIndex].value*1)*60+
              sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+               sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+
              sform.seconds.options[sform.seconds.selectedIndex].value*1;               sform.seconds.options[sform.seconds.selectedIndex].value*1;
     draw();      if ((ptype=='date') && (pscat=='interval')) {
           var newpmodval = '';
           var newpextraval = '';
           var newpextravaltwo = 'Done';
           if (sform.donebutton.length) {
               for (var i=0; i<sform.donebutton.length; i++) {
                   if (sform.donebutton[i].checked) {
                       if (sform.donebutton[i].value == '_done') {
                           newpmodval = sform.donebutton[i].value;
                           newpextravaltwo = sform.donebutton_text.value;
                       } else {
                           if (sform.donebutton[i].value == '_done_proctor') { 
                               newpmodval = sform.donebutton[i].value;
                               newpextraval = sform.donebutton_proctorkey.value;
                               newpextravaltwo = sform.donebutton_text.value;
                               newpextravaltwo = newpextravaltwo.replace(/:/g,'');
                           }
                       }
                   }
               }
           }
           pmodval = newpmodval;
           pextraval = newpextraval;
           pextravaltwo = newpextravaltwo;
           draw();
           if (pmodval) {
               var doneRegExp = /^(_done)(|_proctor)$/;
               var donevals = pmodval.match(doneRegExp);
               if (donevals.length == 3) {
                   svalue += donevals[1];
               }
               if (newpextravaltwo) {
                   if (newpextravaltwo != 'Done') { 
                       svalue += ':'+newpextravaltwo+':';
                   }
               }
               if (donevals[2] != '') {
                   svalue += donevals[2];
                   if (pextraval != '') {
                       svalue += '_'+pextraval;
                   }
               }
           }
       } else {
           draw();
       }
   }
   
   function toggleSecret() {
       var sform=choices.document.forms.sch;
       if (sform.donebutton.length) {
           for (var i=0; i<sform.donebutton.length; i++) {
               if (sform.donebutton[i].checked) {
                   if (sform.donebutton[i].value == '') {
                       if (document.getElementById('donebuttontextdiv')) {
                           document.getElementById('donebuttontextdiv').style.display='none';
                       }
                   } else {
                       if (document.getElementById('donebuttontextdiv')) {
                           document.getElementById('donebuttontextdiv').style.display='block';
                       }
                   }
                   if (sform.donebutton[i].value == '_done_proctor') {
                       if (document.getElementById('done_proctorkey')) {
                           document.getElementById('done_proctorkey').type='text';
                       }
                   } else {
                       if (document.getElementById('done_proctorkey')) {
                           document.getElementById('done_proctorkey').type='hidden';
                           document.getElementById('done_proctorkey').value='';
                       }
                   }
               }
           }
       }
   }
   
   function validateInterval() {
       var sform=choices.document.forms.sch;
       if (sform.donebutton.length) {
           for (var i=0; i<sform.donebutton.length; i++) {
               if (sform.donebutton[i].checked) {
                   if (sform.donebutton[i].value == '_done_proctor') {
                       if ((sform.donebutton_proctorkey.value == '') || 
                           (sform.donebutton_proctorkey.value == null)) {
                           alert('Please provide a key for a proctor to enter when a student uses the "Done" button.');
                           return;
                       }
                   }
               }
           }
       }
       intcalc();
       assemble();
 }  }
   
 function integereval() {  function integereval() {
Line 248  function integereval() { Line 415  function integereval() {
    if ((pscat=='pos') && (svalue==0)) {     if ((pscat=='pos') && (svalue==0)) {
       svalue='';        svalue='';
    }     }
    if (pscat.indexOf('range')!=-1) {     if (pscat.indexOf('inrange')!=-1) {
       var rangeparts=new Array;        var rangeparts=new Array;
       rangeparts=split('_',pscat);        rangeparts=split('_',pscat);
       rangeparts=split('...',rangeparts[1]);        rangeparts=split(',',rangeparts[1]);
       if (svalue<rangeparts[0]) { svalue=rangeparts[0]; }        if (svalue<rangeparts[0]) { svalue=rangeparts[0]; }
       if (svalue>rangeparts[1]) { svalue=rangeparts[1]; }        if (svalue>rangeparts[1]) { svalue=rangeparts[1]; }
    }     }
Line 273  function stringeval() { Line 440  function stringeval() {
    draw();     draw();
 }  }
   
   function radiostringeval(newval) {
      svalue=newval;
      draw();
   }
   
   function callradiostringeval(newval) {
       return 'onclick="parent.radiostringeval(\''+newval+'\')"';
   }
   
   function callintervalpmodval() {
       return 'onclick="parent.intcalc();parent.toggleSecret()"';
   } 
   
 function intervaldis() {  function intervaldis() {
     csecs=svalue;      csecs=svalue;
     cdays=Math.floor(csecs/86400);      cdays=Math.floor(csecs/86400);
Line 281  function intervaldis() { Line 461  function intervaldis() {
     csecs-=chours*3600;      csecs-=chours*3600;
     cmins=Math.floor(csecs/60);      cmins=Math.floor(csecs/60);
     csecs-=cmins*60;      csecs-=cmins*60;
     choicewrite(cdays+' days '+chours+' hours '      return cdays+' days '+chours+' hours '+cmins+' mins '+csecs+' secs';
                +cmins+' mins '+csecs+' secs');  
 }  }
       
       function pickcolor(picked) {
         svalue=picked;
 function afterproc() {    draw();
   choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>Error after rounding: '  
              +'<input type=checkbox name=val1></td></tr>');  
 }  }
   
   function colorfield(ir,ig,ib) {
      var col=new Array;
      col=["00","11","22","44","66","88","AA","CC","DD","EE","FF"];
      var color='#'+col[ir]+col[ig]+col[ib];
      var selection="<font color='"+color+"'>X</font>";
      if (color==svalue) { selection="<font color='#"+col[10-ir]+col[10-ig]+col[10-ib]+"'>X</font>"; }
      choicewrite('<td bgcolor="'+color+'"><a href="javascript:parent.pickcolor('+"'"+
                  color+"'"+')">'+selection+'</a></td>');
                  
   }    
   
 function draw() {  function draw() {
    choicestart();     choicestart();
    choicewrite('<form name=sch');     choicewrite('<form name="sch"');
    if (ptype=='int') {     if (ptype=='int') {
       choicewrite(' action="javascript:integereval();"');        choicewrite(' action="javascript:integereval();"');
    }     }
Line 304  function draw() { Line 492  function draw() {
    if (ptype=='string') {     if (ptype=='string') {
       choicewrite(' action="javascript:stringeval();"');        choicewrite(' action="javascript:stringeval();"');
    }     }
      if (ptype != 'int' && ptype != 'float' && ptype != 'string') {
          choicewrite(' action=""');
      }
    choicewrite('>');     choicewrite('>');
    if (ptype=='tolerance') {     if (ptype=='tolerance') {
 // 0: pscat  // 0: pscat
 // 1: after processing  
       if (pscat=='default') {        if (pscat=='default') {
          tablestart('Use default value or algorithm of resource');           tablestart('Use default value or algorithm of resource');
       }        }
       if (pscat=='exact') {  
          tablestart('Accept only exact value, zero tolerance');  
          afterproc();  
       }  
       if (pscat=='relative_sym') {        if (pscat=='relative_sym') {
 // 2: percentage  // 2: percentage
 // 3: open  // 3: open
          tablestart('Percentage error, symmetric around value');           tablestart('Percentage error, symmetric around value');
          valline('Percentage',2,3);           valline('Percentage',2,3);
          afterproc();           if ((svalue!='') && (typeof(svalue)!="undefined")) {
               choices.document.forms.sch.val2.value=parseInt(svalue);
               if (svalue.indexOf('+')!=-1) {
                  choices.document.forms.sch.val3.checked=true;
               }
            }
       }        }
       if (pscat=='relative') {        if (pscat=='relative') {
 // 2: left  // 2: left
Line 330  function draw() { Line 521  function draw() {
          tablestart('Percentage error, asymmetric around value');           tablestart('Percentage error, asymmetric around value');
          valline('Upper percentage',2,3);           valline('Upper percentage',2,3);
          valline('Lower percentage',4,5);           valline('Lower percentage',4,5);
          afterproc();           var range1=new Array;
            if ((svalue!='') && (typeof(svalue)!="undefined")) {
               range1=svalue.split(',');
               if (typeof(range1[1])=='undefined') { range1[1]=range1[0]; }
               choices.document.forms.sch.val2.value=parseFloat(range1[0]);
               if (range1[0].indexOf('+')!=-1) {
                  choices.document.forms.sch.val3.checked=true;
               }
               choices.document.forms.sch.val4.value=parseFloat(range1[1]);
               if (range1[1].indexOf('+')!=-1) {
                  choices.document.forms.sch.val5.checked=true;
               }
            }
       }        }
       if (pscat=='absolute_sym') {        if (pscat=='absolute_sym') {
          tablestart('Absolute error, symmetric around value');           tablestart('Absolute error, symmetric around value');
          valline('Value',2,3);           valline('Value',2,3);
          afterproc();           if ((svalue!='') && (typeof(svalue)!="undefined")) {
               choices.document.forms.sch.val2.value=parseFloat(svalue);
               if (svalue.indexOf('+')!=-1) {
                  choices.document.forms.sch.val3.checked=true;
               }
            }
       }        }
       if (pscat=='absolute') {        if (pscat=='absolute') {
          tablestart('Absolute error, asymmetric around value');           tablestart('Absolute error, asymmetric around value');
          valline('Upper value',2,3);           valline('Upper value',2,3);
          valline('Lower value',4,5);           valline('Lower value',4,5);
          afterproc();           var range2=new Array;
       }           if ((svalue!='') && (typeof(svalue)!="undefined")) {
       if (pscat=='sigdigits') {              range=svalue.split(',');
          tablestart('Agreement on significant digits');              if (typeof(range2[1])=='undefined') { range2[1]=range2[0]; }
   choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>Number of digits: '              choices.document.forms.sch.val2.value=parseFloat(range2[0]);
              +'<input type=text size=4 name=val2></td></tr>');              if (range2[0].indexOf('+')!=-1) {
                  choices.document.forms.sch.val3.checked=true;
 choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>Accept if more digits given: '              }
              +'<input type=checkbox name=val3></td></tr>');              choices.document.forms.sch.val4.value=parseFloat(range2[1]);
                        if (range2[1].indexOf('+')!=-1) {
                  choices.document.forms.sch.val5.checked=true;
               }
            }
       }        }
    }     }
   
Line 360  choicewrite('<tr bgcolor="#AAFFAA"><td c Line 571  choicewrite('<tr bgcolor="#AAFFAA"><td c
          choicewrite('</table>');           choicewrite('</table>');
      } else {       } else {
       if (pscat=='start') {        if (pscat=='start') {
          tablestart('Starting or opening date and time');           tablestart('Date and time');
       }        }
       if (pscat=='end') {        if (pscat=='end') {
          tablestart('Ending or closing date and time');           tablestart('Date and time');
       }        }
       if (pscat=='interval') {        if (pscat=='interval') {
            var proctorkeytype = 'hidden'; 
            var donebuttontext = 'none';
            if (pmodval == '_done_proctor') {
                proctorkeytype = 'text';
                donebuttontext = 'block';
            }
            if (pmodval == '_done') {
                donebuttontext = 'block';
            }
          tablestart('Time interval');           tablestart('Time interval');
          choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>');           choicewrite( [
          intervaldis();              '<tr><td colspan="3">'+intervaldis()+'</td></tr>',
          choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:'              '<tr><td>Time:</td><td colspan="2">',
          +'</td><td colspan=2>');                  '<span style="white-space:nowrap">'+intday()+' days </span>',
          intday();choicewrite('days ');                  '<span style="white-space:nowrap">'+inthour()+' hours</span>',
          inthour();choicewrite('hours ');                  '<span style="white-space:nowrap">'+intminute()+' mins</span>',
          intminute(); choicewrite('mins '); intsecond();                  '<span style="white-space:nowrap">'+intsecond()+' secs</span>',
          choicewrite('secs</td></tr></table>');                       '</td></tr>',
       } else {               '</table>',
          choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>'              '<br />',
               ].join("\n"));
            tablestart('Provide a "Done" button to students?');
            choicewrite('<tr><td>Value:</td><td colspan="2">');
            choicewrite('<label><input name="donebutton" value=""'+
                        ' type="radio" '+callintervalpmodval());
            if (pmodval == '') { choicewrite(' checked="checked"'); }
            choicewrite(' /> No</label><br />');
            choicewrite('<label><input name="donebutton" value="_done"'+
                        ' type="radio" '+callintervalpmodval());
            if (pmodval == '_done') { choicewrite(' checked="checked"'); }
            choicewrite(' /> Yes</label><br />');
            choicewrite('<span style="white-space:nowrap">'+
                        '<label><input name="donebutton" value="_done_proctor"'+
                        ' type="radio" '+callintervalpmodval());
            if (pmodval == '_done_proctor') { choicewrite(' checked="checked"'); }
            choicewrite(' /> Yes, with proctor key</label>');
            choicewrite('&nbsp;<input name="donebutton_proctorkey" value='+
                        '"'+escapeHTML(pextraval)+'" type="'+proctorkeytype+
                        '" id="done_proctorkey" size="10"'+
                        ' onblur="parent.intcalc();" /></span><br />'+
                        '<div id="donebuttontextdiv" style="display:'+donebuttontext+'">'+
                        '<br /><span style="white-space:nowrap">'+
                        'Button text:'+
                        '<input name="donebutton_text" value='+
                        '"'+escapeHTML(pextravaltwo)+'" type="text" '+
                        'size="10" onblur="parent.intcalc();" /></span></div>');
            choicewrite('</td></tr></table>');
         } else {
            choicewrite('<tr><td colspan="3">'
          +cdate.toString()+           +cdate.toString()+
          '</td></tr><tr bgcolor="#AAFFAA"><td>Date:</td><td colspan=2>');           '</td></tr><tr><td>Date:</td><td colspan="2">');
          month();date();year();           month();date();year();
          choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:'           choicewrite('</td></tr><tr><td>Time:'
          +'</td><td colspan=2>');hour();choicewrite('h ');minute();           +'</td><td colspan="2">');hour();choicewrite('h ');minute();
          choicewrite('m ');second();           choicewrite('m ');second();
          choicewrite('s</td></tr></table>');           choicewrite('s</td></tr></table>');
       }        }
Line 389  choicewrite('<tr bgcolor="#AAFFAA"><td c Line 638  choicewrite('<tr bgcolor="#AAFFAA"><td c
    }     }
   
    if (ptype=='int') {     if (ptype=='int') {
         var pscatparts=new Array;
         pscatparts=pscat.split(',');
         pscat=pscatparts[0];
       if (pscat=='default') {        if (pscat=='default') {
          tablestart('Default value or none');           tablestart('Default value or none');
          choicewrite('</table>');                    choicewrite('</table>');
       } else {        } else {
          if (pscat=='range') {
            tablestart('Integer range');      
            choicewrite('<tr><td>Lower Value:'+
                 '</td><td colspan="2"><input type="text" size="4" name="val2'+
                 '" /></td></tr>');
            choicewrite('<tr><td>Upper Value:'+
                 '</td><td colspan="2"><input type="text" size="4" name="val4'+
                 '" /></td></tr></table>');
            var range=new Array;
            if ((svalue!='') && (typeof(svalue)!="undefined")) {
               range=svalue.split(',');
               if (typeof(range[1])=='undefined') { range[1]=range[0]; }
               choices.document.forms.sch.val2.value=parseInt(range[0]);
               choices.document.forms.sch.val4.value=parseInt(range[1]);
            }
          } else {
         if (pscat=='pos') {          if (pscat=='pos') {
            tablestart('Positive (non-zero) integer');             tablestart('Positive (non-zero) integer');
         }          }
         if (pscat=='zeropos') {          if (pscat=='zeropos') {
            tablestart('Positive integer or zero');             tablestart('Positive integer or zero');
         }          }
         if (pscat.indexOf('range')!=-1) {          if (pscat.indexOf('inrange')!=-1) {
            var rangeparts=new Array;             var rangeparts=new Array;
            rangeparts=split('_',pscat);             rangeparts=split(',',pscat);
            tablestart('Integer in the range ['+rangeparts[1]+']');             tablestart('Integer in the range ['+rangeparts[1]+']');
         }          }
         if (pscat=='any') {          if (pscat=='any') {
            tablestart('Integer');             tablestart('Integer');
         }          }
         choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');          choicewrite('<tr><td>Value:</td><td colspan="2">');
         choicewrite('<input name=intval size=10 value="'+svalue+          choicewrite('<input name="intval" size="10" value="'+escapeHTML(svalue)+
                     '" name=intval onChange="parent.integereval()">');                      '" onchange="parent.integereval()" />');
         choicewrite('</td></table>');          choicewrite('</td></tr></table>');
       }        }
        }
    }     }
   
    if (ptype=='float') {     if (ptype=='float') {
Line 428  choicewrite('<tr bgcolor="#AAFFAA"><td c Line 697  choicewrite('<tr bgcolor="#AAFFAA"><td c
         if (pscat=='any') {          if (pscat=='any') {
            tablestart('Floating point number');             tablestart('Floating point number');
         }          }
         choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');          choicewrite('<tr><td>Value:</td><td colspan="2">');
         choicewrite('<input name=floatval size=10 value="'+svalue+          choicewrite('<input name="floatval" size="10" value="'+escapeHTML(svalue)+
                     '" name=floatval onChange="parent.floateval()">');                      '" onchange="parent.floateval()" />');
         choicewrite('</td></table>');          choicewrite('</td></tr></table>');
       }        }
    }     }
   
    if (ptype=='string') {     if (ptype=='string') {
       if (pscat=='default') {          if ((pscat=='any') || (pscat=='') || (pscat=='default') ||  
          tablestart('Default value or none');              (typeof(pscat)=='undefined')) {
          choicewrite('</table>');           
       } else {  
         if (pscat=='any') {  
            tablestart('Text');             tablestart('Text');
              choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+
                       '" type="text" onchange="parent.stringeval()" />');
           }
           if (pscat=='yesno') {
              tablestart('Yes/No');
      choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="stringval" value="yes"'+
                     ' type="radio" '+callradiostringeval('yes'));
              if (svalue=='yes') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes</label><br />');
              choicewrite('<label><input name="stringval" value="no"'+
                     ' type="radio" '+callradiostringeval('no'));
              if (svalue=='no') { choicewrite(' checked="checked"'); }
              choicewrite(' /> No</label><br />');
           }
           if (pscat=='problemstatus') {
              tablestart('Problem Status');
      choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="stringval" value="yes"'+
                     ' type="radio" '+callradiostringeval('yes'));
              if (svalue=='yes') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes</label><br />');
              choicewrite('<label><input name="stringval" value="answer"'+
                     ' type="radio" '+callradiostringeval('answer'));
              if (svalue=='answer') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes, and show correct answer if they exceed the maximum number of tries.</label><br />');
              choicewrite('<label><input name="stringval" value="no"'+
                     ' type="radio" '+callradiostringeval('no'));
              if (svalue=='no') { choicewrite(' checked="checked"'); }
              choicewrite(' /> No, don\'t show correct/incorrect feedback.</label><br />');
              choicewrite('<label><input name="stringval" value="no_feedback_ever"'+
                     ' type="radio" '+callradiostringeval('no_feedback_ever'));
              if (svalue=='no_feedback_ever') { choicewrite(' checked="checked"'); }
              choicewrite(' /> No, show no feedback at all.</label><br />');
         }          }
         choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');          if (pscat=='examtype') {
         choicewrite('<input name=intval size=20 value="'+svalue+             tablestart('Exam Type');
                     '" name=stringval onChange="parent.stringeval()">');     choicewrite('<tr><td>Value:</td><td colspan="2">');
         choicewrite('</td></table>');             choicewrite('<label><input name="stringval" value="online"'+
                   ' type="radio" '+callradiostringeval('online'));
              if (svalue=='online') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Online</label><br />');
              choicewrite('<label><input name="stringval" value="checkout"'+
                 ' type="radio" '+callradiostringeval('checkout'));
              if (svalue=='checkout') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Check out</label><br />');
          }
           if (pscat=='questiontype') {
              tablestart('Question Type');
      choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="stringval" value="problem"'+
                  ' type="radio" '+callradiostringeval('problem'));
              if (svalue=='problem') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Standard Problem</label><br />');
   //   choicewrite('<label><input name="stringval" value="quiz"'+
   //                ' type="radio" '+callradiostringeval('quiz'));
   //         if (svalue=='quiz') { choicewrite(' checked="checked"'); }
   //         choicewrite(' /> Quiz</label><br />');
              choicewrite('<label><input name="stringval" value="practice"'+
                     ' type="radio" '+callradiostringeval('practice'));
              if (svalue=='practice') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Practice</label><br />');
              choicewrite('<label><input name="stringval" value="exam"'+
                     ' type="radio" '+callradiostringeval('exam'));
              if (svalue=='exam') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Exam</label><br />');
   //         choicewrite('<label><input name="stringval" value="assess"'+
   //              ' type="radio" '+callradiostringeval('assess'));
   //         if (svalue=='assess') { choicewrite(' checked="checked"'); }
   //         choicewrite(' /> Assessment</label><br />');
              choicewrite('<label><input name="stringval" value="survey"'+
                   ' type="radio" '+callradiostringeval('survey'));
              if (svalue=='survey') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Survey</label><br />');
   //         choicewrite('<label><input name="stringval" value="form"'+
   //                ' type="radio" '+callradiostringeval('form'));
   //         if (svalue=='form') { choicewrite(' checked="checked"'); }
   //         choicewrite('> Input Form</label><br />');
              choicewrite('<label><input name="stringval" value="surveycred"'+
                   ' type="radio" '+callradiostringeval('surveycred'));
              if (svalue=='surveycred') { choicewrite(' checked="checked"'); }
              choicewrite('> Survey (credit for submission)</label><br />');
              choicewrite('<label><input name="stringval" value="anonsurvey"'+
                   ' type="radio" '+callradiostringeval('anonsurvey'));
              if (svalue=='anonsurvey') { choicewrite(' checked="checked"'); }
              choicewrite('> Anonymous Survey</label><br />');
              choicewrite('<label><input name="stringval" value="anonsurveycred"'+
                   ' type="radio" '+callradiostringeval('anonsurveycred'));
              if (svalue=='anonsurveycred') { choicewrite(' checked="checked"'); }
              choicewrite('> Anonymous Survey (credit for submission)</label><br />');
              choicewrite('<label><input name="stringval" value="randomizetry"'+
                   ' type="radio" '+callradiostringeval('randomizetry'));
              if (svalue=='randomizetry') { choicewrite(' checked="checked"'); }
              choicewrite('> New Randomization Each N Tries (default N=1)</label><br />');
              choicewrite('<label><input name="stringval" value="library"'+
                  ' type="radio" '+callradiostringeval('library'));
              if (svalue=='library') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Library</label><br />');
           }
           if (pscat=='lenient') {
              tablestart('Lenient Grading (Partial Credit)');
              choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="stringval" value="yes"'+
                     ' type="radio" '+callradiostringeval('yes'));
              if (svalue=='yes') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes</label><br />');
              choicewrite('<label><input name="stringval" value="no"'+
                     ' type="radio" '+callradiostringeval('no'));
              if (svalue=='no') { choicewrite(' checked="checked"'); }
              choicewrite(' /> No</label><br />');
              choicewrite('<label><input name="stringval" value="default"'+
                  ' type="radio" '+callradiostringeval('default'));
              if (svalue=='default') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Default (only bubblesheet grading is lenient)</label><br />');
           }
           if (pscat=='discussvote') {
              tablestart('Discussion Voting');
              choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="stringval" value="yes"'+
                     ' type="radio" '+callradiostringeval('yes'));
              if (svalue=='yes') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes</label><br />');
              choicewrite('<label><input name="stringval" value="notended"'+
                     ' type="radio" '+callradiostringeval('notended'));
              if (svalue=='notended') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes, unless discussion ended</label><br />');
              choicewrite('<label><input name="stringval" value="no"'+
                     ' type="radio" '+callradiostringeval('no'));
              if (svalue=='no') { choicewrite(' checked="checked"'); }
              choicewrite(' /> No</label><br />');
           }
           if (pscat=='ip') {
              tablestart('IP Number/Name');
      choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+
                       '" onchange="parent.stringeval()" />');
           }
           if (pscat=='fileext') {
               tablestart('Allowed File Extensions');
      choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="radstringval" value="txt"'+
                  ' type="radio" '+callradiostringeval('txt'));
              if (svalue=='txt') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Plain Text</label><br />');
              choicewrite('<label><input name="radstringval" value="png,jpg,jpeg,gif"'+
                  ' type="radio" '+callradiostringeval('png,jpg,jpeg,gif'));
              if (svalue=='png,jpg,jpeg,gif') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Picture File</label><br />');
              choicewrite('<label><input name="radstringval" value="doc,docx,xls,xlsx,ppt,pptx"'+
                  ' type="radio" '+callradiostringeval('doc,docx,xls,xlsx,ppt,pptx'));
              if (svalue=='doc,docx,xls,xlsx,ppt,pptx') { choicewrite(' checked="checked"'); }
              if (svalue=='doc,xls,ppt') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Office Document</label><br />');
              choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+
                       '" onchange="parent.stringeval()" />');
          }
          if (pscat=='useslots') {
              tablestart('Slots control access');
      choicewrite('<tr><td>Value:</td><td colspan="2">');
              choicewrite('<label><input name="stringval" value="no"'+
                     ' type="radio" '+callradiostringeval('no'));
              if (svalue=='no') { choicewrite(' checked="checked"'); }
              choicewrite(' /> No</label><br />');
              choicewrite('<label><input name="stringval" value="resource"'+
                     ' type="radio" '+callradiostringeval('resource'));
              if (svalue=='resource') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes, and the scope of student selected slot is a single resource.</label><br />');
              choicewrite('<label><input name="stringval" value="map"'+
                     ' type="radio" '+callradiostringeval('map'));
              if (svalue=='map') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes, and the scope of student selected slot is the enclosing map/folder. When checking in, it applies to only one resource.</label><br />');
              choicewrite('<label><input name="stringval" value="map_map"'+
                     ' type="radio" '+callradiostringeval('map_map'));
              if (svalue=='map_map') { choicewrite(' checked="checked"'); }
              choicewrite(' /> Yes, and the scope of student selected slot is the enclosing map/folder. When checking in, all resources in the map/folder are checked in.</label><br />');
           choicewrite('</td></tr></table>');
         }
      }
      
      if (ptype=='color') {
         tablestart('Choose a Color');
         choicewrite('<table>');
         if (svalue) {
            choicewrite('<tr><td colspan="9">Current choice:</td><td bgcolor="'+
                        escapeHTML(svalue)+'" colspan="2">&nbsp;</td></tr>');
         }
         for (var ir=0; ir<=10; ir++) {
             for (var ig=0; ig<=10; ig++) {
                 choicewrite('<tr>');
                 for (var ib=0; ib<=10; ib++) {
                     colorfield(ir,ig,ib);
         }
                 choicewrite('</tr>');
     }      
       }        }
         choicewrite('</table></td></table>');
    }     }
   
    choicewrite('</table></form>');     choicewrite('</form>');
    choiceend();     choiceend();
 }  }
   
 function sopt(va,text) {  function sopt(va,text) {
    selwrite('<option value="'+va+'"');     selwrite('<option value="'+va+'"');
    if (va==pscat) {     if (va==pscat) {
      selwrite(' selected');       selwrite(' selected="selected"');
    }     }
    selwrite('>'+text+'</option>');     selwrite('>'+text+'</option>');
 }  }
Line 470  function catchange() { Line 927  function catchange() {
   
 function assemble() {  function assemble() {
     if ((ptype=='date') && (pscat!='interval')) {      if ((ptype=='date') && (pscat!='interval')) {
         svalue=Math.round(cdate.getTime()/1000);          svalue=Math.floor(cdate.getTime()/1000);
       }
       if (ptype=='tolerance') {
          if (pscat=='relative_sym') {
             svalue=choices.document.forms.sch.val2.value+'%';
             if (choices.document.forms.sch.val3.checked) {
                svalue+='+';
             }
          }
          if (pscat=='absolute_sym') {
             svalue=choices.document.forms.sch.val2.value;
             if (choices.document.forms.sch.val3.checked) {
                svalue+='+';
             }
          }
          if (pscat=='absolute') {
             svalue=choices.document.forms.sch.val2.value;
             if (choices.document.forms.sch.val3.checked) {
                svalue+='+';
             }
             svalue+=','+choices.document.forms.sch.val4.value;
             if (choices.document.forms.sch.val5.checked) {
                svalue+='+';
             }
          }
          if (pscat=='relative') {
             svalue=choices.document.forms.sch.val2.value+'%';
             if (choices.document.forms.sch.val3.checked) {
                svalue+='+';
             }
             svalue+=','+choices.document.forms.sch.val4.value+'%';
             if (choices.document.forms.sch.val5.checked) {
                svalue+='+';
             }
          }
       }
       if ((ptype=='int') && (pscat=='range')) {
             svalue=choices.document.forms.sch.val2.value+','+
                    choices.document.forms.sch.val4.value;
     }      }
     if (pscat=='default') { svalue=''; }      if (pscat=='default') { svalue=''; }
     stype=ptype+'_'+pscat;      stype=ptype+'_'+pscat;
Line 480  function assemble() { Line 975  function assemble() {
 function init() {  function init() {
   var i;    var i;
   var subs=new Array();    var subs=new Array();
     var doneRegExp = /_done(|\:[^\:]+\:)/;
     var doneproctorRegExp = /_done(|\:[^\:]+\:)_proctor/;
     var proctorkeyRegExp = /^(\d+)_(.+)$/;
     var donetextRegExp = /\:([^\:]+)\:/;
   var namevalue=this.window.location.search.split('&');    var namevalue=this.window.location.search.split('&');
   namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1);    namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1);
   
Line 501  function init() { Line 1000  function init() {
      if (pair[0]=='call') { pcode=pair[1]; }       if (pair[0]=='call') { pcode=pair[1]; }
      if (pair[0]=='marker') { pmarker=pair[1]; }       if (pair[0]=='marker') { pmarker=pair[1]; }
      if (pair[0]=='name') { pname=pair[1]; }       if (pair[0]=='name') { pname=pair[1]; }
        if (pair[0]=='modal') { pmodal=pair[1]; }
        if (pair[0]=='defhour' && pair[1] >= 0 && pair[1] < 24 ) {
            defhour=pair[1];
        }
        if (pair[0]=='defmin' && pair[1] >= 0 && pair[1] < 60) { defmin=pair[1]; }
        if (pair[0]=='defsec' && pair[1] >= 0 && pair[1] < 60) { defsec=pair[1]; }
   }    }
   
     if (ptype=='date' && pscat == 'interval') {
         if (doneproctorRegExp.test(pvalue)) {
             var current = pvalue.match(doneproctorRegExp);
             if (current.length == 2) {
                 var textstr = current[1];
                 if (textstr != '') {
                     var textvals = textstr.match(donetextRegExp);
                     if (textvals.length == 2) {
                         pextravaltwo = textvals[1];
                     }
                 }
             }
             var intervalwithkey = pvalue.replace(doneproctorRegExp,'');
             if (proctorkeyRegExp.test(intervalwithkey)) {
                 var currvals = intervalwithkey.match(proctorkeyRegExp);
                 if (currvals.length == 3) {
                     pvalue = currvals[1];
                     pextraval = currvals[2];
                     pmodval = '_done_proctor';
                 } else {
                     pmodval = '';
                 }
             }
         } else {
             if (doneRegExp.test(pvalue)) {
                 var current = pvalue.match(doneRegExp); 
                 if (current.length == 2) {
                     var textstr = current[1];
                     if (textstr != '') {
                         var textvals = textstr.match(donetextRegExp);
                         if (textvals.length == 2) {
                             pextravaltwo = textvals[1];
                         }
                     }
                 }
                 var pnumval = pvalue.replace(doneRegExp,'');
                 pmodval = '_done';
                 pvalue = pnumval;
             }
         }
     }
   svalue=pvalue;    svalue=pvalue;
   if (((ptype=='float') || (ptype=='string') || (ptype=='int')) &&    if (((ptype=='float') || (ptype=='string') || (ptype=='int')) &&
       (pscat=='default') &&         (pscat=='default') && 
       (typeof(svalue)!="undefined") &&         (typeof(svalue)!="undefined") && 
       (svalue!=0) && (svalue!='')) { pscat='any'; }        (svalue!=0) && (svalue!='')) { pscat='any'; }
   
   this.window.selector.document.clear();    if (ptype=='tolerance') {
   selwrite('<html><body bgcolor="#FFFFFF">');       var tperc=0;
        var trange=0;
        if (typeof(svalue)!='undefined') {
           if (svalue.indexOf('%')!=-1) { tperc=1;  }
           if (svalue.indexOf(',')!=-1) { trange=1; }
           if (trange) {
              if (tperc) { pscat='relative'; } else { pscat='absolute'; }
           } else {
              if (tperc) { pscat='relative_sym'; } else { pscat='absolute_sym'; }
           }
        }
     }
   
     this.window.selector.document.open();
     selwrite('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
     selwrite('<html xmlns="http://www.w3.org/1999/xhtml">');
     selwrite('<head>');
     selwrite('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
     selwrite('<title>LON-CAPA</title>');
     selwrite('<style type="text/css">');
     selwrite('<!--');
     selwrite('body {');
     selwrite('font-family: Verdana,Arial,Helvetica,sans-serif;');
     selwrite('line-height:130%;');
     selwrite('font-size:0.83em;');
     selwrite('background: #FFFFFF;');
     selwrite('}');
     selwrite('-->');
     selwrite('</style>');
     selwrite('</head>');
     selwrite('<body>');
     selwrite('<form name="fsel" action=""><b>'+pname+'</b><br />');
     selwrite('Format of Value(s): <select name="fcat" onchange="parent.catchange();">');
   
   selwrite('<form name="fsel"><b>'+pname+'</b><br>');  
   selwrite('<select name="fcat" onChange="parent.catchange();">');  
   if (ptype=='tolerance') {    if (ptype=='tolerance') {
      sopt('default','Default');       sopt('default','Default');
      sopt('exact','Exact Value (no tolerance)');  
      sopt('relative_sym','Relative Tolerance, Symmetric (percent)');       sopt('relative_sym','Relative Tolerance, Symmetric (percent)');
      sopt('relative','Relative Tolerance (percentages)');       sopt('relative','Relative Tolerance (percentages)');
      sopt('absolute_sym','Absolute Tolerance, Symmetric (value)');       sopt('absolute_sym','Absolute Tolerance, Symmetric (value)');
      sopt('absolute','Absolute Tolerance (values)');       sopt('absolute','Absolute Tolerance (values)');
      sopt('sigdigits','Significant Digits (number)');  
   }    }
   
   if (ptype=='date') {    if (ptype=='date') {
      sopt('default','Default');       if (pscat != 'interval') {
      sopt('start','Starting Date');           sopt('default','Default');
      sopt('end','Ending Date');   sopt('start','Starting Date');
      sopt('interval','Time Interval');   sopt('end','Ending Date');
             } else {
            sopt('interval','Time Interval');
        }
   
      if ((pvalue!='') && (typeof(pvalue)!="undefined")) {       if ((pvalue!='') && (typeof(pvalue)!="undefined")) {
         cdate.setTime(pvalue*1000);          cdate.setTime(pvalue*1000);
        } else {        
           cdate.setSeconds(defsec);
           cdate.setMinutes(defmin);
           cdate.setHours(defhour);
      }       }
     
      months[0]='January';       months[0]='January';
Line 552  function init() { Line 1133  function init() {
      sopt('default','Default');       sopt('default','Default');
      sopt('pos','Positive Integer, Not Zero');       sopt('pos','Positive Integer, Not Zero');
      sopt('zeropos','Positive Integer or Zero');       sopt('zeropos','Positive Integer or Zero');
      sopt('range','Integer Range');       sopt('inrange','Integer in Range');
        sopt('range','Range of Integers');
      sopt('any','Integer');       sopt('any','Integer');
   }    }
   
Line 565  function init() { Line 1147  function init() {
   }    }
   
   if (ptype=='string') {    if (ptype=='string') {
      sopt('default','Default');       //sopt('default','Default');
      sopt('string','String Value');       if (pscat == 'yesno')        { sopt('yesno','Yes/No'); }
        else if (pscat == 'problemstatus'){ sopt('problemstatus','Problem Status'); }
        else if (pscat == 'examtype')     { sopt('examtype','Exam Type'); }
        else if (pscat == 'questiontype') { sopt('questiontype','Question Type'); }
        else if (pscat == 'lenient')      { sopt('lenient','Lenient Grading (Partial Credit)'); }
        else if (pscat == 'discussvote')  { sopt('discussvote','Discussion Voting'); }
        else if (pscat == 'ip')           { sopt('ip','IP Number/Name'); }
        else if (pscat == 'fileext')      { sopt('fileext','File Extension'); }
        else if (pscat == 'useslots')     { sopt('useslots','Slots control access'); }
        else { pscat = 'any'; }
        sopt('any','String Value');
   }    }
   
   selwrite('</select></form>');    if (ptype=='color') {
        sopt('default','Use Default Color');
        sopt('custom','Use Custom Color');
     }
   
   selwrite('<a href="javascript:parent.assemble();');    selwrite('</select></form>');
     var targ='parent.opener';
     if (pmodal==1) {
        targ='parent.parent';
     }
     if ((ptype=='date') && (pscat=='interval')) {
         selwrite('<a href="javascript:parent.validateInterval();');
     } else {
         selwrite('<a href="javascript:parent.assemble();');
     }
   if (preturn!='') {    if (preturn!='') {
      selwrite(       selwrite(targ+'.document.'+preturn+'_value.value=parent.window.svalue;');
       'parent.opener.document.'+preturn+'_value.value=parent.window.svalue;');       selwrite(targ+'.document.'+preturn+'_type.value=parent.window.stype;');
      selwrite(  
       'parent.opener.document.'+preturn+'_type.value=parent.window.stype;');  
   }    }
   if (pmarker!='') {    if (pmarker!='') {
      selwrite(       selwrite(targ+'.document.'+preturn+'_marker.value=parent.window.pmarker;');
      'parent.opener.document.'+preturn+'_marker.value=parent.window.pmarker;');  
   }    }
   if (pcode!='') {    if (pcode!='') {
      selwrite('parent.opener.'+pcode+'();');       selwrite(targ+'.'+pcode+'();');
   }    }
   selwrite('">Store</a>&nbsp;&nbsp;');    selwrite('">Save</a>&nbsp;&nbsp;');
   
   selwrite('<a href="javascript:');    selwrite('<a href="javascript:');
      selwrite(    selwrite(targ+'.document.'+preturn+'_value.value='+"'';");
       'parent.opener.document.'+preturn+'_value.value='+"'';");  
   if (pmarker!='') {    if (pmarker!='') {
      selwrite(       selwrite(
      'parent.opener.document.'+preturn+'_marker.value=parent.window.pmarker;');       targ+'.document.'+preturn+'_marker.value=parent.window.pmarker;');
   }    }
   if (pcode!='') {    if (pcode!='') {
      selwrite('parent.opener.'+pcode+'();');       selwrite(targ+'.'+pcode+'();');
   }    }
   selwrite('">Delete</a>&nbsp;&nbsp;');    selwrite('">Delete</a>&nbsp;&nbsp;');
     
   selwrite('<a href="javascript:');  
   if (preturn!='') {  
      selwrite('parent.opener.document.'+preturn+'_value.value='+"'';");  
      selwrite('parent.opener.document.'+preturn+'_type.value='+"'';");  
   }  
   if (pmarker!='') {  
      selwrite('parent.opener.document.'+preturn+'_marker.value='+"'';");  
   }  
   if (pcode!='') {  
      selwrite('parent.opener.'+pcode+'();');  
   }  
   selwrite('">Cancel</a>');   
    
   selwrite('</body></html>');    selwrite('</body></html>');
   this.window.selector.document.close();    this.window.selector.document.close();
   draw();    draw();
       
 }  }
   
   // ]]>
 </script>  </script>
   </head>
   
 <frameset rows="120,*" onLoad="init();">  <frameset rows="120,*" onload="init();">
 <frame name=selector src="empty.html">  <frame name="selector" src="empty.html" />
 <frame name=choices src="empty.html">  <frame name="choices" src="empty.html" />
 </frameset>  </frameset>
   
   
   
 </html>  
   
   </html>

Removed from v.1.11  
changed lines
  Added in v.1.71.4.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.