--- loncom/homework/randomlabel.pm	2002/12/03 10:32:57	1.41
+++ loncom/homework/randomlabel.pm	2003/05/06 11:54:08	1.44
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # random labelling tool
 #
-# $Id: randomlabel.pm,v 1.41 2002/12/03 10:32:57 sakharuk Exp $
+# $Id: randomlabel.pm,v 1.44 2003/05/06 11:54:08 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -86,6 +86,9 @@ sub start_randomlabel {
   my $bgimg= &Apache::lonxml::get_param('bgimg',$parstack,$safeeval);
   if ( $bgimg !~ /^http:/ ) {
     $bgimg=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$bgimg);
+    if (&Apache::lonnet::repcopy($bgimg) ne OK) {
+	$bgimg='/home/httpd/html/adm/lonKaputt/lonlogo_broken.gif';
+    }
   }
   my $w= &check_int(&Apache::lonxml::get_param('width',$parstack,$safeeval));
   my $h= &check_int(&Apache::lonxml::get_param('height',$parstack,$safeeval));
@@ -97,7 +100,7 @@ sub start_randomlabel {
       $result.="BGIMG=".&Apache::lonnet::escape($bgimg);
   } elsif ($target eq 'tex') {
     my $newbgimg = $bgimg;
-    $bgimg=~s/(.gif|.jpg|.png)$/.eps/;
+    $bgimg=~s/\.(gif|jpg|png|jpeg)$/\.eps/i;
     $bgimg= &Apache::lonnet::filelocation($bgimg);
     if (not $ENV{'request.role'}=~/^au\./) {
 	$bgimg=~s/http:\/[^\/]*/\/home\/httpd\/html/;
@@ -136,6 +139,9 @@ sub start_randomlabel {
     }
   } elsif ($target eq 'edit') {
     $result.=&Apache::edit::tag_start($target,$token);
+    $Apache::edit::bgimgsrc=
+	&Apache::lonxml::get_param('bgimg',$parstack,$safeeval);
+    $Apache::edit::bgimgsrccurdepth=$Apache::lonxml::curdepth;
     $result.=&Apache::edit::text_arg('Image:','bgimg',$token,75).' ';
     $result.=&Apache::edit::browse('bgimg').' ';
     $result.=&Apache::edit::search('bgimg').'<br />'.
@@ -342,6 +348,7 @@ sub start_location {
     $result.=&Apache::edit::tag_start($target,$token);
     $result.=&Apache::edit::text_arg('X:','x',$token,4).
       &Apache::edit::text_arg('Y:','y',$token,4).
+      &Apache::edit::entercoords('x','y','attribute','width','height').'&nbsp;&nbsp;&nbsp;'.
 	&Apache::edit::text_arg('Value:','value',$token).
 	  &Apache::edit::end_row();
     $result.=&Apache::edit::end_table;
@@ -370,7 +377,7 @@ sub start_label {
   my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval,-2);
   if ($target eq 'web' || $target eq 'tex' ||
       $target eq 'grade' || $target eq 'answer' || $target eq 'analyze') {
-    my $ltext=&Apache::lonxml::get_all_text("/label",$$parser[-1]);
+    my $ltext=&Apache::lonxml::get_all_text("/label",$parser);
     $ltext=&Apache::run::evaluate($ltext,$safeeval,$$parstack[-1]);
     if ($type eq 'image') {
       &Apache::lonxml::debug("Turning $ltext and $Apache::lonxml::pwd[-1]");
@@ -384,7 +391,7 @@ sub start_label {
     push(@Apache::randomlabel::label_arr,$ltext);
   } elsif ($target eq 'edit') {
     $result.=&Apache::edit::tag_start($target,$token,"$type Label");
-    my $text=&Apache::lonxml::get_all_text("/label",$$parser[-1]);
+    my $text=&Apache::lonxml::get_all_text("/label",$parser);
     if ($type eq 'image') {
       $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
       $result.=&Apache::edit::text_arg('Description:','description',$token);