--- loncom/homework/response.pm	2004/08/29 07:49:35	1.101
+++ loncom/homework/response.pm	2004/11/06 21:30:35	1.105.2.1
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # various response type definitons response definition
 #
-# $Id: response.pm,v 1.101 2004/08/29 07:49:35 albertel Exp $
+# $Id: response.pm,v 1.105.2.1 2004/11/06 21:30:35 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -136,12 +136,17 @@ sub setrandomnumber {
 	my ($num1,$num2)=split(/\Q$char\E/,$rndseed);
 	$num1+=$rndmod;
 	$num2+=$rndmod;
+	if($Apache::lonnet::_64bit) { $num1=(($num1<<32)>>32); $num2=(($num2<<32)>>32); }
 	$rndseed=$num1.$char.$num2;
     } else {
 	$rndseed+=$rndmod;
+	if($Apache::lonnet::_64bit) {
+	    use integer;
+	    $rndseed=(($rndseed<<32)>>32);
+	}
     }
-    &Apache::lonnet::setup_random_from_rndseed($rndseed);
     &Apache::lonxml::debug("randseed $rndseed");
+    &Apache::lonnet::setup_random_from_rndseed($rndseed);
     return '';
 }
 
@@ -500,12 +505,14 @@ sub answer_footer {
 }
 
 sub showallfoils {
-    my $return=0;
-    if (defined($ENV{'form.showallfoils'}) &&
-	$ENV{'request.state'} eq 'construct') {
-	$return=1;
+    if (defined($ENV{'form.showallfoils'})) {
+	my ($symb)=&Apache::lonxml::whichuser();
+	if ($ENV{'request.state'} eq 'construct' || 
+	    ($ENV{'user.adv'} && $symb eq '')) {
+	    return 1;
+	}
     }
-    return $return;
+    return 0;
 }
 
 sub getresponse {
@@ -530,7 +537,11 @@ sub getresponse {
 	$Apache::lonhomework::results{"resource.$part.$id.scantron"}.=
 	    $response;
 	if ($resulttype ne 'letter') {
-	    $response = $let_to_num{$response};
+	    if ($resulttype eq 'A is 1') {
+		$response = $let_to_num{$response}+1;
+	    } else {
+		$response = $let_to_num{$response};
+	    }
 	}
     } else {
 	$response = $ENV{$formparm};