--- loncom/homework/grades.pm	2007/10/29 09:46:28	1.470
+++ loncom/homework/grades.pm	2007/11/02 23:41:39	1.476
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.470 2007/10/29 09:46:28 foxr Exp $
+# $Id: grades.pm,v 1.476 2007/11/02 23:41:39 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -865,7 +865,7 @@ LISTJAVASCRIPT
     my $saveStatus = $stu_status eq '' ? 'Active' : $stu_status;
     $env{'form.Status'} = $saveStatus;
     $gradeTable.='<label><input type="radio" name="lastSub" value="lastonly" '.$checklastsub.' /> last submission only </label>'."\n".
-	'<label><input type="radio" name="lastSub" value="last" /> last submission & parts info </label>'."\n".
+	'<label><input type="radio" name="lastSub" value="last" /> last submission &amp; parts info </label>'."\n".
 	'<label><input type="radio" name="lastSub" value="datesub" /> by dates and submissions </label>'."\n".
 	'<label><input type="radio" name="lastSub" value="all" /> all details</label><br />'."\n".
         '&nbsp;<b>Grading Increments:</b> <select name="increment">'.
@@ -902,27 +902,27 @@ LISTJAVASCRIPT
     $gradeTable.=&check_buttons();
     $gradeTable.='<label><input type="checkbox" name="checkPlag" checked="checked" />Check For Plagiarism</label>';
     my ($classlist, undef, $fullname) = &getclasslist($getsec,'1',$getgroup);
-    $gradeTable.='<table border="0"><tr><td bgcolor="#777777">'.
-	'<table border="0"><tr bgcolor="#e6ffff">';
+    $gradeTable.= &Apache::loncommon::start_data_table().
+	&Apache::loncommon::start_data_table_header_row();
     my $loop = 0;
     while ($loop < 2) {
-	$gradeTable.='<td><b>&nbsp;No.</b>&nbsp;</td><td><b>&nbsp;Select&nbsp;</b></td>'.
-	    '<td>'.&nameUserString('header').'&nbsp;Section/Group</td>';
+	$gradeTable.='<th>No.</th><th>Select</th>'.
+	    '<th>'.&nameUserString('header').'&nbsp;'.'Section/Group</th>';
 	if ($env{'form.showgrading'} eq 'yes' 
 	    && $submitonly ne 'queued'
 	    && $submitonly ne 'all') {
 	    foreach (sort(@$partlist)) {
 		my $display_part=&get_display_part((split(/_/))[0],$symb);
-		$gradeTable.='<td><b>&nbsp;Part: '.$display_part.
-		    ' Status&nbsp;</b></td>';
+		$gradeTable.='<th>Part: '.$display_part.
+		    ' Status</h>';
 	    }
 	} elsif ($submitonly eq 'queued') {
-	    $gradeTable.='<td><b>&nbsp;'.&mt('Queue Status').'&nbsp;</b></td>';
+	    $gradeTable.='<th>'.&mt('Queue Status').'&nbsp;</th>';
 	}
 	$loop++;
 #	$gradeTable.='<td></td>' if ($loop%2 ==1);
     }
-    $gradeTable.='</tr>'."\n";
+    $gradeTable.=&Apache::loncommon::end_data_table_header_row()."\n";
 
     my $ctr = 0;
     foreach my $student (sort 
@@ -978,13 +978,15 @@ LISTJAVASCRIPT
 	my $section = $classlist->{$student}->[&Apache::loncoursedata::CL_SECTION()];
         my $group = $classlist->{$student}->[&Apache::loncoursedata::CL_GROUP()];
 	if ( $perm{'vgr'} eq 'F' ) {
-	    $gradeTable.='<tr bgcolor="#ffffe6">' if ($ctr%2 ==1);
+	    if ($ctr%2 ==1) {
+		$gradeTable.= &Apache::loncommon::start_data_table_row();
+	    }
 	    $gradeTable.='<td align="right">'.$ctr.'&nbsp;</td>'.
                '<td align="center"><label><input type=checkbox name="stuinfo" value="'.
                $student.':'.$$fullname{$student}.':::SECTION'.$section.
 	       ')&nbsp;" />&nbsp;&nbsp;</label></td>'."\n".'<td>'.
 	       &nameUserString(undef,$$fullname{$student},$uname,$udom).
-	       '&nbsp;'.$section.'/'.$group.'</td>'."\n";
+	       '&nbsp;'.$section.($group ne '' ?'/'.$group:'').'</td>'."\n";
 
 	    if ($env{'form.showgrading'} eq 'yes' && $submitonly ne 'all') {
 		foreach (sort keys(%status)) {
@@ -993,7 +995,9 @@ LISTJAVASCRIPT
 		}
 	    }
 #	    $gradeTable.='<td></td>' if ($ctr%2 ==1);
-	    $gradeTable.='</tr>'."\n" if ($ctr%2 ==0);
+	    if ($ctr%2 ==0) {
+		$gradeTable.=&Apache::loncommon::end_data_table_row()."\n";
+	    }
 	}
     }
     if ($ctr%2 ==1) {
@@ -1007,10 +1011,10 @@ LISTJAVASCRIPT
 	    } elsif ($submitonly eq 'queued') {
 		$gradeTable.='<td>&nbsp;</td>';
 	    }
-	$gradeTable.='</tr>';
+	$gradeTable.=&Apache::loncommon::end_data_table_row();
     }
 
-    $gradeTable.='</table></td></tr></table>'."\n".
+    $gradeTable.=&Apache::loncommon::end_data_table()."\n".
 	'<input type="button" '.
 	'onClick="javascript:checkSelect(this.form.stuinfo);" '.
 	'value="Next->" /></form>'."\n";
@@ -1028,7 +1032,7 @@ LISTJAVASCRIPT
 		' students checked for '.$submissions.')</span><br />';
 	}
     } elsif ($ctr == 1) {
-	$gradeTable =~ s/type=checkbox/type=checkbox checked/;
+	$gradeTable =~ s/type="checkbox"/type="checkbox" checked="checked"/;
     }
     $gradeTable.=&show_grading_menu_form($symb);
     $request->print($gradeTable);
@@ -1969,7 +1973,7 @@ KEYWORDS
 	    $mode='answer';
 	}
 	&Apache::lonxml::clear_problem_counter();
-	$request->print(&show_problem($request,$symb,$uname,$udom,1,1,$mode));
+	$request->print(&show_problem($request,$symb,$uname,$udom,1,1,$mode,{'request.prefix' => 'ctr'.$counter}));
     }
 
     my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},$udom,$uname);
@@ -3169,14 +3173,12 @@ sub viewgrades {
 	$sectionClass=&mt('Students in Section(s) [_1]',$section_display).'</h3>';
     }
     $result.='<h3>'.&mt('Assign Common Grade To [_1]',$sectionClass);
-    $result.= '<table border=0><tr><td bgcolor="#777777">'."\n".
-	'<table border=0><tr bgcolor="#ffffdd"><td>';
+    $result.= &Apache::loncommon::start_data_table();
     #radio buttons/text box for assigning points for a section or class.
     #handles different parts of a problem
     my ($partlist,$handgrade,$responseType) = &response_type($symb);
     my %weight = ();
     my $ctsparts = 0;
-    $result.='<table border="0">';
     my %seen = ();
     my @part_response_id = &flatten_responseType($responseType);
     foreach my $part_response_id (@part_response_id) {
@@ -3188,12 +3190,14 @@ sub viewgrades {
 	my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb);
 	$weight{$partid} = $wgt eq '' ? '1' : $wgt;
 
+	$result.=&Apache::loncommon::start_data_table_row().'<td>';
 	$result.='<input type="hidden" name="partid_'.
 	    $ctsparts.'" value="'.$partid.'" />'."\n";
 	$result.='<input type="hidden" name="weight_'.
 	    $partid.'" value="'.$weight{$partid}.'" />'."\n";
 	my $display_part=&get_display_part($partid,$symb);
-	$result.='<tr><td><b>Part:</b> '.$display_part.'&nbsp; &nbsp;<b>Point:</b> </td><td>';
+	$result.=
+	    '<b>Part:</b> '.$display_part.'&nbsp; &nbsp;<b>Point:</b> </td><td>';
 	$result.='<table border="0"><tr>';  
 	my $ctr = 0;
 	while ($ctr<=$weight{$partid}) { # display radio buttons in a nice table 10 across
@@ -3208,26 +3212,27 @@ sub viewgrades {
 	    $partid.'" size="4" '.'onChange="javascript:writePoint(\''.
 		$partid.'\','.$weight{$partid}.',\'textval\')" /> /'.
 	    $weight{$partid}.' (problem weight)</td>'."\n";
-	$result.= '</td><td><select name="SELVAL_'.$partid.'"'.
+	$result.= '<td><select name="SELVAL_'.$partid.'"'.
 	    'onChange="javascript:writeRadText(\''.$partid.'\','.
 		$weight{$partid}.')"> '.
 	    '<option selected="selected"> </option>'.
 	    '<option>excused</option>'.
 	    '<option>reset status</option></select></td>'.
-            '<td><label><input type="checkbox" name="FORCE_'.$partid.'" /> Override "Correct"</label></td></tr>'."\n";
+            '<td><label><input type="checkbox" name="FORCE_'.$partid.'" /> Override "Correct"</label></td>'.&Apache::loncommon::end_data_table_row()."\n";
 	$ctsparts++;
     }
-    $result.='</table>'.'</td></tr></table>'.'</td></tr></table>'."\n".
+    $result.=&Apache::loncommon::end_data_table()."\n".
 	'<input type="hidden" name="totalparts" value="'.$ctsparts.'" />';
     $result.='<input type="button" value="Revert to Default" '.
-	'onClick="javascript:resetEntry('.$ctsparts.');" target="_self" />';
+	'onClick="javascript:resetEntry('.$ctsparts.');" />';
 
     #table listing all the students in a section/class
     #header of table
     $result.= '<h3>Assign Grade to Specific Students in '.$sectionClass;
-    $result.= '<table border=0><tr><td bgcolor="#777777">'."\n".
-	'<table border=0><tr bgcolor="#deffff"><td>&nbsp;<b>No.</b>&nbsp;</td>'.
-	'<td>'.&nameUserString('header')."</td>\n";
+    $result.= &Apache::loncommon::start_data_table().
+	&Apache::loncommon::start_data_table_header_row().
+	'<th>No.</th>'.
+	'<th>'.&nameUserString('header')."</th>\n";
     my (@parts) = sort(&getpartlist($symb));
     my (undef,undef,$url)=&Apache::lonnet::decode_symb($symb);
     my @partids = ();
@@ -3239,16 +3244,16 @@ sub viewgrades {
         push(@partids, $partid);
 	my $display_part=&get_display_part($partid,$symb);
 	if ($display =~ /^Partial Credit Factor/) {
-	    $result.='<td><b>Score Part:</b> '.$display_part.
-		' <br /><b>(weight = '.$weight{$partid}.')</b></td>'."\n";
+	    $result.='<th>Score Part: '.$display_part.
+		' <br />(weight = '.$weight{$partid}.')</th>'."\n";
 	    next;
 	} else {
 	    $display =~s/\[Part: \Q$partid\E\]/Part:<\/b> $display_part/;
 	}
 	$display =~ s|Problem Status|Grade Status<br />|;
-	$result.='<td><b>'.$display.'</td>'."\n";
+	$result.='<th>'.$display.'</th>'."\n";
     }
-    $result.='</tr>';
+    $result.=&Apache::loncommon::end_data_table_header_row();
 
     my %last_resets = 
 	&get_last_resets($symb,$env{'request.course.id'},\@partids);
@@ -3268,7 +3273,7 @@ sub viewgrades {
 	$result.=&viewstudentgrade($symb,$env{'request.course.id'},
 				   $_,$$fullname{$_},\@parts,\%weight,$ctr,\%last_resets);
     }
-    $result.='</table></td></tr></table>';
+    $result.=&Apache::loncommon::end_data_table();
     $result.='<input type="hidden" name="total" value="'.$ctr.'" />'."\n";
     $result.='<input type="button" value="Save" '.
 	'onClick="javascript:submit();" target="_self" /></form>'."\n";
@@ -3291,7 +3296,7 @@ sub viewstudentgrade {
     my ($uname,$udom) = split(/:/,$student);
     my %record=&Apache::lonnet::restore($symb,$courseid,$udom,$uname);
     my %aggregates = (); 
-    my $result='<tr bgcolor="#ffffdd"><td align="right">'.
+    my $result=&Apache::loncommon::start_data_table_row().'<td align="right">'.
 	'<input type="hidden" name="ctr'.($ctr-1).'" value="'.$student.'" />'.
 	"\n".$ctr.'&nbsp;</td><td>&nbsp;'.
 	'<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom.
@@ -3346,7 +3351,7 @@ sub viewstudentgrade {
 		'value="'.$score.'" size="4" /></td>'."\n";
 	}
     }
-    $result.='</tr>';
+    $result.=&Apache::loncommon::end_data_table_row();
     return $result;
 }
 
@@ -5316,19 +5321,15 @@ sub scantron_parse_scanline {
 	    } elsif (!defined($currentquest)
 		     || (&occurence_count($currentquest, $$scantron_config{'Qoff'}) == length($currentquest))
 		     || (&occurence_count($currentquest, "[A-Z]") == 0)) {
-		&Apache::lonnet::logthis("Missing if, $questnum, $ansnum");
 		for (my $ans = 0; $ans < $answers_needed; $ans++ ) {
 		    $record{"scantron.$ansnum.answer"}='';
 		    $ansnum++;
 
 		}
 		if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) {
-		    &Apache::lonnet::logthis("Parsed missing: $questnum");
 		    push(@{$record{"scantron.missingerror"}},$questnum);
 		   #  $ansnum += $answers_needed;
 		}
-		&Apache::lonnet::logthis("Residual scanline:  '$questions'");
-
 	    } else {
 		for (my $ans = 0; $ans < $answers_needed; $ans++) {
 		    $record{"scantron.$ansnum.answer"} = substr($currentquest, $ans, 1);
@@ -6487,7 +6488,6 @@ ENDSCRIPT
 	foreach my $question (@{$arg}) {
 	    my $selected = &get_response_bubbles($scan_record, $question);
 	    my @select_array = split(/:/,$selected); # ought to be an array of empties.
-	    &Apache::lonnet::logthis("Calling bubble selector (missing)");
 	    &scantron_bubble_selector($r,$scan_config,$question, @select_array);
 	}
     } else {
@@ -6529,7 +6529,6 @@ sub scantron_bubble_selector {
 
     my $total_lines = $lines*2;
     my @alphabet=('A'..'Z');
-    &Apache::lonnet::logthis("Putting in question number $quest");
     $r->print("<table border='1'><tr><td rowspan='".$total_lines."'>$quest</td>");
 
     for (my $l = 0; $l < $lines; $l++) {
@@ -6885,7 +6884,6 @@ sub scantron_validate_missingbubbles {
 
 	foreach my $missing (@{$$scan_record{'scantron.missingerror'}}) {
 	    if ($missing > $max_bubble) { next; }
-	    &Apache::lonnet::logthis("Marking $missing for missing bubble check");
 	    push(@to_correct,$missing);
 	}
 	if (@to_correct) {
@@ -7286,7 +7284,7 @@ sub grading_menu {
     $Str .= '<input type="hidden" name="command" value="" />'.
     	'<input type="hidden" name="symb"        value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".
 	'<input type="hidden" name="handgrade"   value="'.$hdgrade.'" />'."\n".
-	'<input type="hidden" name="probTitle"   value="'.$probTitle.'" ue="" />'."\n".
+	'<input type="hidden" name="probTitle"   value="'.$probTitle.'" />'."\n".
 	'<input type="hidden" name="saveState"   value="" />'."\n".
 	'<input type="hidden" name="gradingMenu" value="1" />'."\n".
 	'<input type="hidden" name="showgrading" value="yes" />'."\n";
@@ -7310,7 +7308,6 @@ sub grading_menu {
         $Str .= '    '.('&nbsp;'x8).$menudata->{'short_description'}.
             "\n";
     }
-    $Str .="</dl>\n";
     $Str .="</form>\n";
     $request->print(<<GRADINGMENUJS);
 <script type="text/javascript" language="javascript">
@@ -7397,9 +7394,8 @@ sub submit_options {
 </script>
 GRADINGMENUJS
     &commonJSfunctions($request);
-    my $result='<h3>&nbsp;<span class="LC_info">Manual Grading/View Submission</span></h3>';
     my ($table,undef,$hdgrade) = &showResourceInfo($symb,$probTitle);
-    $result.=$table;
+    my $result;
     my (undef,$sections) = &getclasslist('all','0');
     my $savedState = &savedState();
     my $saveCmd = ($$savedState{'saveCmd'} eq '' ? 'submission' : $$savedState{'saveCmd'});
@@ -7416,102 +7412,104 @@ GRADINGMENUJS
 	'<input type="hidden" name="gradingMenu" value="1" />'."\n".
 	'<input type="hidden" name="showgrading" value="yes" />'."\n";
 
-    $result.='<table border="0"><tr><td bgcolor=#777777>'."\n".
-	'<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n".
-	'&nbsp;<b>Select a Grading/Viewing Option</b></td></tr>'."\n".
-	'<tr bgcolor="#ffffe6" valign="top"><td>'."\n";
-
-    $result.='<table width="100%" border="0">';
-    $result.='<tr bgcolor="#ffffe6" valign="top">'."\n";
-    $result.='<td><b>'.&mt('Sections').'</b></td>';
-    $result.='<td><b>'.&mt('Groups').'</b></td>';
-    $result.='<td><b>'.&mt('Access Status').'</td>'."\n";
-    $result.='<td><b>'.&mt('Submission Status').'</td>'."\n";
-    $result.='</tr>';
-    $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".
-	'&nbsp;<select name="section" multiple="multiple" size="3">'."\n";
+    $result.='
+    <div class="LC_grade_select_mode">
+      <div class="LC_grade_select_mode_current">
+        <h2>
+          '.&mt('Grade Current Resource').'
+        </h2>
+        <div class="LC_grade_select_mode_body">
+          <div class="LC_grades_resource_info">
+           '.$table.'
+          </div>
+          <div class="LC_grade_select_mode_selector">
+             <div class="LC_grade_select_mode_selector_header">
+                '.&mt('Sections').'
+             </div>
+             <div class="LC_grade_select_mode_selector_body">
+	       <select name="section" multiple="multiple" size="5">'."\n";
     if (ref($sections)) {
-	foreach (sort (@$sections)) {
-	    $result.='<option value="'.$_.'" '.
-		($saveSec eq $_ ? 'selected="selected"':'').'>'.$_.'</option>'."\n";
+	foreach my $section (sort (@$sections)) {
+	    $result.='<option value="'.$section.'" '.
+		($saveSec eq $section ? 'selected="selected"':'').'>'.$section.'</option>'."\n";
 	}
     }
     $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> &nbsp; ';
-    $result.= '</td><td>'."\n";
-    $result.= &Apache::lonstatistics::GroupSelect('group','multiple',3);
-    $result.='</td><td>'."\n";
-    $result.=&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,3,undef,'mult');
-
-    $result.='</td>';
-    $result.='<td><select name="submitonly" size="3">'.
-	'<option value="yes" '.
-	($saveSub eq 'yes' ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option>'.
-	'<option value="queued" '.
-	($saveSub eq 'queued' ? 'selected="selected"' : '').'>'.&mt('in grading queue').'</option>'.
-	'<option value="graded" '.
-	($saveSub eq 'graded' ? 'selected="selected"' : '').'>'.&mt('with ungraded submissions').'</option>'.
-	'<option value="incorrect" '.
-	($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option>'.
-	'<option value="all" '.
-	($saveSub eq 'all' ? 'selected="selected"' : '').'>'.&mt('with any status').'</option></select></td></tr>';
-
-    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="3"><label>'.
-	'<input type="radio" name="radioChoice" value="submission" '.
-	($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '.'<b>'.&mt('Current Resource').':</b> '.&mt('For one or more students').
-	'</label> </td></tr>'."\n";
-
-    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="3">'.
-	'<label><input type="radio" name="radioChoice" value="viewgrades" '.
-	($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '.
-	'<b>Current Resource:</b> For all students in selected section or course</label></td></tr>'."\n";
-
-    $result.='<tr bgcolor="#ffffe6"><td colspan="3"><br />'.
-	'<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.
-	'</td></tr>'."\n";
-
-
-    $result.='<tr bgcolor="#ffffe6" valign="top"><td colspan="3">'.
-	'<br /><label><input type="radio" name="radioChoice" value="pickStudentPage" '.
-	($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.
-	'The <b>complete</b> set/page/sequence/folder: For one student</label></td></tr>'."\n";
-
-    $result.='<tr bgcolor="#ffffe6"><td colspan="3"><br />'.
-	'<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.
-	'</td></tr></table>'."\n";
-
-    $result.='</td>'; #<td valign="top">';
-
-#    $result.='<table width="100%" border="0">';
-#    $result.='<tr bgcolor="#ffffe6"><td>'.
-#	'<input type="button" onClick="javascript:checkChoice(this.form,\'3\',\'csvform\');" value="'.&mt('Upload').'" />'.
-#	' '.&mt('scores from file').' </td></tr>'."\n";
-#
-#    $result.='<tr bgcolor="#ffffe6"><td>'.
-#        '<input type="button" onClick="javascript:checkChoice(this.form,\'6\',\'processclicker\');" value="'.&mt('Process').'" />'.
-#        ' '.&mt('clicker file').' </td></tr>'."\n";
-#
-#    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.
-#	'<input type="button" onClick="javascript:checkChoice(this.form,\'4\',\'scantron_selectphase\');'.
-#	'" value="'.&mt('Grade').'" /> scantron forms</td></tr>'."\n";
-#
-#    if ((&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) && ($symb)) {
-#	$result.='<tr bgcolor="#ffffe6"valign="top"><td>'.
-#	    '<input type="button" onClick="javascript:checkChoice(this.form,\'5\',\'verify\');" value="'.&mt('Verify').'" />'.
-#	    ' '.&mt('receipt').': '.
-#	    &Apache::lonnet::recprefix($env{'request.course.id'}).
-#	    '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />'.
-#	    '</td></tr>'."\n";
-#    } 
-#    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.
-#	'<input type="button" onClick="javascript:this.form.action=\'/adm/helper/resettimes.helper\';this.form.submit();'.
-#	'" value="'.&mt('Manage').'" /> access times.</td></tr>'."\n";
-#    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.
-#	'<input type="button" onClick="javascript:this.form.command.value=\'codelist\';this.form.action=\'/adm/pickcode\';this.form.submit();'.
-#	'" value="'.&mt('View').'" /> saved CODEs.</td></tr>'."\n";
-#
-#    $result.='</table>'."\n".'</td>';
-    $result.= '</tr></table>'."\n".
-	'</td></tr></table></form>'."\n";
+    $result.='
+             </div>
+          </div>
+          <div class="LC_grade_select_mode_selector">
+             <div class="LC_grade_select_mode_selector_header">
+                '.&mt('Groups').'
+             </div>
+             <div class="LC_grade_select_mode_selector_body">
+                '.&Apache::lonstatistics::GroupSelect('group','multiple',5).'
+             </div>
+          </div>
+          <div class="LC_grade_select_mode_selector">
+             <div class="LC_grade_select_mode_selector_header">
+                '.&mt('Access Status').'
+             </div>
+             <div class="LC_grade_select_mode_selector_body">
+                '.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').'
+             </div>
+          </div>
+          <div class="LC_grade_select_mode_selector">
+             <div class="LC_grade_select_mode_selector_header">
+                '.&mt('Submission Status').'
+             </div>
+             <div class="LC_grade_select_mode_selector_body">
+               <select name="submitonly" size="5">
+	         <option value="yes" '.      ($saveSub eq 'yes'       ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option>
+	         <option value="queued" '.   ($saveSub eq 'queued'    ? 'selected="selected"' : '').'>'.&mt('in grading queue').'</option>
+	         <option value="graded" '.   ($saveSub eq 'graded'    ? 'selected="selected"' : '').'>'.&mt('with ungraded submissions').'</option>
+	         <option value="incorrect" '.($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option>
+                 <option value="all" '.      ($saveSub eq 'all'       ? 'selected="selected"' : '').'>'.&mt('with any status').'</option>
+               </select>
+             </div>
+          </div>
+          <div class="LC_grade_select_mode_type_body">
+            <div class="LC_grade_select_mode_type">
+              <label>
+                <input type="radio" name="radioChoice" value="submission" '.
+                  ($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '.
+             &mt('Select individual students to grade and view submissions.').'
+	      </label> 
+            </div>
+            <div class="LC_grade_select_mode_type">
+	      <label>
+                <input type="radio" name="radioChoice" value="viewgrades" '.
+                  ($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '.
+                    &mt('Grade all selected students in a grading table.').'
+              </label>
+            </div>
+            <div class="LC_grade_select_mode_type">
+	      <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next-&gt;').'" />
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="LC_grade_select_mode_page">
+        <h2>
+         '.&mt('Grade Complete Folder for One Student').'
+        </h2>
+        <div class="LC_grades_select_mode_body">
+          <div class="LC_grade_select_mode_type_body">
+            <div class="LC_grade_select_mode_type">
+              <label>
+                <input type="radio" name="radioChoice" value="pickStudentPage" '.
+	  ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.
+  &mt('The <b>complete</b> page/sequence/folder: For one student').'
+              </label>
+            </div>
+            <div class="LC_grade_select_mode_type">
+	      <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next-&gt;').'" />
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </form>';
     return $result;
 }