--- loncom/homework/optionresponse.pm	2003/11/04 18:37:40	1.95
+++ loncom/homework/optionresponse.pm	2004/02/13 21:01:11	1.100
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # option list style responses
 #
-# $Id: optionresponse.pm,v 1.95 2003/11/04 18:37:40 albertel Exp $
+# $Id: optionresponse.pm,v 1.100 2004/02/13 21:01:11 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -43,7 +43,8 @@ sub start_optionresponse {
   %Apache::hint::option=();
   if ($target eq 'edit') {
     $result.=&Apache::edit::start_table($token).
-	"<tr><td>Multiple Option Response Question</td><td>Delete:".
+	"<tr><td>Multiple Option Response Question ".
+	&Apache::loncommon::help_open_topic('Option_Response_Problems')."</td><td>Delete:".
 	&Apache::edit::deletelist($target,$token)
 	."</td><td>&nbsp;".
         &Apache::edit::end_row().
@@ -184,8 +185,8 @@ sub end_foilgroup {
 	  if ($ENV{'form.submitted'} eq 'scantron') {
 	      $response = $opt[$response];
 	  }
-	  $responsehash{$name}=$response;
 	  if ( $response =~ /[^\s]/) {
+	    $responsehash{$name}=$response;
 	    my $value=$Apache::response::foilgroup{$name.'.value'};
 	    &Apache::lonxml::debug("submitted a $response for $value<br />\n");
 	    if ($value eq $response) {
@@ -397,7 +398,7 @@ sub displayfoils {
 		  }
 	      }
 	      if ($Apache::lonhomework::type eq 'exam') {
-		  $result.='\vskip -2 mm\parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';
+		  $result.='\vskip -1 mm\noindent\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]'.&bubbles(\@alphabet,\@opt).'\end{enumerate} \vskip -9 mm \strut ';
 		  $internal_counter++;
 	      }
 	      $displayoptionintex=1;
@@ -418,7 +419,7 @@ sub displayfoils {
 		  }
 	      }
 	      if ($Apache::lonhomework::type eq 'exam') {
-		  $result.='\vskip -2 mm \parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';
+		  $result.='\vskip -1 mm \noindent\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]'.&bubbles(\@alphabet,\@opt).'\end{enumerate} \vskip -9 mm \strut ';
 		  $internal_counter++;
 	      }
 	  }
@@ -445,7 +446,7 @@ sub optionlist_correction {
 	$texoptionlist =~ s/>/\$>\$/g;
 	$texoptionlist =~ s/</\$<\$/g;
 	$texoptionlist =~ s/=/\$=\$/g;
-	$texoptionlist =~ s/\^(\d+)/<m>\$$1\$<\/m>/g;
+	$texoptionlist =~ s/\^(\d+)/\$^{$1}\$/g;
     } else {
 	$texoptionlist =~ s/<option><\/option>/\\item \[\] \\vskip -5 mm/;
     }
@@ -484,14 +485,24 @@ sub bubbles {
     my ($result,$head,$line) =('','','');
     my $number_of_bubbles = $#opt + 1;
     my $current_length = 0;
+    my $textwidth;
+    if ($ENV{'form.textwidth'} ne '') {
+	$ENV{'form.textwidth'}=~/(\d+)/;
+	$textwidth=$1;
+    } else {
+	$ENV{'textwidth'}=~/(\d+)/;
+	$textwidth=$1;
+    }
     for (my $ind=0;$ind<=$number_of_bubbles;$ind++) {
-	$current_length += (length($opt[$ind])+length($alphabet[$ind])+2)*2;
-	if ($current_length<0.9*$ENV{'form.textwidth'} and $ind!=$number_of_bubbles) {
+	my $leftmargin;
+	if ($ind==0) {$leftmargin=6;} else {$leftmargin=10;}
+	$current_length += (length($opt[$ind])+length($alphabet[$ind])+3)*2;
+	if ($current_length<($textwidth-$leftmargin) and $ind!=$number_of_bubbles) {
 	    $line.='\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';
 	    $head.='lr';
 	} else {
 	    $line=~s/\&\s*$//;
-	    $result.='\vskip -5 mm\begin{tabular}{'.$head.'}\\\\'.$line.'\\\\\end{tabular}';
+	    $result.='\vskip -2 mm\noindent\begin{tabular}{'.$head.'}'.$line.'\\\\\end{tabular}';
 	    $line = '\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';;
 	    $head ='lr';
 	    $current_length = (length($opt[$ind])+length($alphabet[$ind]))*2;