--- loncom/interface/lonhtmlcommon.pm	2004/06/04 16:05:47	1.74
+++ loncom/interface/lonhtmlcommon.pm	2004/06/17 18:22:13	1.78
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common html routines
 #
-# $Id: lonhtmlcommon.pm,v 1.74 2004/06/04 16:05:47 www Exp $
+# $Id: lonhtmlcommon.pm,v 1.78 2004/06/17 18:22:13 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -841,11 +841,13 @@ sub r_print {
 # ------------------------------------------------------- Puts directory header
 
 sub crumbs {
-    my ($uri,$target,$prefix,$form,$size)=@_;
+    my ($uri,$target,$prefix,$form,$size,$noformat)=@_;
     if (! defined($size)) {
         $size = '+2';
     }
-    my $output='<br /><tt><b><font size="'.$size.'">'.$prefix.'/';
+    my $output='';
+    unless ($noformat) { $output.='<br /><tt><b>'; }
+    $output.='<font size="'.$size.'">'.$prefix.'/';
     if ($ENV{'user.adv'}) {
 	my $path=$prefix.'/';
 	foreach (split('/',$uri)) {
@@ -862,13 +864,14 @@ sub crumbs {
 	$output.=$uri;
     }
     unless ($uri=~/\/$/) { $output=~s/\/$//; }
-    return $output.'</font></b></tt><br />';
+    return $output.'</font>'.($noformat?'':'</b></tt><br />');
 }
 
 # ------------------------------------------------- Output headers for HTMLArea
 
 sub htmlareaheaders {
     if (&htmlareablocked()) { return ''; }
+    unless (&htmlareabrowser()) { return ''; }
     my $lang='en';
     if (&mt('htmlarea_lang') ne 'htmlarea_lang') {
 	$lang=&mt('htmlarea_lang');
@@ -886,6 +889,7 @@ ENDHEADERS
 
 sub htmlareaaddbuttons {
     if (&htmlareablocked()) { return ''; }
+    unless (&htmlareabrowser()) { return ''; }
     return (<<ENDADDBUTTON);
     var config=new HTMLArea.Config();
     config.registerButton('ed_math','LaTeX Inline',
@@ -897,43 +901,52 @@ sub htmlareaaddbuttons {
     config.registerButton('ed_math_eqn','LaTeX Equation',
 			  '/htmlarea/images/ed_math_eqn.gif',false,
 			    function(editor,id) {
-			      editor.surroundHTML('<br /><m>\\\\[','\\\\]</m><br />');
+			      editor.surroundHTML(
+				     '<center><m>\\\\[','\\\\]</m></center>');
 			    }
 			  );
     config.toolbar.push(['ed_math','ed_math_eqn']);
 ENDADDBUTTON
 }
-# ---------------------------------------------------------- Script to activate
 
-sub htmlareaactive {
-    if (&htmlareablocked()) { return ''; }
-    my $addbuttons=&htmlareaaddbuttons();
-    return (<<ENDSCRIPT);
-<script type="text/javascript" defer="1">
-    $addbuttons
-    HTMLArea.replaceAll(config);
-</script>
-ENDSCRIPT
+# ----------------------------------------------------------------- Preferences
+
+sub disablelink {
+    my @fields=@_;
+    if (defined($#fields)) {
+	unless ($#fields>=0) { return ''; }
+    }
+    return '<a href="/adm/preferences?action=set_wysiwyg&wysiwyg=off&returnurl='.&Apache::lonnet::escape($ENV{'REQUEST_URI'}).'">'.&mt('Disable WYSIWYG Editor').'</a>';
+}
+
+sub enablelink {
+    my @fields=@_;
+    if (defined($#fields)) {
+	unless ($#fields>=0) { return ''; }
+    }
+    return '<a href="/adm/preferences?action=set_wysiwyg&wysiwyg=on&returnurl='.&Apache::lonnet::escape($ENV{'REQUEST_URI'}).'">'.&mt('Enable WYSIWYG Editor').'</a>';
 }
 
 # ----------------------------------------- Script to activate only some fields
 
 sub htmlareaselectactive {
     my @fields=@_;
-    if (&htmlareablocked()) { return ''; }
+    unless (&htmlareabrowser()) { return ''; }
+    if (&htmlareablocked()) { return '<br />'.&enablelink(@fields); }
     my $output='<script type="text/javascript" defer="1">'.
 	&htmlareaaddbuttons();
     foreach(@fields) {
 	$output.="\nHTMLArea.replace('$_',config);";
     }
-    $output.="\nwindow.status='Activated Editfields';\n</script>";
+    $output.="\nwindow.status='Activated Editfields';\n</script><br />".
+	&disablelink(@fields);
     return $output;
 }
 
 # --------------------------------------------------------------------- Blocked
 
 sub htmlareablocked {
-    unless (&htmlareabrowser()) { return 1; }
+    unless ($ENV{'environment.wysiwygeditor'} eq 'on') { return 1; }
     return 0;
 }