--- loncom/homework/radiobuttonresponse.pm	2004/10/21 03:34:06	1.96
+++ loncom/homework/radiobuttonresponse.pm	2005/06/21 21:00:55	1.101
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # mutliple choice style responses
 #
-# $Id: radiobuttonresponse.pm,v 1.96 2004/10/21 03:34:06 albertel Exp $
+# $Id: radiobuttonresponse.pm,v 1.101 2005/06/21 21:00:55 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -30,6 +30,7 @@ package Apache::radiobuttonresponse;
 use strict;
 use HTML::Entities();
 use Apache::lonlocal;
+use Apache::lonnet;
 
 BEGIN {
     &Apache::lonxml::register('Apache::radiobuttonresponse',('radiobuttonresponse'));
@@ -114,8 +115,8 @@ sub start_foilgroup {
 }
 
 sub storesurvey {
-    if ( !defined($ENV{'form.submitted'})) { return ''; }
-    my $response = $ENV{'form.HWVAL_'.$Apache::inputtags::response['-1']};
+    if ( !&Apache::response::submitted() ) { return ''; }
+    my $response = $env{'form.HWVAL_'.$Apache::inputtags::response['-1']};
     &Apache::lonxml::debug("Here I am!:$response:");
     if ( $response !~ /[0-9]+/) { return ''; }
     my $part = $Apache::inputtags::part;
@@ -137,12 +138,12 @@ sub grade_response {
     my ($max,$randomize)=@_;
     #keep the random numbers the same must always call this
     my ($answer,@whichfoils)=&whichfoils($max,$randomize);
-    if (!defined($ENV{'form.submitted'})) { return; }
+    if ( !&Apache::response::submitted() ) { return; }
     my $response;
-    if ($ENV{'form.submitted'} eq 'scantron') {
+    if ($env{'form.submitted'} eq 'scantron') {
 	$response=&Apache::response::getresponse();
     } else {
-	$response = $ENV{'form.HWVAL_'.$Apache::inputtags::response['-1']};
+	$response = $env{'form.HWVAL_'.$Apache::inputtags::response['-1']};
     }
     if ( $response !~ /[0-9]+/) { return; }
     my $part=$Apache::inputtags::part;
@@ -312,6 +313,9 @@ sub whichfoils {
 		&Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>",'<>&"'));
 	    }
 	}
+	if (!$havetrue && $Apache::lonhomework::type ne 'survey') {
+	    &Apache::lonxml::error("There are no true statements available.<br />");
+	}
     } else {
 	my $current=0;
 	&Apache::lonhomework::showhash(%Apache::response::foilgroup);
@@ -603,7 +607,10 @@ sub end_foil {
 	my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval);
 	if ($value ne 'unused') {
 	    my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
-	    if (!$name) { $name=$Apache::lonxml::curdepth; }
+	    if (!$name) {
+		&Apache::lonxml::warning("Foils without names exist. This can cause problems to malfunction.");
+		$name=$Apache::lonxml::curdepth;
+	    }
 	    if (defined($Apache::response::foilnames{$name})) {
 		&Apache::lonxml::error(&mt("Foil name <b><tt>[_1]</tt></b> appears more than once. Foil names need to be unique.",$name));
 	    }