--- loncom/homework/edit.pm	2007/09/07 00:39:21	1.110
+++ loncom/homework/edit.pm	2008/01/15 03:09:09	1.113
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # edit mode helpers
 #
-# $Id: edit.pm,v 1.110 2007/09/07 00:39:21 albertel Exp $
+# $Id: edit.pm,v 1.113 2008/01/15 03:09:09 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -577,7 +577,8 @@ sub element_change_detection {
 }
 
 sub submit_ask_anyway {
-    return ' onclick="still_ask=true;" ';
+    my ($extra_action) = @_;
+    return ' onclick="still_ask=true;'.$extra_action.'" ';
 }
 
 sub textarea_sizes {
@@ -597,7 +598,7 @@ sub textarea_sizes {
 sub editline {
     my ($tag,$data,$description,$size)=@_;
     $data=&HTML::Entities::encode($data,'<>&"');
-    if ($description) { $description="<br />".$description."<br />"; }
+    if ($description) { $description=$description."<br />"; }
     my $change_code = &element_change_detection();
     my $result = <<"END";
 $description
@@ -619,7 +620,7 @@ sub editfield {
     if ($cols > 80) { $cols = 80; }
     if ($cols < $minwidth ) { $cols = $minwidth; }
     if ($rows < $minheight) { $rows = $minheight; }
-    if ($description) { $description="<br />".$description."<br />"; }
+    if ($description) { $description=$description."<br />"; }
     if ($usehtmlarea) {
 	&Apache::lonhtmlcommon::add_htmlareafields('homework_edit_'.
 						   $Apache::lonxml::curdepth);
@@ -672,6 +673,10 @@ sub get_new_args {
 		$token->[2]->{$arg}=$newvalue;
 	    }
 	    $rebuild=1;
+	    # add new attributes to the of the attribute seq
+	    if (!grep { $arg eq $_ } (@{ $token->[3] })) {
+		push(@{ $token->[3] },$arg);
+	    }
 	} elsif (!defined($newvalue) && defined($value)) {
 	    delete($token->[2]->{$arg});
 	    $rebuild=1;
@@ -688,6 +693,7 @@ sub rebuild_tag {
 	$result = '<'.$token->[1];
 	foreach my $attribute (@{ $token->[3] }) {
 	    my $value = $token->[2]{$attribute};
+	    next if ($value eq '');
 	    $value =~s/^\s+|\s+$//g;
 	    $value =~s/\"//g;
 	    &Apache::lonxml::debug("setting :$attribute: to  :$value:");