version 1.65, 2013/01/28 18:17:21
|
version 1.71, 2016/05/13 22:48:14
|
Line 39 Parameter Input Window
|
Line 39 Parameter Input Window
|
|
|
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=''; |
Line 241 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="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="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="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="selected"'); |
result += ' selected="selected"'; |
} |
} |
choicewrite('>'+i+'</option>'); |
result += '>'+i+'</option>'; |
} |
} |
choicewrite('</select>'); |
result += '</select>'; |
|
return result; |
} |
} |
|
|
function intcalc() { |
function intcalc() { |
Line 301 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 342 function radiostringeval(newval) {
|
Line 446 function radiostringeval(newval) {
|
} |
} |
|
|
function callradiostringeval(newval) { |
function callradiostringeval(newval) { |
return 'onchange="parent.radiostringeval(\'' |
return 'onclick="parent.radiostringeval(\''+newval+'\')"'; |
+newval+'\')" 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 355 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) { |
function pickcolor(picked) { |
Line 472 function draw() {
|
Line 577 function draw() {
|
tablestart('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><td colspan="3">'); |
choicewrite( [ |
intervaldis(); |
'<tr><td colspan="3">'+intervaldis()+'</td></tr>', |
choicewrite('</td></tr><tr><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>', |
|
'<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(' <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">' |
choicewrite('<tr><td colspan="3">' |
+cdate.toString()+ |
+cdate.toString()+ |
'</td></tr><tr><td>Date:</td><td colspan="2">'); |
'</td></tr><tr><td>Date:</td><td colspan="2">'); |
Line 832 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 861 function init() {
|
Line 1008 function init() {
|
if (pair[0]=='defsec' && pair[1] >= 0 && pair[1] < 60) { defsec=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') && |
Line 900 function init() {
|
Line 1088 function init() {
|
selwrite('</head>'); |
selwrite('</head>'); |
selwrite('<body>'); |
selwrite('<body>'); |
selwrite('<form name="fsel" action=""><b>'+pname+'</b><br />'); |
selwrite('<form name="fsel" action=""><b>'+pname+'</b><br />'); |
selwrite('<select name="fcat" onchange="parent.catchange();">'); |
selwrite('Format of Value(s): <select name="fcat" onchange="parent.catchange();">'); |
|
|
if (ptype=='tolerance') { |
if (ptype=='tolerance') { |
sopt('default','Default'); |
sopt('default','Default'); |
Line 982 function init() {
|
Line 1170 function init() {
|
var targ='parent.opener'; |
var targ='parent.opener'; |
if (pmodal==1) { |
if (pmodal==1) { |
targ='parent.parent'; |
targ='parent.parent'; |
} |
} |
selwrite('<a href="javascript:parent.assemble();'); |
if ((ptype=='date') && (pscat=='interval')) { |
|
selwrite('<a href="javascript:parent.validateInterval();'); |
|
} else { |
|
selwrite('<a href="javascript:parent.assemble();'); |
|
} |
if (preturn!='') { |
if (preturn!='') { |
selwrite(targ+'.document.'+preturn+'_value.value=parent.window.svalue;'); |
selwrite(targ+'.document.'+preturn+'_value.value=parent.window.svalue;'); |
selwrite(targ+'.document.'+preturn+'_type.value=parent.window.stype;'); |
selwrite(targ+'.document.'+preturn+'_type.value=parent.window.stype;'); |