MLP.VisualEditor = {
mode : 'advanced',
prepared : false,
main_language : 'en',
language : '',
init : function(mode, visual_editor_off, main_language, language) {
MLP.VisualEditor.mode = mode;
MLP.VisualEditor.main_language = main_language;
MLP.VisualEditor.language = language;
if ( !visual_editor_off ) {
MLP.VisualEditor.prepare_editor(MLP.VisualEditor.init_editor);
}
element_addEvent($('editor_simple'), 'click', MLP.VisualEditor.hide_visual_editor);
element_addEvent($('editor_visual'), 'click', MLP.VisualEditor.show_visual_editor);
element_addEvent($('preview_entry'), 'click', MLP.VisualEditor.hide_preview);
},
prepare_editor : function(afterPrepare) {
if ( !MLP.VisualEditor.prepared ) {
var languages = (MLP.VisualEditor.language != MLP.VisualEditor.main_language) ? MLP.VisualEditor.language + ", " + MLP.VisualEditor.main_language : MLP.VisualEditor.language;
MLP.ControlPanel.wait(MLP.Lang.get('editor_is_loading'));
if ( 'simple' == MLP.VisualEditor.mode ) {
afterPrepare = afterPrepare || MLP.VisualEditor.init_simple_editor;
tinyMCE_GZ.init(
{
themes : "advanced",
plugins : "safari,advimage,emotions,advlink,tabfocus,mlp",
languages : languages,
page_name : 'tiny_mce_gzip_3',
disk_cache : true
//suffix : '_src' // if uncommented, source codes will be loaded
},
afterPrepare
);
MLP.ControlPanel.stopWait();
} else {
afterPrepare = afterPrepare || MLP.VisualEditor.init_advanced_editor;
tinyMCE_GZ.init(
{
themes : "advanced",
plugins : "safari,table,advhr,advimage,emotions,advlink,print,fullscreen,tabfocus,mlp",
languages : languages,
page_name : 'tiny_mce_gzip_3',
disk_cache : true
//suffix : '_src' // if uncommented, source codes will be loaded
},
afterPrepare
);
MLP.ControlPanel.stopWait();
}
}
},
init_simple_editor : function() {
tinyMCE.init({
mode : "textareas",
theme : "advanced",
language : MLP.VisualEditor.language,
plugins : "safari,advimage,advlink,tabfocus,mlp,paste,emotions",
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,link,unlink,|,bullist,numlist,|,outdent,indent,blockquote,emotions",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_buttons4 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : false,
theme_advanced_resizing : false,
theme_advanced_resize_horizontal : false,
paste_auto_cleanup_on_paste : true,
paste_convert_headers_to_strong : false,
paste_strip_class_attributes : "all",
paste_remove_spans : false,
paste_remove_styles : false,
relative_urls : false, // do not use relative URLs
remove_script_host : false, // do not strip domain part of URL
tab_focus : ':prev,:next',
editor_selector : "mceEditor", // className of textarea that could be visual
force_br_newlines : true // On [Enter] insert
instead of
(this option must be last)
});
$('message_text_decor').className = '';
$('message_use_wiki').style.display = 'none';
MLP.VisualEditor.prepared = true;
MLP.ControlPanel.stopWait();
},
init_advanced_editor : function() {
tinyMCE.init({
mode : "textareas",
theme : "advanced",
language : MLP.VisualEditor.language,
plugins : "safari,advimage,advlink,tabfocus,mlp,paste,emotions",
theme_advanced_buttons1 : "pasteword,removeformat,|,bold,italic,underline,strikethrough,|,undo,redo,|,bullist,numlist,|,outdent,indent,blockquote,|,justifyleft,justifycenter,justifyright,justifyfull,|",
theme_advanced_buttons2 : "link,unlink,|,emotions,mlpcut,mlpimage,mlpvideo,mlpaudio,mlpobject",
theme_advanced_buttons3 : "",
theme_advanced_buttons4 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
theme_advanced_resize_horizontal : false,
theme_advanced_styles : "Code=codeStyle;Quote=quoteStyle",
remove_linebreaks : false,
paste_auto_cleanup_on_paste : true,
paste_convert_headers_to_strong : false,
paste_strip_class_attributes : "all",
paste_remove_spans : false,
paste_remove_styles : false,
relative_urls : false, // do not use relative URLs
remove_script_host : false, // do not strip domain part of URL
tab_focus : ':prev,:next',
editor_selector : "mceEditor", // className of textarea that could be visual
force_br_newlines : true // On [Enter] insert
instead of (this option must be last)
});
$('message_text_decor').className = '';
$('message_use_wiki').style.display = 'none';
MLP.VisualEditor.prepared = true;
MLP.ControlPanel.stopWait();
},
show_visual_editor : function() {
var myAjax = new Ajax.Request('/ajax/visual_editor_on', { method: "post", postBody: "visual_editor_off=0" } );
MLP.VisualEditor.prepare_editor();
if ( 'undefined' != typeof(tinyMCE) && !tinyMCE.get('message_text') ) {
tinyMCE.execCommand('mceAddControl', false, 'message_text');
}
$('editor_simple').className = '';
$('editor_visual').className = 'selected_editor';
$('message_text_decor').className = '';
$('message_use_wiki').style.display = 'none';
},
hide_visual_editor : function() {
var myAjax = new Ajax.Request('/ajax/visual_editor_off/', { method: "post", postBody: "visual_editor_off=1" } );
if ( 'undefined' != typeof(tinyMCE) && tinyMCE.get('message_text') ) {
tinyMCE.execCommand('mceRemoveControl', false, 'message_text');
}
$('editor_simple').className = 'selected_editor';
$('editor_visual').className = '';
$('message_text_decor').className = 'decorated';
$('message_use_wiki').style.display = '';
},
show_preview : function(text_id, subj_id, service) {
MLP.ControlPanel.wait(MLP.Lang.get('preview_is_loading'));
var text = '', subject = '';
if ( $(subj_id) ) {
subject = $(subj_id).value;
}
service = service || "";
if ( 'undefined' != typeof(tinyMCE) && tinyMCE.get('message_text') ) {
text = tinyMCE.get('message_text').getContent();
} else {
text = $(text_id).value;
}
var data = "subject="+encodeURIComponent(subject) + "&text=" + encodeURIComponent(text) + "&service=" + encodeURIComponent(service);
var myAjax = new Ajax.Request("/ajax/preview/", { method: "post", postBody: data, onComplete: MLP.VisualEditor.preview_complete } );
},
preview_complete : function(response) {
MLP.ControlPanel.stopWait();
$('editor_simple').style.display = 'none';
$('editor_visual').style.display = 'none';
$('preview_entry').style.display = '';
$('textareadecor').style.display = 'none';
$('preview_text').innerHTML = response.responseText;
$('preview_text').style.display = '';
$('message_text_decor').className = 'decorated';
$('preview_title').style.display = 'block';
},
hide_preview : function() {
$('editor_simple').style.display = '';
$('editor_visual').style.display = '';
$('preview_entry').style.display = 'none';
$('textareadecor').style.display = '';
$('preview_text').style.display = 'none';
if ( 'undefined' != typeof(tinyMCE) && !tinyMCE.get('message_text') ) {
$('message_text_decor').className = 'decorated';
} else {
$('message_text_decor').className = '';
}
$('preview_title').style.display = 'none';
}
}
function send_preview(text_id, subj_id, service) {
MLP.VisualEditor.show_preview(text_id, subj_id, service);
}
function insert_file_tinyMCE(t,n) {
tinyMCE.execCommand("mceFocus", null, MLP.FileSelector.editor_id);
switch(t) {
case 31:
tinyMCE.execCommand("mceInsertContent", false, "[[Image:" + n + "]]")
break;
case 32:
tinyMCE.execCommand("mceInsertContent", false, "[[Video:" + n + "]]")
break;
case 33:
tinyMCE.execCommand("mceInsertContent", false, "[[MP3Button:" + n + "]] " + n)
break;
}
fs_hide();
}