File:  [LON-CAPA] / rat / client / parameter.html
Revision 1.25: download - view: text, annotated - select for diffs
Thu Jul 10 08:34:43 2003 UTC (20 years, 9 months ago) by www
Branches: MAIN
CVS tags: HEAD
Bug #1733:

Choice box for different string-type parameters, including question type.

Needs documentation of what each type does.

Was unsure of the possible values for "Exam Type" and decided that those
are "online" and "checkout" for now.

<html>
<!--
The LearningOnline Network with CAPA
Parameter Input Window
//
// $Id: parameter.html,v 1.25 2003/07/10 08:34:43 www Exp $
//
// 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/
//
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
08/08 Gerd Kortemeyer
-->
<head>
<title>LON-CAPA</title>
</head>

<script>

var ptype='';
var pvalue='';
var preturn='';
var pcode='';
var pscat='';
var pmarker='';
var pname='';

var svalue;
var stype;
var smarker;

var vars=new Array();

var cdate=new Date();

var csec;
var cmin;
var chour;
var cday;

var months=new Array();


function selwrite(text) {
  this.window.selector.document.write(text);
}

function choicestart() {
  this.window.choices.document.clear();
  choicewrite('<html><body bgcolor="#FFFFFF">');
}

function choiceend() {
  choicewrite('</body></html>');
  this.window.choices.document.close();
}

function choicewrite(text) {
  this.window.choices.document.write(text);
}

function tablestart(headtext) {
  choicewrite('<table><tr bgcolor="#AAFFAA"><th colspan=3>'+
              headtext+'</th></tr>');
}

function valline(text,id1,id2) {
  choicewrite('<tr bgcolor="#AAFFAA"><td>'+text+
              '</td><td><input type=text size=4 name=val'+
              id1+'></td><td>incl:<input type=checkbox name=val'+
              id2+'></td></tr>');
}

function datecalc() {
    var sform=choices.document.forms.sch;

    cdate.setHours(sform.hours.options[sform.hours.selectedIndex].value);
    cdate.setMinutes(sform.minutes.options[sform.minutes.selectedIndex].value);
    cdate.setSeconds(sform.minutes.options[sform.seconds.selectedIndex].value);
    cdate.setDate(sform.date.options[sform.date.selectedIndex].value);
    cdate.setMonth(sform.month.options[sform.month.selectedIndex].value);
    cdate.setFullYear(sform.year.options[sform.year.selectedIndex].value);

    draw();
}

function hour() {
   var thishour=cdate.getHours();
    var i; var j;
    choicewrite('<select name=hours onChange="parent.datecalc();">');
    for (i=0;i<=23;i++) {
        choicewrite('<option value='+i);
        if (i==thishour) {
            choicewrite(' selected');
        }
        choicewrite('>');
        if (i==12) { choicewrite('noon'); } else {
           if (i==0) { choicewrite('midnight') } else {
              
                 if (i<12) { choicewrite(i+' am'); } else {
                    j=i-12; choicewrite(j+' pm');
                 }
              
           }
        }
        choicewrite('</option>');
    }
    choicewrite('</select>');
}

function minute() {
   var thisminutes=cdate.getMinutes();
    var i;
    choicewrite('<select name=minutes onChange="parent.datecalc();">');
    for (i=0;i<=59;i++) {
        choicewrite('<option value='+i);
        if (i==thisminutes) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
} 

function second() {
   var thisseconds=cdate.getSeconds();
    var i;
    choicewrite('<select name=seconds onChange="parent.datecalc();">');
    for (i=0;i<=59;i++) {
        choicewrite('<option value='+i);
        if (i==thisseconds) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
} 


function date() {
   var thisdate=cdate.getDate();
    var i;
    choicewrite('<select name=date onChange="parent.datecalc();">');
    for (i=1;i<=31;i++) {
        choicewrite('<option value='+i);
        if (i==thisdate) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
}

function year() {
   var thisyear=cdate.getFullYear();
   var nowdate=new Date();
   var nowyear=nowdate.getFullYear();
   var loweryear=thisyear-2;
   var upperyear=thisyear+5;
   if (thisyear>nowyear) { loweryear=nowyear-2; }
   if (thisyear<nowyear) { upperyear=nowyear+5; } 
    var i;
    choicewrite('<select name=year onChange="parent.datecalc();">');
    for (i=loweryear;i<=upperyear;i++) {
        choicewrite('<option value='+i);
        if (i==thisyear) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
}

function month() {
    var thismonth=cdate.getMonth();
    var i;
    choicewrite('<select name=month onChange="parent.datecalc();">');
    for (i=0;i<=11;i++) {
        choicewrite('<option value='+i);
        if (i==thismonth) {
            choicewrite(' selected');
        }
        choicewrite('>'+months[i]+'</option>');
    }
    choicewrite('</select>');
}
    
    
function intminute() {
   var thisminutes=cmins;
    var i;
    choicewrite('<select name=minutes onChange="parent.intcalc();">');
    for (i=0;i<=59;i++) {
        choicewrite('<option value='+i);
        if (i==thisminutes) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
} 

function inthour() {
   var thishours=chours;
    var i;
    choicewrite('<select name=hours onChange="parent.intcalc();">');
    for (i=0;i<=23;i++) {
        choicewrite('<option value='+i);
        if (i==thishours) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
} 

function intsecond() {
   var thisseconds=csecs;
    var i;
    choicewrite('<select name=seconds onChange="parent.intcalc();">');
    for (i=0;i<=59;i++) {
        choicewrite('<option value='+i);
        if (i==thisseconds) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
} 


function intday() {
   var thisdate=cdays;
    var i;
    choicewrite('<select name=date onChange="parent.intcalc();">');
    for (i=0;i<=31;i++) {
        choicewrite('<option value='+i);
        if (i==thisdate) {
            choicewrite(' selected');
        }
        choicewrite('>'+i+'</option>');
    }
    choicewrite('</select>');
}

function intcalc() {
    var sform=choices.document.forms.sch;
    svalue=((sform.date.options[sform.date.selectedIndex].value*24+
             sform.hours.options[sform.hours.selectedIndex].value*1)*60+
             sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+
             sform.seconds.options[sform.seconds.selectedIndex].value*1;
    draw();
}

function integereval() {
   svalue=choices.document.forms.sch.intval.value;
   svalue=Math.round(svalue);
   if (pscat=='zeropos') { svalue=Math.abs(svalue); }
   if ((pscat=='pos') && (svalue==0)) {
      svalue='';
   }
   if (pscat.indexOf('inrange')!=-1) {
      var rangeparts=new Array;
      rangeparts=split('_',pscat);
      rangeparts=split(',',rangeparts[1]);
      if (svalue<rangeparts[0]) { svalue=rangeparts[0]; }
      if (svalue>rangeparts[1]) { svalue=rangeparts[1]; }
   }
   draw();
}

function floateval() {
   svalue=choices.document.forms.sch.floatval.value;
   svalue=1.0*svalue;
   if (pscat=='pos') { svalue=Math.abs(svalue); }
   if ((pscat=='zeroone') && ((svalue<0) || (svalue>1))) {
      svalue='';
   }
   draw();
}

function stringeval() {
   svalue=choices.document.forms.sch.stringval.value;
   draw();
}

function radiostringeval(newval) {
   svalue=newval;
   draw();
}

function intervaldis() {
    csecs=svalue;
    cdays=Math.floor(csecs/86400);
    csecs-=cdays*86400;
    chours=Math.floor(csecs/3600);
    csecs-=chours*3600;
    cmins=Math.floor(csecs/60);
    csecs-=cmins*60;
    choicewrite(cdays+' days '+chours+' hours '
               +cmins+' mins '+csecs+' secs');
}

function pickcolor(picked) {
  svalue=picked;
  draw();
}

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() {
   choicestart();
   choicewrite('<form name=sch');
   if (ptype=='int') {
      choicewrite(' action="javascript:integereval();"');
   }
   if (ptype=='float') {
      choicewrite(' action="javascript:floateval();"');
   }
   if (ptype=='string') {
      choicewrite(' action="javascript:stringeval();"');
   }
   choicewrite('>');
   if (ptype=='tolerance') {
// 0: pscat
      if (pscat=='default') {
         tablestart('Use default value or algorithm of resource');
      }
      if (pscat=='relative_sym') {
// 2: percentage
// 3: open
         tablestart('Percentage error, symmetric around value');
         valline('Percentage',2,3);
         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') {
// 2: left
// 3: open
// 4: right
// 5: open
         tablestart('Percentage error, asymmetric around value');
         valline('Upper percentage',2,3);
         valline('Lower percentage',4,5);
         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') {
         tablestart('Absolute error, symmetric around value');
         valline('Value',2,3);
         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') {
         tablestart('Absolute error, asymmetric around value');
         valline('Upper value',2,3);
         valline('Lower value',4,5);
         var range2=new Array;
         if ((svalue!='') && (typeof(svalue)!="undefined")) {
            range=svalue.split(',');
            if (typeof(range2[1])=='undefined') { range2[1]=range2[0]; }
            choices.document.forms.sch.val2.value=parseFloat(range2[0]);
            if (range2[0].indexOf('+')!=-1) {
               choices.document.forms.sch.val3.checked=true;
            }
            choices.document.forms.sch.val4.value=parseFloat(range2[1]);
            if (range2[1].indexOf('+')!=-1) {
               choices.document.forms.sch.val5.checked=true;
            }
         }
      }
   }

   if (ptype=='date') {
     if (pscat=='default') {
         tablestart('Default value or none');
         choicewrite('</table>');
     } else {
      if (pscat=='start') {
         tablestart('Date and time');
      }
      if (pscat=='end') {
         tablestart('Date and time');
      }
      if (pscat=='interval') {
         tablestart('Time interval');
         choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>');
         intervaldis();
         choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:'
         +'</td><td colspan=2>');
         intday();choicewrite('days ');
         inthour();choicewrite('hours ');
         intminute(); choicewrite('mins '); intsecond();
         choicewrite('secs</td></tr></table>');         
      } else { 
         choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>'
         +cdate.toString()+
         '</td></tr><tr bgcolor="#AAFFAA"><td>Date:</td><td colspan=2>');
         month();date();year();
         choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:'
         +'</td><td colspan=2>');hour();choicewrite('h ');minute();
         choicewrite('m ');second();
         choicewrite('s</td></tr></table>');
      }
     }
   }

   if (ptype=='int') {
      var pscatparts=new Array;
      pscatparts=pscat.split(',');
      pscat=pscatparts[0];
      if (pscat=='default') {
         tablestart('Default value or none');
         choicewrite('</table>');
      } else {
       if (pscat=='range') {
         tablestart('Integer range');      
         choicewrite('<tr bgcolor="#AAFFAA"><td>Lower Value:'+
              '</td><td colspan=2><input type=text size=4 name=val2'+
              '></td></tr>');
         choicewrite('<tr bgcolor="#AAFFAA"><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') {
           tablestart('Positive (non-zero) integer');
        }
        if (pscat=='zeropos') {
           tablestart('Positive integer or zero');
        }
        if (pscat.indexOf('inrange')!=-1) {
           var rangeparts=new Array;
           rangeparts=split(',',pscat);
           tablestart('Integer in the range ['+rangeparts[1]+']');
        }
        if (pscat=='any') {
           tablestart('Integer');
        }
        choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
        choicewrite('<input name=intval size=10 value="'+svalue+
                    '" name=intval onChange="parent.integereval()">');
        choicewrite('</td></table>');
      }
     }
   }

   if (ptype=='float') {
      if (pscat=='default') {
         tablestart('Default value or none');
         choicewrite('</table>');         
      } else {
        if (pscat=='pos') {
           tablestart('Positive floating point number or zero');
        }
        if (pscat=='zeroone') {
           tablestart('Floating point number between zero and one');
        }
        if (pscat=='any') {
           tablestart('Floating point number');
        }
        choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
        choicewrite('<input name=floatval size=10 value="'+svalue+
                    '" name=floatval onChange="parent.floateval()">');
        choicewrite('</td></table>');
      }
   }

   if (ptype=='string') {
      if (pscat=='default') {
         tablestart('Default value or none');
         choicewrite('</table>');         
      } else {
        if ((pscat=='any') || (pscat=='') || (typeof(pscat)=='undefined')) {
           tablestart('Text');
	   choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
           choicewrite('<input name="stringval" size="20" value="'+svalue+
                    '" type="text" onChange="parent.stringeval()">');
        }
        if (pscat=='yesno') {
           tablestart('Yes/No');
	   choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
           choicewrite('<input name="stringval" value="yes"'+
                  ' type="radio" onChange="parent.radiostringeval(\'yes\')"');
           if (svalue=='yes') { choicewrite(' checked'); }
           choicewrite('> Yes<br />');
           choicewrite('<input name="stringval" value="no"'+
                  ' type="radio" onChange="parent.radiostringeval(\'no\')"');
           if (svalue=='no') { choicewrite(' checked'); }
           choicewrite('> No<br />');
        }
        if (pscat=='examtype') {
           tablestart('Exam Type');
	   choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
           choicewrite('<input name="stringval" value="online"'+
                ' type="radio" onChange="parent.radiostringeval(\'online\')"');
           if (svalue=='online') { choicewrite(' checked'); }
           choicewrite('> Online<br />');
           choicewrite('<input name="stringval" value="checkout"'+
              ' type="radio" onChange="parent.radiostringeval(\'checkout\')"');
           if (svalue=='checkout') { choicewrite(' checked'); }
           choicewrite('> Check out<br />');
       }
        if (pscat=='questiontype') {
           tablestart('Question Type');
	   choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
           choicewrite('<input name="stringval" value="problem"'+
               ' type="radio" onChange="parent.radiostringeval(\'problem\')"');
           if (svalue=='problem') { choicewrite(' checked'); }
           choicewrite('> Standard Problem<br />');
           choicewrite('<input name="stringval" value="quiz"'+
                  ' type="radio" onChange="parent.radiostringeval(\'quiz\')"');
           if (svalue=='quiz') { choicewrite(' checked'); }
           choicewrite('> Quiz<br />');
           choicewrite('<input name="stringval" value="exam"'+
                  ' type="radio" onChange="parent.radiostringeval(\'exam\')"');
           if (svalue=='exam') { choicewrite(' checked'); }
           choicewrite('> Exam<br />');
           choicewrite('<input name="stringval" value="assess"'+
                ' type="radio" onChange="parent.radiostringeval(\'assess\')"');
           if (svalue=='assess') { choicewrite(' checked'); }
           choicewrite('> Assessment<br />');
           choicewrite('<input name="stringval" value="survey"'+
                ' type="radio" onChange="parent.radiostringeval(\'survey\')"');
           if (svalue=='survey') { choicewrite(' checked'); }
           choicewrite('> Survey<br />');
           choicewrite('<input name="stringval" value="form"'+
                  ' type="radio" onChange="parent.radiostringeval(\'form\')"');
           if (svalue=='form') { choicewrite(' checked'); }
           choicewrite('> Input Form<br />');
           choicewrite('<input name="stringval" value="library"'+
               ' type="radio" onChange="parent.radiostringeval(\'library\')"');
           if (svalue=='library') { choicewrite(' checked'); }
           choicewrite('> Library<br />');
        }
        if (pscat=='ip') {
           tablestart('IP Number/Name');
	   choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>');
           choicewrite('<input name=stringval size=20 value="'+svalue+
                    '" onChange="parent.stringeval()">');
        }
        choicewrite('</td></table>');
      }
   }
   
   if (ptype=='color') {
      tablestart('Choose a Color');
      choicewrite('<table>');
      if (svalue) {
         choicewrite('<tr><td colspan="9">Current choice:</td><td bgcolor="'+
                     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>');
   choiceend();
}

function sopt(va,text) {
   selwrite('<option value="'+va+'"');
   if (va==pscat) {
     selwrite(' selected');
   }
   selwrite('>'+text+'</option>');
}

function catchange() {
   var sform=selector.document.forms.fsel.fcat;
   pscat=sform.options[sform.selectedIndex].value;
   draw();
}

function assemble() {
    if ((ptype=='date') && (pscat!='interval')) {
        svalue=Math.round(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=''; }
    stype=ptype+'_'+pscat;
}


function init() {
  var i;
  var subs=new Array();
  var namevalue=this.window.location.search.split('&');
  namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1);

  for (i=0;i<namevalue.length;i++) {
     var pair=namevalue[i].split('=');
     pair[1]=unescape(pair[1]);
     if (pair[0]=='value') { pvalue=pair[1]; }
     if (pair[0]=='type') { subs=pair[1].split('_');
                            ptype=subs[0];
                            pscat=subs[1];
                            if (typeof(subs[2])!="undefined") { 
                               pscat+='_'+subs[2]; 
                            }
                            if ((pscat=='') || (typeof(pscat)=="undefined")) { 
                               pscat='default';
                            }
                           }
     if (pair[0]=='return') { preturn=pair[1]; }
     if (pair[0]=='call') { pcode=pair[1]; }
     if (pair[0]=='marker') { pmarker=pair[1]; }
     if (pair[0]=='name') { pname=pair[1]; }
  }

  svalue=pvalue;
  if (((ptype=='float') || (ptype=='string') || (ptype=='int')) &&
      (pscat=='default') && 
      (typeof(svalue)!="undefined") && 
      (svalue!=0) && (svalue!='')) { pscat='any'; }

  if (ptype=='tolerance') {
     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.clear();
  selwrite('<html><body bgcolor="#FFFFFF">');

  selwrite('<form name="fsel"><b>'+pname+'</b><br>');
  selwrite('<select name="fcat" onChange="parent.catchange();">');

  if (ptype=='tolerance') {
     sopt('default','Default');
     sopt('relative_sym','Relative Tolerance, Symmetric (percent)');
     sopt('relative','Relative Tolerance (percentages)');
     sopt('absolute_sym','Absolute Tolerance, Symmetric (value)');
     sopt('absolute','Absolute Tolerance (values)');
  }

  if (ptype=='date') {
     sopt('default','Default');
     sopt('start','Starting Date');
     sopt('end','Ending Date');
     sopt('interval','Time Interval');
     
     if ((pvalue!='') && (typeof(pvalue)!="undefined")) {
        cdate.setTime(pvalue*1000);
     }
 
     months[0]='January';
     months[1]='February';
     months[2]='March';
     months[3]='April';
     months[4]='May';
     months[5]='June';
     months[6]='July';
     months[7]='August';
     months[8]='September';
     months[9]='October';
     months[10]='November';
     months[11]='December';
  }
   
  if (ptype=='int') {
     sopt('default','Default');
     sopt('pos','Positive Integer, Not Zero');
     sopt('zeropos','Positive Integer or Zero');
     sopt('inrange','Integer in Range');
     sopt('range','Range of Integers');
     sopt('any','Integer');
  }

  if (ptype=='float') {
     sopt('default','Default');
     sopt('zeroone','Floating Point between 0 and 1');
     sopt('pos','Positive Floating Point');
     sopt('any','Floating Point');

  }

  if (ptype=='string') {
     sopt('default','Default');
     sopt('string','String Value');
  }

  if (ptype=='color') {
     sopt('default','Use Default Color');
     sopt('custom','Use Custom Color');
  }

  selwrite('</select></form>');

  selwrite('<a href="javascript:parent.assemble();');
  if (preturn!='') {
     selwrite(
      'parent.opener.document.'+preturn+'_value.value=parent.window.svalue;');
     selwrite(
      'parent.opener.document.'+preturn+'_type.value=parent.window.stype;');
  }
  if (pmarker!='') {
     selwrite(
     'parent.opener.document.'+preturn+'_marker.value=parent.window.pmarker;');
  }
  if (pcode!='') {
     selwrite('parent.opener.'+pcode+'();');
  }
  selwrite('">Store</a>&nbsp;&nbsp;');

  selwrite('<a href="javascript:');
     selwrite(
      'parent.opener.document.'+preturn+'_value.value='+"'';");
  if (pmarker!='') {
     selwrite(
     'parent.opener.document.'+preturn+'_marker.value=parent.window.pmarker;');
  }
  if (pcode!='') {
     selwrite('parent.opener.'+pcode+'();');
  }
  selwrite('">Delete</a>&nbsp;&nbsp;');
 
  selwrite('<a href="javascript:');
// Old code :
//----------------------------------------------------------------------
//  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+'();');
//  }
//----------------------------------------------------------------------
// Just close the window to 'cancel' the operation.  There are javascript
// errors in the above commented out code that I have not been able to 
// track down.  I think they reside in 'parent.opener.'+pcode+'();'
//
  selwrite('this.parent.close();');
  selwrite('">Cancel</a>'); 
 
  selwrite('</body></html>');
  this.window.selector.document.close();
  draw();
  
}

</script>

<frameset rows="120,*" onLoad="init();">
<frame name=selector src="empty.html">
<frame name=choices src="empty.html">
</frameset>



</html>

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