includes/clientside/static/tinymce-init.js
author Dan
Tue, 24 Jun 2008 23:37:23 -0400
changeset 582 a38876c0793c
child 588 20484deb89cd
permissions -rw-r--r--
Majorly reworked Javascript runtime stuff to use on-demand loading. - Runtime reduced to only AJAX library + very common functions, ~50K total - Almost all specific functionality loaded on demand using synchronous XHR - Crypto functions consolidated into crypto.js - Much testing still to be done - ACL editor known not working under firefox - Some other components (autofill, theme/rank managers) not ported yet

// init TinyMCE
var head = document.getElementsByTagName('head')[0];

if ( document.getElementById('mdgCss') )
{
  var css_url = document.getElementById('mdgCss').href;
}
else
{
  var css_url = scriptPath + '/includes/clientside/css/enano_shared.css';
}

var do_popups = ( is_Safari ) ? '' : ',inlinepopups';
var _skin = ( typeof(tinymce_skin) == 'string' ) ? tinymce_skin : 'default';
var tinymce_initted = false;

var enano_tinymce_options = {
  mode : "none",
  plugins : 'table,save,safari,pagebreak,style,layer,advhr,insertdatetime,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras' + do_popups,
  theme : 'advanced',
  skin : _skin,
  theme_advanced_resize_horizontal : false,
  theme_advanced_resizing : true,
  theme_advanced_toolbar_location : "top",
  theme_advanced_toolbar_align : "left",
  theme_advanced_buttons1 : "save,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,forecolor,backcolor,|,formatselect,|,fontselect,fontsizeselect",
  theme_advanced_buttons3_add_before : "tablecontrols,separator",
  theme_advanced_buttons3_add_after : "|,fullscreen",
  theme_advanced_statusbar_location : 'bottom',
  noneditable_noneditable_class : 'mce_readonly',
  content_css : css_url
};

var enano_tinymce_gz_options = {
	plugins : 'table,save,safari,pagebreak,style,layer,advhr,insertdatetime,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras' + do_popups,
	themes : 'advanced',
	languages : 'en',
	disk_cache : true,
	debug : false
};

if ( !KILL_SWITCH && !DISABLE_MCE )
{
  // load MCE with XHR
  var ajax = ajaxMakeXHR();
  var uri = scriptPath + '/includes/clientside/tinymce/tiny_mce_gzip.js';
  ajax.open('GET', uri, false);
  ajax.send(null);
  if ( ajax.readyState == 4 && ajax.status == 200 )
  {
    eval_global(ajax.responseText);
    tinyMCE_GZ.init(enano_tinymce_gz_options);
  }
  else
  {
    console.error('TinyMCE load failed');
  }
}

// Check tinyMCE to make sure its init is finished
window.tinymce_preinit_check = function()
{
  if ( typeof(tinyMCE.init) != 'function' )
    return false;
  if ( typeof(tinymce.DOM) != 'object' )
    return false;
  if ( typeof(tinymce.DOM.get) != 'function' )
    return false;
  if ( typeof(enano_tinymce_gz_options) != 'object' )
    return false;
  return true;
}

var initTinyMCE = function(e)
{
  if ( typeof(tinyMCE) == 'object' )
  {
    if ( !KILL_SWITCH && !DISABLE_MCE )
    {
      if ( !tinymce_preinit_check() )
      {
        setTimeout('initTinyMCE(false);', 200);
        return false;
      }
      tinyMCE.init(enano_tinymce_options);
      tinymce_initted = true;
    }
  }
};