--- loncom/homework/edit.pm	2001/10/09 20:45:13	1.22
+++ loncom/homework/edit.pm	2001/12/04 14:47:33	1.25
@@ -1,5 +1,30 @@
 # The LearningOnline Network with CAPA 
 # edit mode helpers
+#
+# $Id: edit.pm,v 1.25 2001/12/04 14:47:33 albertel Exp $
+#
+# Copyright Michigan State University Board of Trustees
+#
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
+#
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
 # 3/20 Guy
 package Apache::edit; 
 
@@ -60,7 +85,7 @@ sub start_table {
   my $tag = $token->[1];
   my $tagnum;
   foreach my $namespace (reverse @Apache::lonxml::namespace) {
-    my $testtag=$Apache::lonxml::namespace['-1'].'::'.$tag;
+    my $testtag=$namespace.'::'.$tag;
     $tagnum=$Apache::lonxml::insertlist{"$testtag.num"};
     if (defined($tagnum)) { last; }
   }
@@ -189,6 +214,15 @@ sub insert_responseparam {
     <responseparam />';
 }
 
+sub insert_formularesponse {
+  return '
+<formularesponse answer="" samples="">
+    <textline />
+    <hintgroup>
+    </hintgroup>
+</formularesponse>';
+}
+
 sub insert_numericalresponse {
   return '
 <numericalresponse answer="">
@@ -217,6 +251,16 @@ sub insert_optionresponse {
 </optionresponse>';
 }
 
+sub insert_radiobuttonresponse {
+  return '
+<radiobuttonresponse max="10">
+    <foilgroup>
+    </foilgroup>
+    <hintgroup>
+    </hintgroup>
+</radiobuttonresponse>';
+}
+
 sub insert_displayduedate { return '<displayduedate />'; }
 sub insert_displaytitle   { return '<displaytitle />'; }
 sub insert_hintpart {
@@ -233,22 +277,35 @@ sub insert_numericalhint {
 </numericalhint>';
 }
 
-sub editfield {
-  my ($tag,$data,$description,$minwidth,$minheight)=@_;
+sub insert_startouttext {
+  return "<startouttext />\n<endouttext />";
+}
 
+sub insert_script {
+  return "\n<script type=\"loncapa/perl\">\n</script>";
+}
+
+sub textarea_sizes {
+  my ($data)=@_;
   my $count=0;
   my $maxlength=-1;
   map { $count++;
-	if (length($_) > $maxlength) { $maxlength = length ($_); }
-      } split ("\n", $data);
-  if ($maxlength > 80) { $maxlength = 80; }
-  if ($maxlength < $minwidth) { $maxlength = $minwidth; }
-  if ( $count < $minheight) { $count = $minheight; }
-  if ($description) {
-    $description="<br />".$description."<br />";
-  }
-  return "$description\n&nbsp;&nbsp;&nbsp;<textarea rows=\"$count\" cols=\"$maxlength\" name=homework_edit_".$Apache::lonxml::curdepth.">$data</textarea>\n";
-#  return "<br />\n&lt;$tag&gt;<br />\n&nbsp;&nbsp;&nbsp;<textarea rows=\"$count\" cols=\"$maxlength\" name=homework_edit_".$Apache::lonxml::curdepth.">$data</textarea><br />\n&lt;/$tag&gt;<br />\n";
+	if (length($_) > $maxlength) { $maxlength = length($_); }
+      } split ("\n", $$data);
+  my $rows = $count;
+  my $cols = $maxlength;
+  return ($rows,$cols);
+}
+
+sub editfield {
+  my ($tag,$data,$description,$minwidth,$minheight)=@_;
+
+  my ($rows,$cols)=&textarea_sizes(\$data);
+  if ($cols > 80) { $cols = 80; }
+  if ($cols < $minwidth ) { $cols = $minwidth; }
+  if ($rows < $minheight) { $rows = $minheight; }
+  if ($description) { $description="<br />".$description."<br />"; }
+  return "$description\n&nbsp;&nbsp;&nbsp;<textarea rows=\"$rows\" cols=\"$cols\" name=\"homework_edit_".$Apache::lonxml::curdepth."\">$data</textarea>\n";
 }
 
 sub modifiedfield {
@@ -270,14 +327,6 @@ sub modifiedfield {
   return $result;
 }
 
-sub insert_startouttext {
-  return "<startouttext />\n<endouttext />";
-}
-
-sub insert_script {
-  return "\n<script type=\"loncapa/perl\">\n</script>";
-}
-
 # Returns a 1 if the token has been modified and you should rebuild the tag
 # side-effects, will modify the $token if new values are found
 sub get_new_args {