--- loncom/interface/statistics/lonstathelpers.pm	2010/08/04 01:56:07	1.63
+++ loncom/interface/statistics/lonstathelpers.pm	2011/03/12 02:58:49	1.65
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstathelpers.pm,v 1.63 2010/08/04 01:56:07 raeburn Exp $
+# $Id: lonstathelpers.pm,v 1.65 2011/03/12 02:58:49 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -135,9 +135,20 @@ Skips 'survey' problems.
 ####################################################
 ####################################################
 sub problem_selector {
-    my ($AcceptedResponseTypes,$sequence_addendum,$symbmode) = @_;
+    my ($AcceptedResponseTypes,$sequence_addendum,$symbmode,$all,$prefix,$smallbox,$onclick) = @_;
+# all: also make sequences selectable
+# prefix: prefix for all form names
+# smallbox: use smaller box
+# onclick: javascript to execute when clicked
     my $Str;
-    $Str = &Apache::loncommon::start_data_table();
+    my $jsadd='';
+    if ($onclick) {
+        $jsadd="onClick='$onclick'";
+    }
+    $Str =  &Apache::loncommon::start_scrollbox(($smallbox?'520px':'620px'),
+                                                ($smallbox?'500px':'600px'),
+                                                ($smallbox?'50px':'300px')).
+            &Apache::loncommon::start_data_table();
     my $rb_count =0;
     my ($navmap,@sequences) = 
         &Apache::lonstatistics::selected_sequences_with_assessments('all');
@@ -166,10 +177,12 @@ sub problem_selector {
                         }
                         $seq_str .=  &Apache::loncommon::start_data_table_row().
                             ($symbmode?
-                             '<td><input type="radio" id="'.$rb_count.'" name="symb" value="'.&HTML::Entities::encode($res->symb,'<>&"').'" '.$checked.' /></td>'
+                             '<td><input type="radio" id="'.$prefix.$rb_count.'" name="'.$prefix.'symb" value="'.&HTML::Entities::encode($res->symb,'<>&"').'" '.$checked.' '.
+                             $jsadd.
+                             ' /></td>'
                             :qq{<td><input type="radio" id="$rb_count" name="problemchoice" value="$value"$checked /></td>}).
-                            '<td><label for="'.$rb_count.'">'.$resptype.'</label></td>'.
-                            '<td><label for="'.$rb_count.'">'.$title.'</label>';
+                            '<td><label for="'.$prefix.$rb_count.'">'.$resptype.'</label></td>'.
+                            '<td><label for="'.$prefix.$rb_count.'">'.$title.'</label>';
                         if (scalar(@response_ids) > 1) {
                             $seq_str .= &mt('response').' '.$respid;
                         }
@@ -184,7 +197,9 @@ sub problem_selector {
         }
         if ($seq_str ne '') {
             $Str .= &Apache::loncommon::start_data_table_header_row().
-                '<th colspan="3">'.$seq->compTitle.'</th>'.
+                '<th colspan="3">'.
+                ($all?'<input type="radio" id="'.$prefix.'s'.$rb_count.'" name="'.$prefix.'symb" value="'.&HTML::Entities::encode($seq->symb,'<>&').'" '.$jsadd.' />':'').
+                $seq->compTitle.'</th>'.
                 &Apache::loncommon::end_data_table_header_row()."\n".$seq_str;
             if (defined($sequence_addendum)) {
                 $Str .= &Apache::loncommon::start_data_table_header_row().
@@ -193,8 +208,9 @@ sub problem_selector {
                     &Apache::loncommon::end_data_table_header_row()."\n";
             }
         }
+
     }
-    $Str .= &Apache::loncommon::end_data_table()."\n";
+    $Str .= &Apache::loncommon::end_data_table().&Apache::loncommon::end_scrollbox()."\n";
     return $Str;
 }