alecpl
2008-07-24 94e38bbc1e497192c0b4e7345b2ceb307473dfff
program/js/editor.js
@@ -15,43 +15,25 @@
// Initialize the message editor
function rcmail_editor_init(skin_path)
function rcmail_editor_init(skin_path, editor_lang)
  {
  tinyMCE.init({ mode : 'specific_textareas',
  tinyMCE.init({ mode : "textareas",
                 editor_selector : "mce_editor",
                 accessibility_focus : false,
                 apply_source_formatting : true,
                 theme : 'advanced',
                 plugins : 'emotions,media,nonbreaking,table,searchreplace,spellchecker,visualchars',
                 theme_advanced_buttons1 : 'bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,emotions,charmap,code,forecolor,backcolor,fontselect,fontsizeselect, separator,undo,redo,image,media',
                 theme_advanced_buttons2 : '',
                 theme_advanced_buttons3 : '',
                 theme_advanced_toolbar_location : 'top',
                 theme_advanced_toolbar_align : 'left',
                 extended_valid_elements : 'font[face|size|color|style],span[id|class|align|style]',
                 content_css : skin_path + '/editor_content.css',
                 editor_css : skin_path + '/editor_ui.css',
                 external_image_list_url : 'program/js/editor_images.js'
                 theme : "advanced",
                 language : editor_lang,
                 plugins : "emotions,media,nonbreaking,table,searchreplace,visualchars,directionality",
                 theme_advanced_buttons1 : "bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,link,unlink,emotions,charmap,code,forecolor,backcolor,fontselect,fontsizeselect, separator,undo,redo,image,media,ltr,rtl",
                 theme_advanced_buttons2 : "",
                 theme_advanced_buttons3 : "",
                 theme_advanced_toolbar_location : "top",
                 theme_advanced_toolbar_align : "left",
                 extended_valid_elements : "font[face|size|color|style],span[id|class|align|style]",
                 content_css : skin_path + "/editor_content.css",
                 external_image_list_url : "program/js/editor_images.js",
       rc_client: rcube_webmail_client
               });
  }
// Set the state of the HTML/Plain toggles based on the _is_html field value
function rcmail_set_editor_toggle_states()
  {
  // set the editor toggle based on the state of the editor
  var htmlFlag = document.getElementsByName('_is_html')[0];
  var toggles = document.getElementsByName('_editorSelect');
  for(var t=0; t<toggles.length; t++)
    {
   if (toggles[t].value == 'html')
     {
     toggles[t].checked = (htmlFlag.value == "1");
     }
   else
     {
     toggles[t].checked = (htmlFlag.value == "0");
     }
   }
  }
// Toggle between the HTML and Plain Text editors
@@ -61,11 +43,11 @@
  var selectedEditor = toggler.value;
  // determine the currently displayed editor
  var htmlFlag = document.getElementsByName('_is_html')[0];
  var currentEditor = htmlFlag.value;
  var isHtml = htmlFlag.value;
  if (selectedEditor == currentEditor)
  if (((selectedEditor == 'plain') && (isHtml == "0")) ||
      ((selectedEditor == 'html') && (isHtml == "1")))
    {
    return;
    }
@@ -79,16 +61,16 @@
    var existingPlainText = composeElement.value;
    var htmlText = "<pre>" + existingPlainText + "</pre>";
    composeElement.value = htmlText;
    tinyMCE.execCommand('mceAddControl', true, '_message');
    tinyMCE.execCommand('mceAddControl', true, 'compose-body');
    htmlFlag.value = "1";
    }
  else
    {
    rcmail.set_busy(true, 'converting');
    var thisMCE = tinyMCE.getInstanceById('_message');
    var existingHtml = tinyMCE.getContent();
    var thisMCE = tinyMCE.get('compose-body');
    var existingHtml = thisMCE.getContent();
    rcmail_html2plain(existingHtml);
    tinyMCE.execCommand('mceRemoveControl', true, '_message');
    tinyMCE.execCommand('mceRemoveControl', true, 'compose-body');
    htmlFlag.value = "0";
    }
  }