Annotation of rat/client/parameter.html, revision 1.2

1.1       www         1: <html>
                      2: <!--
                      3: The LearningOnline Network with CAPA
                      4: Parameter Input Window
1.2     ! www         5: 06/16/00,06/17,11/17,11/18 Gerd Kortemeyer
1.1       www         6: -->
                      7: <head>
                      8: <title>LON-CAPA</title>
                      9: </head>
                     10: 
                     11: <script>
                     12: 
                     13: var ptype='';
                     14: var pvalue='';
                     15: var preturn='';
                     16: var pcode='';
1.2     ! www        17: var pscat='';
        !            18: var pmarker='';
1.1       www        19: var pname='';
                     20: 
                     21: var svalue;
1.2     ! www        22: var stype;
        !            23: var smarker;
1.1       www        24: 
                     25: var vars=new Array();
                     26: 
1.2     ! www        27: var cdate=new Date();
        !            28: 
        !            29: var csec;
        !            30: var cmin;
        !            31: var chour;
        !            32: var cday;
        !            33: 
        !            34: var months=new Array();
        !            35: 
        !            36: 
1.1       www        37: function selwrite(text) {
                     38:   this.window.selector.document.write(text);
                     39: }
                     40: 
                     41: function choicestart() {
                     42:   this.window.choices.document.clear();
                     43:   choicewrite('<html><body bgcolor="#FFFFFF">');
                     44: }
                     45: 
                     46: function choiceend() {
                     47:   choicewrite('</body></html>');
                     48:   this.window.choices.document.close();
                     49: }
                     50: 
                     51: function choicewrite(text) {
                     52:   this.window.choices.document.write(text);
                     53: }
                     54: 
                     55: function tablestart(headtext) {
                     56:   choicewrite('<table><tr bgcolor="#AAFFAA"><th colspan=3>'+
                     57:               headtext+'</th></tr>');
                     58: }
                     59: 
                     60: function valline(text,id1,id2) {
                     61:   choicewrite('<tr bgcolor="#AAFFAA"><td>'+text+
                     62:               '</td><td><input type=text size=4 name=val'+
                     63:               id1+'></td><td>incl:<input type=checkbox name=val'+
                     64:               id2+'></td></tr>');
                     65: }
                     66: 
1.2     ! www        67: function datecalc() {
        !            68:     var sform=choices.document.forms.sch;
        !            69: 
        !            70:     cdate.setHours(sform.hours.options[sform.hours.selectedIndex].value);
        !            71:     cdate.setMinutes(sform.minutes.options[sform.minutes.selectedIndex].value);
        !            72:     cdate.setSeconds(sform.minutes.options[sform.seconds.selectedIndex].value);
        !            73:     cdate.setDate(sform.date.options[sform.date.selectedIndex].value);
        !            74:     cdate.setMonth(sform.month.options[sform.month.selectedIndex].value);
        !            75:     cdate.setFullYear(sform.year.options[sform.year.selectedIndex].value);
        !            76: 
        !            77:     draw();
        !            78: }
        !            79: 
        !            80: function hour() {
        !            81:    var thishour=cdate.getHours();
        !            82:     var i; var j;
        !            83:     choicewrite('<select name=hours onChange="parent.datecalc();">');
        !            84:     for (i=0;i<=23;i++) {
        !            85:         choicewrite('<option value='+i);
        !            86:         if (i==thishour) {
        !            87:             choicewrite(' selected');
        !            88:         }
        !            89:         choicewrite('>');
        !            90:         if (i==12) { choicewrite('noon'); } else {
        !            91:            if (i==0) { choicewrite('midnight') } else {
        !            92:               
        !            93:                  if (i<12) { choicewrite(i+' am'); } else {
        !            94:                     j=i-12; choicewrite(j+' pm');
        !            95:                  }
        !            96:               
        !            97:            }
        !            98:         }
        !            99:         choicewrite('</option>');
        !           100:     }
        !           101:     choicewrite('</select>');
        !           102: }
        !           103: 
        !           104: function minute() {
        !           105:    var thisminutes=cdate.getMinutes();
        !           106:     var i;
        !           107:     choicewrite('<select name=minutes onChange="parent.datecalc();">');
        !           108:     for (i=0;i<=59;i++) {
        !           109:         choicewrite('<option value='+i);
        !           110:         if (i==thisminutes) {
        !           111:             choicewrite(' selected');
        !           112:         }
        !           113:         choicewrite('>'+i+'</option>');
        !           114:     }
        !           115:     choicewrite('</select>');
        !           116: } 
        !           117: 
        !           118: function second() {
        !           119:    var thisseconds=cdate.getSeconds();
        !           120:     var i;
        !           121:     choicewrite('<select name=seconds onChange="parent.datecalc();">');
        !           122:     for (i=0;i<=59;i++) {
        !           123:         choicewrite('<option value='+i);
        !           124:         if (i==thisseconds) {
        !           125:             choicewrite(' selected');
        !           126:         }
        !           127:         choicewrite('>'+i+'</option>');
        !           128:     }
        !           129:     choicewrite('</select>');
        !           130: } 
        !           131: 
        !           132: 
        !           133: function date() {
        !           134:    var thisdate=cdate.getDate();
        !           135:     var i;
        !           136:     choicewrite('<select name=date onChange="parent.datecalc();">');
        !           137:     for (i=1;i<=31;i++) {
        !           138:         choicewrite('<option value='+i);
        !           139:         if (i==thisdate) {
        !           140:             choicewrite(' selected');
        !           141:         }
        !           142:         choicewrite('>'+i+'</option>');
        !           143:     }
        !           144:     choicewrite('</select>');
        !           145: }
        !           146: 
        !           147: function year() {
        !           148:    var thisyear=cdate.getFullYear();
        !           149:     var i;
        !           150:     choicewrite('<select name=year onChange="parent.datecalc();">');
        !           151:     for (i=thisyear-25;i<=thisyear+50;i++) {
        !           152:         choicewrite('<option value='+i);
        !           153:         if (i==thisyear) {
        !           154:             choicewrite(' selected');
        !           155:         }
        !           156:         choicewrite('>'+i+'</option>');
        !           157:     }
        !           158:     choicewrite('</select>');
        !           159: }
        !           160: 
        !           161: function month() {
        !           162:     var thismonth=cdate.getMonth();
        !           163:     var i;
        !           164:     choicewrite('<select name=month onChange="parent.datecalc();">');
        !           165:     for (i=0;i<=11;i++) {
        !           166:         choicewrite('<option value='+i);
        !           167:         if (i==thismonth) {
        !           168:             choicewrite(' selected');
        !           169:         }
        !           170:         choicewrite('>'+months[i]+'</option>');
        !           171:     }
        !           172:     choicewrite('</select>');
        !           173: }
        !           174:     
        !           175:     
        !           176: function intminute() {
        !           177:    var thisminutes=cmins;
        !           178:     var i;
        !           179:     choicewrite('<select name=minutes onChange="parent.intcalc();">');
        !           180:     for (i=0;i<=59;i++) {
        !           181:         choicewrite('<option value='+i);
        !           182:         if (i==thisminutes) {
        !           183:             choicewrite(' selected');
        !           184:         }
        !           185:         choicewrite('>'+i+'</option>');
        !           186:     }
        !           187:     choicewrite('</select>');
        !           188: } 
        !           189: 
        !           190: function inthour() {
        !           191:    var thishours=chours;
        !           192:     var i;
        !           193:     choicewrite('<select name=hours onChange="parent.intcalc();">');
        !           194:     for (i=0;i<=23;i++) {
        !           195:         choicewrite('<option value='+i);
        !           196:         if (i==thishours) {
        !           197:             choicewrite(' selected');
        !           198:         }
        !           199:         choicewrite('>'+i+'</option>');
        !           200:     }
        !           201:     choicewrite('</select>');
        !           202: } 
        !           203: 
        !           204: function intsecond() {
        !           205:    var thisseconds=csecs;
        !           206:     var i;
        !           207:     choicewrite('<select name=seconds onChange="parent.intcalc();">');
        !           208:     for (i=0;i<=59;i++) {
        !           209:         choicewrite('<option value='+i);
        !           210:         if (i==thisseconds) {
        !           211:             choicewrite(' selected');
        !           212:         }
        !           213:         choicewrite('>'+i+'</option>');
        !           214:     }
        !           215:     choicewrite('</select>');
        !           216: } 
        !           217: 
        !           218: 
        !           219: function intday() {
        !           220:    var thisdate=cdays;
        !           221:     var i;
        !           222:     choicewrite('<select name=date onChange="parent.intcalc();">');
        !           223:     for (i=0;i<=31;i++) {
        !           224:         choicewrite('<option value='+i);
        !           225:         if (i==thisdate) {
        !           226:             choicewrite(' selected');
        !           227:         }
        !           228:         choicewrite('>'+i+'</option>');
        !           229:     }
        !           230:     choicewrite('</select>');
        !           231: }
        !           232: 
        !           233: function intcalc() {
        !           234:     var sform=choices.document.forms.sch;
        !           235:     svalue=((sform.date.options[sform.date.selectedIndex].value*24+
        !           236:              sform.hours.options[sform.hours.selectedIndex].value*1)*60+
        !           237:              sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+
        !           238:              sform.seconds.options[sform.seconds.selectedIndex].value*1;
        !           239:     draw();
        !           240: }
        !           241: 
        !           242: function intervaldis() {
        !           243:     csecs=svalue;
        !           244:     cdays=Math.floor(csecs/86400);
        !           245:     csecs-=cdays*86400;
        !           246:     chours=Math.floor(csecs/3600);
        !           247:     csecs-=chours*3600;
        !           248:     cmins=Math.floor(csecs/60);
        !           249:     csecs-=cmins*60;
        !           250:     choicewrite(cdays+' days '+chours+' hours '
        !           251:                +cmins+' mins '+csecs+' secs');
        !           252: }
        !           253:     
        !           254:     
        !           255:     
1.1       www       256: function afterproc() {
                    257:   choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>Error after rounding: '
                    258:              +'<input type=checkbox name=val1></td></tr>');
                    259: }
                    260: 
                    261: function draw() {
                    262:    choicestart();
                    263:    choicewrite('<form name=sch>');
                    264:    if (ptype=='tolerance') {
1.2     ! www       265: // 0: pscat
1.1       www       266: // 1: after processing
1.2     ! www       267:       if (pscat=='default') {
1.1       www       268:          tablestart('Use default value or algorithm of resource');
                    269:       }
1.2     ! www       270:       if (pscat=='exact') {
1.1       www       271:          tablestart('Accept only exact value, zero tolerance');
                    272:          afterproc();
                    273:       }
1.2     ! www       274:       if (pscat=='relative_sym') {
1.1       www       275: // 2: percentage
                    276: // 3: open
                    277:          tablestart('Percentage error, symmetric around value');
                    278:          valline('Percentage',2,3);
                    279:          afterproc();
                    280:       }
1.2     ! www       281:       if (pscat=='relative') {
1.1       www       282: // 2: left
                    283: // 3: open
                    284: // 4: right
                    285: // 5: open
                    286:          tablestart('Percentage error, asymmetric around value');
                    287:          valline('Upper percentage',2,3);
                    288:          valline('Lower percentage',4,5);
                    289:          afterproc();
                    290:       }
1.2     ! www       291:       if (pscat=='absolute_sym') {
1.1       www       292:          tablestart('Absolute error, symmetric around value');
                    293:          valline('Value',2,3);
                    294:          afterproc();
                    295:       }
1.2     ! www       296:       if (pscat=='absolute') {
1.1       www       297:          tablestart('Absolute error, asymmetric around value');
                    298:          valline('Upper value',2,3);
                    299:          valline('Lower value',4,5);
                    300:          afterproc();
                    301:       }
1.2     ! www       302:       if (pscat=='sigdigits') {
1.1       www       303:          tablestart('Agreement on significant digits');
                    304:   choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>Number of digits: '
                    305:              +'<input type=text size=4 name=val2></td></tr>');
                    306: 
                    307:   choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>Accept if more digits given: '
                    308:              +'<input type=checkbox name=val3></td></tr>');
                    309:          
                    310:       }
                    311:    }
                    312: 
                    313:    if (ptype=='date') {
1.2     ! www       314:      if (pscat=='default') {
        !           315:          tablestart('Default value or none');
        !           316:          choicewrite('</table>');
        !           317:      } else {
        !           318:       if (pscat=='start') {
        !           319:          tablestart('Starting or opening date and time');
        !           320:       }
        !           321:       if (pscat=='end') {
        !           322:          tablestart('Ending or closing date and time');
        !           323:       }
        !           324:       if (pscat=='interval') {
        !           325:          tablestart('Time interval');
        !           326:          choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>');
        !           327:          intervaldis();
        !           328:          choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:'
        !           329:          +'</td><td colspan=2>');
        !           330:          intday();choicewrite('days ');
        !           331:          inthour();choicewrite('hours ');
        !           332:          intminute(); choicewrite('mins '); intsecond();
        !           333:          choicewrite('secs</td></tr></table>');         
        !           334:       } else { 
        !           335:          choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>'
        !           336:          +cdate.toString()+
        !           337:          '</td></tr><tr bgcolor="#AAFFAA"><td>Date:</td><td colspan=2>');
        !           338:          month();date();year();
        !           339:          choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:'
        !           340:          +'</td><td colspan=2>');hour();choicewrite('h ');minute();
        !           341:          choicewrite('m ');second();
        !           342:          choicewrite('s</td></tr></table>');
        !           343:       }
        !           344:      }
1.1       www       345:    }
                    346: 
                    347:    if (ptype=='value') {
                    348:    }
                    349: 
                    350:    if (ptype=='truefalse') {
                    351:    }
                    352: 
                    353:    if (ptype=='check') {
                    354:    }
                    355: 
                    356:    if (ptype=='radio') {
                    357:    }
                    358:    choicewrite('</table></form>');
                    359:    choiceend();
                    360: }
                    361: 
                    362: function sopt(va,text) {
                    363:    selwrite('<option value="'+va+'"');
1.2     ! www       364:    if (va==pscat) {
1.1       www       365:      selwrite(' selected');
                    366:    }
                    367:    selwrite('>'+text+'</option>');
                    368: }
                    369: 
                    370: function catchange() {
                    371:    var sform=selector.document.forms.fsel.fcat;
1.2     ! www       372:    pscat=sform.options[sform.selectedIndex].value;
1.1       www       373:    draw();
                    374: }
                    375: 
                    376: function assemble() {
1.2     ! www       377:     if ((ptype=='date') && (pscat!='interval')) {
        !           378:         svalue=Math.round(cdate.getTime()/1000);
        !           379:     }
        !           380:     stype=ptype+'_'+pscat;
        !           381:     alert(stype+'   '+svalue);
1.1       www       382: }
                    383: 
                    384: 
                    385: function init() {
                    386:   var i;
1.2     ! www       387:   var subs=new Array();
1.1       www       388:   var namevalue=this.window.location.search.split('&');
                    389:   namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1);
                    390: 
                    391:   for (i=0;i<namevalue.length;i++) {
                    392:      var pair=namevalue[i].split('=');
                    393:      if (pair[0]=='value') { pvalue=pair[1]; }
1.2     ! www       394:      if (pair[0]=='type') { subs=pair[1].split('_');
        !           395:                             ptype=subs[0];
        !           396:                             pscat=subs[1];
        !           397:                             if (subs[2]!=undefined) { pscat+='_'+subs[2]; }
        !           398:                             if ((pscat=='') || (pscat==undefined)) 
        !           399:                                { pscat='default'; }
        !           400:                            }
1.1       www       401:      if (pair[0]=='return') { preturn=pair[1]; }
                    402:      if (pair[0]=='call') { pcode=pair[1]; }
1.2     ! www       403:      if (pair[0]=='marker') { pmarker=pair[1]; }
1.1       www       404:      if (pair[0]=='name') { pname=pair[1]; }
                    405:   }
                    406: 
                    407:   svalue=pvalue;
                    408: 
                    409:   this.window.selector.document.clear();
                    410:   selwrite('<html><body bgcolor="#FFFFFF">');
                    411: 
                    412:   selwrite('<form name="fsel"><h2>'+pname+'</h2>');
                    413:   selwrite('<select name="fcat" onChange="parent.catchange();">');
                    414:   if (ptype=='tolerance') {
                    415:      sopt('default','Default');
                    416:      sopt('exact','Exact Value (no tolerance)');
                    417:      sopt('relative_sym','Relative Tolerance, Symmetric (percent)');
                    418:      sopt('relative','Relative Tolerance (percentages)');
                    419:      sopt('absolute_sym','Absolute Tolerance, Symmetric (value)');
                    420:      sopt('absolute','Absolute Tolerance (values)');
                    421:      sopt('sigdigits','Significant Digits (number)');
                    422:   }
                    423: 
                    424:   if (ptype=='date') {
                    425:      sopt('default','Default');
                    426:      sopt('start','Starting Date');
                    427:      sopt('end','Ending Date');
1.2     ! www       428:      sopt('interval','Time Interval');
        !           429:      
        !           430:      if ((pvalue!='') && (pvalue!=undefined)) {
        !           431:         cdate.setTime(pvalue*1000);
        !           432:      }
        !           433:  
        !           434:      months[0]='January';
        !           435:      months[1]='February';
        !           436:      months[2]='March';
        !           437:      months[3]='April';
        !           438:      months[4]='May';
        !           439:      months[5]='June';
        !           440:      months[6]='July';
        !           441:      months[7]='August';
        !           442:      months[8]='September';
        !           443:      months[9]='October';
        !           444:      months[10]='November';
        !           445:      months[11]='December';
1.1       www       446:   }
1.2     ! www       447:    
1.1       www       448:   if (ptype=='value') {
                    449:   }
                    450: 
                    451:   if (ptype=='truefalse') {
                    452:   }
                    453: 
                    454:   if (ptype=='check') {
                    455:   }
                    456: 
                    457:   if (ptype=='radio') {
                    458:   }
                    459: 
                    460:   selwrite('</select></form>');
                    461: 
1.2     ! www       462:   selwrite('<a href="javascript:parent.assemble();');
1.1       www       463:   if (preturn!='') {
1.2     ! www       464:      selwrite('parent.opener.'+preturn+'=parent.window.svalue;');
        !           465:      selwrite('parent.opener.'+preturn+'_type=parent.window.stype;');
        !           466:   }
        !           467:   if (pmarker!='') {
        !           468:      selwrite('parent.opener.'+pmarker+'=parent.window.pmarker;');
1.1       www       469:   }
                    470:   if (pcode!='') {
1.2     ! www       471:      selwrite('parent.opener.'+pcode+';');
1.1       www       472:   }
                    473:   selwrite('">Store</a>'); 
                    474:  
                    475:   selwrite('</body></html>');
                    476:   this.window.selector.document.close();
1.2     ! www       477:   draw();
1.1       www       478:   
                    479: }
                    480: 
                    481: </script>
                    482: 
1.2     ! www       483: <frameset rows="120,*" onLoad="init();">
1.1       www       484: <frame name=selector src="empty.html">
                    485: <frame name=choices src="empty.html">
                    486: </frameset>
                    487: 
                    488: 
                    489: 
                    490: </html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>