--- loncom/homework/functionplotresponse.pm	2011/12/09 22:04:51	1.89
+++ loncom/homework/functionplotresponse.pm	2012/02/28 15:46:55	1.92
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # Functionplot responses
 #
-# $Id: functionplotresponse.pm,v 1.89 2011/12/09 22:04:51 www Exp $
+# $Id: functionplotresponse.pm,v 1.92 2012/02/28 15:46:55 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -410,7 +410,7 @@ sub plotobject_script {
 #
 
 sub plotvector_script {
-   my ($id,$label,$xs,$ys,$xe,$ye,$xmin,$xmax)=@_;
+   my ($id,$label,$xs,$ys,$xe,$ye,$xmin,$xmax,$fixed)=@_;
    unless ($label) {
       $Apache::functionplotresponse::counter++;
       $label='V'.$Apache::functionplotresponse::counter;
@@ -421,8 +421,8 @@ sub plotvector_script {
    my $pointx=2.*($xmax-$xmin)+$xmax;
    my $anglelabel=$label.'Angle';
    return 
-       &new_point_coordinate($id,$startlabel,$xs,$ys,0).
-       &new_point_coordinate($id,$endlabel,$xe,$ye,0).
+       &new_point_coordinate($id,$startlabel,$xs,$ys,$fixed).
+       &new_point_coordinate($id,$endlabel,$xe,$ye,$fixed).
        (<<ENDVECTOR);
 document.ggbApplet_$id.evalCommand("$label=Vector[$startlabel,$endlabel]");
 document.ggbApplet_$id.setLabelVisible("$label",true);
@@ -556,7 +556,9 @@ sub start_plotvector {
       unless (defined($taily)) { $taily=$ymin; }
       unless (defined($tipx)) { $tipx=$xmin; }
       unless (defined($tipy)) { $tipy=$ymin; }
-      $result.=&plotvector_script($internalid,$label,$tailx,$taily,$tipx,$tipy,$xmin,$xmax);
+      my $fixed=0;
+      if ((&Apache::response::show_answer()) || (&Apache::response::check_status()>=2)) { $fixed=1; }
+      $result.=&plotvector_script($internalid,$label,$tailx,$taily,$tipx,$tipy,$xmin,$xmax,$fixed);
    } elsif ($target eq 'edit') {
         $result=&Apache::edit::tag_start($target,$token,'Plot Vector').
              &Apache::edit::text_arg('Label on Plot:','label',
@@ -1289,31 +1291,16 @@ sub start_functionplotresponse {
             ($env{'form.answer_output_mode'} ne 'tex') &&
             ($Apache::lonhomework::viewgrades == 'F')) {
       my (undef,undef,$udom,$uname)=&Apache::lonnet::whichuser();
-      my $windowopen=&Apache::lonhtmlcommon::javascript_docopen();
-      my $start_page = &Apache::loncommon::start_page('Rules Log', undef,
-                                               {'only_body' => 1,
-                                                'bgcolor'   => '#FFFFFF',
-                                                'js_ready'  => 1,});
-      my $end_page = &Apache::loncommon::end_page({'js_ready' => 1,});
       $uname =~s/\W//g;
       $udom  =~s/\W//g;
       my $function_name =
                 join('_','LONCAPA_scriptvars',$uname,$udom,
                      $env{'form.counter'},$Apache::lonxml::curdepth);
-      my $rulelogcontent= $start_page.
-              &Apache::loncommon::start_scrollbox('700px','680px','480px').
-             '<pre>'.
-              $Apache::functionplotresponse::ruleslog.
-              '</pre>'.
-              &Apache::loncommon::end_scrollbox().
-              $end_page;
-      $rulelogcontent=~s/\'/\\'/gs;
       &Apache::lonxml::add_script_result(
-          &Apache::loncommon::modal_adhoc_script($function_name,700,500,$rulelogcontent).
-              "<a href=\"javascript:$function_name();void(0);\">".&mt('Rules Log')."</a><br />"
-                                        );
-        }
-
+          &Apache::loncommon::modal_adhoc_window($function_name,700,500,
+             '<pre>'.$Apache::functionplotresponse::ruleslog.'</pre>',
+              &mt('Rules Log'))."<br />");
+  }
   return $result;
 }
 
@@ -1684,7 +1671,7 @@ sub functionplotrulecheck {
 #
 # Evaluate the value
 #
-   if ($value=~/\D/) {
+   if (($value=~/\D/) && ($value ne 'undef')) {
       $Apache::functionplotresponse::fpr_xmin=$xmin;
       $Apache::functionplotresponse::fpr_xmax=$xmax;
       $value=&Apache::run::run($value,$safeeval);