--- loncom/xml/lonxml.pm	2010/06/05 19:37:01	1.509
+++ loncom/xml/lonxml.pm	2010/08/14 00:28:18	1.514
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.509 2010/06/05 19:37:01 www Exp $
+# $Id: lonxml.pm,v 1.514 2010/08/14 00:28:18 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -642,8 +642,9 @@ sub setup_globals {
 
 sub init_safespace {
   my ($target,$safeeval,$safehole,$safeinit) = @_;
-  $safeeval->deny_only(':dangerous');
   $safeeval->reval('use Math::Complex;');
+  $safeeval->reval('use LaTeX::Table;');
+  $safeeval->deny_only(':dangerous');
   $safeeval->permit_only(":default");
   $safeeval->permit("entereval");
   $safeeval->permit(":base_math");
@@ -1464,7 +1465,7 @@ sub renderingoptions {
            &Apache::loncommon::select_form(
                $env{'form.languages'},
                'languages',
-               &Apache::lonlocal::texthash(%langchoices)).
+               {&Apache::lonlocal::texthash(%langchoices)}).
            '</span>';
     }
     $output .=
@@ -1473,11 +1474,11 @@ sub renderingoptions {
        &Apache::loncommon::select_form(
            $env{'form.texengine'},
            'texengine',
-           &Apache::lonlocal::texthash
+           {&Apache::lonlocal::texthash
                (''        => '',
                 'tth'     => 'tth (TeX to HTML)',
                 'jsMath'  => 'jsMath',
-                'mimetex' => 'mimetex (Convert to Images)')).
+                'mimetex' => 'mimetex (Convert to Images)')}).
      '</span>';
     return $output;
 }
@@ -1491,47 +1492,27 @@ sub inserteditinfo {
       my $dragmath_button;
       my ($add_to_onload, $add_to_onresize);
       $initialize=&Apache::lonhtmlcommon::spellheader();
-      if ($filetype eq 'html' 
-	  && (!&Apache::lonhtmlcommon::htmlareablocked() &&
-	      &Apache::lonhtmlcommon::htmlareabrowser())) {
-	  $textarea_id .= '___Frame';
+      if (($filetype eq 'html') && (&Apache::lonhtmlcommon::htmlareabrowser())) {
 	  my $lang = &Apache::lonhtmlcommon::htmlarea_lang();
-	  $initialize.=(<<FULLPAGE);
-<script type="text/javascript">
-lonca
-    function initDocument() {
-        var oFCKeditor = new FCKeditor('filecont');
-	oFCKeditor.Config['CustomConfigurationsPath'] = '/fckeditor/loncapaconfig.js'  ;
-	oFCKeditor.Config['FullPage'] = true
-	oFCKeditor.Config['AutoDetectLanguage'] = false;
-        oFCKeditor.Config['DefaultLanguage'] = "$lang";
-	oFCKeditor.ReplaceTextarea();
-    }
-    function check_if_dirty(editor) {
-	if (editor.IsDirty()) {
-	    unClean();
-	}
-    }
-    function FCKeditor_OnComplete(editor) {
-	editor.Events.AttachEvent("OnSelectionChange",check_if_dirty);
-	resize_textarea('$textarea_id','LC_aftertextarea');
-    }
-</script>
-FULLPAGE
-      } else {
-	  $initialize.=(<<FULLPAGE);
+          my %textarea_args = (
+                                fullpage => 'true',
+                                dragmath => 'math',
+                              );
+          $initialize .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); 
+      }
+      $initialize .= (<<FULLPAGE);
 <script type="text/javascript">
+// <![CDATA[
     function initDocument() {
 	resize_textarea('$textarea_id','LC_aftertextarea');
     }
+// ]]>
 </script>
 FULLPAGE
-          if ($filetype eq 'html' || $filetype eq 'tex') {
-              $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');
-              $dragmath_button = &Apache::lonhtmlcommon::dragmath_button('filecont',1);
-          }
+      if ($filetype eq 'html') {
+          $dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>';
+          $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');
       }
-
       $add_to_onload = 'initDocument();';
       $add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');";
 
@@ -1540,13 +1521,13 @@ FULLPAGE
       }
 
       my $titledisplay=&display_title();
-      my $wysiwyglink;
+      my $textareaclass;
       my %lt=&Apache::lonlocal::texthash('st' => 'Save and Edit',
 					 'vi' => 'Save and View',
 					 'dv' => 'Discard Edits and View',
 					 'un' => 'undo',
 					 'ed' => 'Edit');
-      my $spelllink .=&Apache::lonhtmlcommon::spelllink('xmledit','filecont');
+      my $spelllink = &Apache::lonhtmlcommon::spelllink('xmledit','filecont');
       my $textarea_events = &Apache::edit::element_change_detection();
       my $form_events     = &Apache::edit::form_change_detection();
       my $htmlerror;
@@ -1556,11 +1537,7 @@ FULLPAGE
               $htmlerror='<span class="LC_error">'.$htmlerror.'</span>';
           }
           if (&Apache::lonhtmlcommon::htmlareabrowser()) {
-              if (&Apache::lonhtmlcommon::htmlareablocked()) {
-                  $wysiwyglink = &Apache::lonhtmlcommon::enablelink($textarea_id);
-              } else {
-                  $wysiwyglink = &Apache::lonhtmlcommon::disablelink($textarea_id);
-              }
+              $textareaclass = 'class="LC_richDetectHtml"';
           }
       }
       my $editfooter=(<<ENDFOOTER);
@@ -1577,16 +1554,15 @@ $initialize
     <div class="LC_edit_problem_discards">
       <input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" />
       <input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" />
-      $dragmath_button $spelllink $htmlerror
+      $htmlerror $dragmath_button
     </div>
     <div class="LC_edit_problem_saves">
       <input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" />
       <input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" />
     </div>
   </div>
-  <textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont">$filecontents</textarea>
+  <textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont" $textareaclass>$filecontents</textarea><br />$spelllink
   <div id="LC_aftertextarea">
-    $wysiwyglink
     <br />
     $titledisplay
   </div>