--- loncom/homework/optionresponse.pm	2003/10/27 20:04:34	1.94
+++ loncom/homework/optionresponse.pm	2004/02/12 15:50:01	1.99
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # option list style responses
 #
-# $Id: optionresponse.pm,v 1.94 2003/10/27 20:04:34 albertel Exp $
+# $Id: optionresponse.pm,v 1.99 2004/02/12 15:50:01 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) {
@@ -318,6 +319,8 @@ sub displayfoils {
 		} else {
 		    $text=$value.': '.$text;
 		}
+	    } else {
+		$text='&#149;'.$text;
 	    }
 	    $result.=$text."\n";
       } elsif ($target eq 'tex') {
@@ -367,6 +370,8 @@ sub displayfoils {
 	  my $text=$Apache::response::foilgroup{$name.'.text'};
 	  if (!($text=~s|<drawoptionlist\s*/>|$optionlist|) && $Apache::lonhomework::type ne 'exam') {
 	      $text=$optionlist.$text;
+	  } else {
+	      $text='&#149;'.$text;
 	  }
 	  $result.=$break.$text."\n";
 	  if ($Apache::lonhomework::type eq 'exam') {
@@ -393,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;
@@ -414,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++;
 	      }
 	  }
@@ -441,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/;
     }
@@ -480,14 +485,18 @@ sub bubbles {
     my ($result,$head,$line) =('','','');
     my $number_of_bubbles = $#opt + 1;
     my $current_length = 0;
+    $ENV{'form.textwidth'}=~/(\d+)/;
+    my $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;