--- loncom/homework/edit.pm	2010/01/31 00:47:41	1.123.4.1
+++ loncom/homework/edit.pm	2012/02/13 11:23:11	1.140
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # edit mode helpers
 #
-# $Id: edit.pm,v 1.123.4.1 2010/01/31 00:47:41 raeburn Exp $
+# $Id: edit.pm,v 1.140 2012/02/13 11:23:11 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -204,7 +204,7 @@ sub start_table {
     $Apache::edit::colordepth++;
     push(@Apache::edit::inserttag,$token->[1]);
     my $result='<div align="right">';
-    $result.='<table bgcolor="'.$color.'" width="97%" border="0" cellspacing="5" cellpadding="3">';
+    $result.='<table bgcolor="'.$color.'" width="97%" border="0" cellspacing="3" cellpadding="2">';
     return $result;
 }
 
@@ -232,7 +232,7 @@ sub end_table {
     return $result;
 }
 
-sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#DDDDDD">';}
+sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#F0F0F0">';}
 sub start_row          { return '<tr><td bgcolor="#DDDDDD">';            }
 sub end_row            { return '</td></tr>';          }
 
@@ -357,7 +357,7 @@ sub do_insert {
 	my $depth = scalar(@Apache::lonxml::depthcounter);
 	$depth -- if ($after);
 	my $inset = "\t"x$depth;
-	$result.="\n$inset<$newtag>\n$inset</$newtag>";
+	$result.="\n$inset<$newtag></$newtag>";
     } else {
 	if (defined(&$func)) {
 	    {
@@ -397,6 +397,79 @@ sub insert_formularesponse {
 </formularesponse>';
 }
 
+sub insert_functionplotresponse {
+    return '
+<functionplotresponse>
+<functionplotelements>
+</functionplotelements>
+<functionplotruleset>
+</functionplotruleset>
+</functionplotresponse>';
+}
+
+sub insert_spline {
+    return '
+<spline />';
+}
+
+sub insert_backgroundplot {
+    return '
+<backgroundplot />';
+}
+
+sub insert_plotobject {
+    return '
+<plotobject />';
+}
+
+sub insert_plotvector {
+    return '
+<plotvector />';
+}
+
+sub insert_functionplotrule {
+    return '
+<functionplotrule />';
+}
+
+sub insert_functionplotvectorrule {
+    return '
+<functionplotvectorrule />';
+}
+
+sub insert_functionplotvectorsumrule {
+    return '
+<functionplotvectorsumrule />';
+}
+
+sub insert_functionplotcustomrule {
+    return '
+<functionplotcustomrule>
+<answer type="loncapa/perl">
+# &fpr_val("label"), &fpr_f($x), &fpr_dfdx($x), &fpr_d2fdx2($x)
+# ($xs,$xe,$ys,$ye)=&fpr_vectorcoords("Name"), ($x,$y)=&fpr_objectcoords("Name")
+# &fpr_vectorlength("Name"), &fpr_vectorangle("Name")
+ 
+# Return 0 or 1
+return 1;
+</answer>
+</functionplotcustomrule>';
+}
+
+sub insert_functionplotruleset {
+    return '
+<functionplotruleset>
+<functionplotrule />
+</functionplotruleset>';
+}
+
+sub insert_functionplotelements {
+    return '
+<functionplotelements>
+<spline />
+</functionplotelements>';
+}
+
 sub insert_numericalresponse {
     return '
 <numericalresponse answer="">
@@ -592,6 +665,9 @@ sub insert_matchresponse {
 </matchresponse>';
 }
 
+sub insert_startpartmarker { return '<startpartmarker />'; }
+sub insert_endpartmarker { return '<endpartmarker />'; }
+
 sub insert_displayduedate { return '<displayduedate />'; }
 sub insert_displaytitle   { return '<displaytitle />'; }
 sub insert_hintpart {
@@ -697,6 +773,12 @@ sub submit_ask_anyway {
     return ' onclick="still_ask=true;'.$extra_action.'" ';
 }
 
+sub submit_dont_ask {
+    my ($extra_action) = @_;
+    return ' onclick="is_submit=true;'.$extra_action.'" ';
+}
+
+
 sub textarea_sizes {
     my ($data)=@_;
     my $count=0;
@@ -728,27 +810,27 @@ sub editfield {
     my ($tag,$data,$description,$minwidth,$minheight,$usehtmlarea)=@_;
 
     my ($rows,$cols)=&textarea_sizes(\$data);
-    if (&Apache::lonhtmlcommon::htmlareabrowser() &&
-	!&Apache::lonhtmlcommon::htmlareablocked()) {
+    my $textareaclass;
+ 
+    if (&Apache::lonhtmlcommon::htmlareabrowser() && $usehtmlarea) { 
 	$rows+=7;      # make room for HTMLarea
 	$minheight+=7; # make room for HTMLarea
+        $textareaclass = ' class="LC_richDefaultOff"';
     }
     if ($cols > 80) { $cols = 80; }
     if ($cols < $minwidth ) { $cols = $minwidth; }
     if ($rows < $minheight) { $rows = $minheight; }
     if ($description) { $description=$description."<br />"; }
-    if ($usehtmlarea) {
-	&Apache::lonhtmlcommon::add_htmlareafields('homework_edit_'.
-						   $Apache::lonxml::curdepth);
-    }
+
     # remove typesetting whitespace from between data and the end tag
     # to make the edit look prettier
     $data =~ s/\n?[ \t]*$//;
 
-    return $description."\n".'<textarea style="width:100%" rows="'.$rows.
+    return $description."\n".'<textarea style="width:99%" rows="'.$rows.
 	'" cols="'.$cols.'" name="homework_edit_'.
 	$Apache::lonxml::curdepth.'" id="homework_edit_'.
-	$Apache::lonxml::curdepth.'" '.&element_change_detection().'>'.
+	$Apache::lonxml::curdepth.'" '.&element_change_detection().
+        $textareaclass.'>'.
 	&HTML::Entities::encode($data,'<>&"').'</textarea>'.
 	($usehtmlarea?&Apache::lonhtmlcommon::spelllink('lonhomework',
 			 'homework_edit_'.$Apache::lonxml::curdepth):'')."\n";
@@ -870,13 +952,16 @@ sub checked_arg {
 }
 
 sub text_arg {
-    my ($description,$name,$token,$size) = @_;
+    my ($description,$name,$token,$size, $class) = @_;
     my $result;
     if (!defined $size) { $size=20; }
     my $arg=$token->[2]{$name};
     $result=&mt($description).'&nbsp;<input name="'.&html_element_name($name).
-	'" type="text" value="'.$arg.'" size="'.$size.'" '.
-	&element_change_detection().'/>';
+	'" type="text" value="'.$arg.'" size="'.$size.'" ';
+    if (defined $class) {
+	$result .= 'class="' . $class . '" ';
+    }
+    $result .=	&element_change_detection().'/>';
     return '<span class="LC_nobreak">'.$result.'</span>';
 }