--- loncom/xml/londefdef.pm	2004/12/27 14:06:32	1.248
+++ loncom/xml/londefdef.pm	2005/01/19 18:16:35	1.250
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.248 2004/12/27 14:06:32 foxr Exp $
+# $Id: londefdef.pm,v 1.250 2005/01/19 18:16:35 albertel Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -1463,7 +1463,9 @@ sub start_a {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $currentstring = '';
     if ($target eq 'web') {
-	$currentstring .= $token->[4];
+	my $href=&Apache::lonxml::get_param('href',$parstack,$safeeval,
+					    undef,1);
+	$currentstring=&Apache::lonenc::encrypt_ref($token,{'href'=>$href});
     } elsif ($target eq 'tex') {
 	my $a=&Apache::lonxml::get_param('href',$parstack,$safeeval,undef,1);
 	my $b=&Apache::lonxml::get_param('name',$parstack,$safeeval,undef,1);
@@ -2420,6 +2422,16 @@ sub end_th {
 }
      
 #-- <img> tag (end tag forbidden)
+#
+#  Render the <IMG> tag.
+#     <IMG> has the following attributes (in addition to the 
+#     standard HTML ones:
+#      TeXwrap   - Governs how the tex target will try to wrap text around
+#                  horizontally aligned images.
+#      TeXwidth  - The width of the image when rendered for print (mm).
+#      TeXheight - The height of the image when rendered for print (mm)
+#         (Note there seems to also be support for this as a % of page size)
+#      
 sub start_img {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,
@@ -2431,9 +2443,12 @@ sub start_img {
     $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
     my $currentstring = '';
     my $scaling = .3;
+
+   # Render unto browsers that which are the browser's...
+
     if ($target eq 'web') {
 	if ($ENV{'browser.imagesuppress'} ne 'on') {
-	    $currentstring.= $token->[4];
+	    $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src});
 	} else {
 	    my $alttag= &Apache::lonxml::get_param
 		('alt',$parstack,$safeeval,undef,1);
@@ -2443,6 +2458,9 @@ sub start_img {
 	    }
 	    $currentstring.='[IMAGE: '.$alttag.']';
 	}
+
+	# and render unto TeX that which is LaTeX
+
     } elsif ($target eq 'tex') {
 	#
 	#  The alignment will require some superstructure to be put around
@@ -2553,6 +2571,11 @@ sub start_img {
 		#<allow> tag will care about replication 
 	    }
 	}
+
+	# And here's where the semi-quote breaks down: allow the user
+        # to edit the beast as well by rendering the problem for edit:
+
+
     } elsif ($target eq 'edit') {
 	$currentstring .=&Apache::edit::tag_start($target,$token);
 	$currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).
@@ -2565,11 +2588,15 @@ sub start_img {
 	$currentstring .=&Apache::edit::text_arg('TeXheight (mm):','TeXheight',$token,5);
 	$currentstring .=&Apache::edit::select_arg('Alignment:','align',
 						   ['','bottom','middle','top','left','right'],$token,5);
+	$currentstring .=&Apache::edit::select_arg('TeXwrap:', 'TeXwrap',
+						   ['', 'parbox', 'parpic'], $token, 2);
 	$currentstring .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
-	my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval);
-	my $alt=&Apache::lonxml::get_param('alt',$parstack,$safeeval);
-	my $width=&Apache::lonxml::get_param('width',$parstack,$safeeval);
-	my $height=&Apache::lonxml::get_param('height',$parstack,$safeeval);
+	my $src=    &Apache::lonxml::get_param('src',$parstack,$safeeval);
+	my $alt=    &Apache::lonxml::get_param('alt',$parstack,$safeeval);
+	my $width=  &Apache::lonxml::get_param('width',$parstack,$safeeval);
+	my $height= &Apache::lonxml::get_param('height',$parstack,$safeeval);
+
+
 	$currentstring .= '<img src="'.$src.'" alt="'.$alt.'" ';
 	if ($width) { $currentstring.=' width="'.$width.'" '; }
 	if ($height) { $currentstring.=' height="'.$height.'" '; }
@@ -2579,7 +2606,7 @@ sub start_img {
 	    ($token->[2]{'src'},$token->[2]{'width'},$token->[2]{'height'});
 	my $ctag=&Apache::edit::get_new_args($token,$parstack,
 					     $safeeval,'src','alt','align',
-					     'TeXwidth','TeXheight',
+					     'TeXwidth','TeXheight', 'TeXwrap',
 					     'width','height');
 	my ($nsrc,$nwidth,$nheight)=
 	    ($token->[2]{'src'},$token->[2]{'width'},$token->[2]{'height'});
@@ -2643,7 +2670,10 @@ sub start_applet {
     my $currentstring = '';
     if ($target eq 'web') {
 	if ($ENV{'browser.appletsuppress'} ne 'on') {
-	    $currentstring = $token->[4];
+	    $currentstring = &Apache::lonenc::encrypt_ref($token,
+							  {'code'=>$code,
+							   'archive'=>$archive}
+							  );
 	} else {
 	    my $alttag= &Apache::lonxml::get_param('alt',$parstack,
 						   $safeeval,undef,1);
@@ -2686,7 +2716,7 @@ sub start_embed {
     my $currentstring = '';
     if ($target eq 'web') {
 	if ($ENV{'browser.embedsuppress'} ne 'on') {
-	    $currentstring = $token->[4];
+	    $currentstring=&Apache::lonenc::encrypt_ref($token,{'src'=>$src});
 	} else {
 	    my $alttag=&Apache::lonxml::get_param
 		('alt',$parstack,$safeeval,undef,1);
@@ -2722,7 +2752,13 @@ sub start_param {
 	&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
     my $currentstring = '';
     if ($target eq 'web') {
-	$currentstring = $token->[4];     
+	my %toconvert;
+	my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
+	if ($src) { $toconvert{'src'}= $src; }
+	my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval,
+					    undef,1);
+	if ($name=~/^cabbase$/i) { $toconvert{'name'}= $name; }	
+	$currentstring = &Apache::lonenc::encrypt_ref($token,\%toconvert);
     } elsif ($target eq 'tex') {
     } 
     return $currentstring;