// Tiny MCE Paste Plugin
// Updated by speednet 25 May 2005 - IE converts and pastes without opening popup window
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('paste', 'en,sv,cs');
function TinyMCE_paste_getControlHTML(control_name) {
switch (control_name) {
case "pastetext":
return '';
case "pasteword":
return '
';
case "selectall":
return '
';
}
return '';
}
function TinyMCE_paste_execCommand(editor_id, element, command, user_interface, value) {
switch (command) {
case "mcePasteText":
if (tinyMCE.isMSIE && !tinyMCE.getParam('paste_use_dialog', false))
TinyMCE_paste__insertText(clipboardData.getData("Text"), true);
else {
var template = new Array();
template['file'] = '../../plugins/paste/pastetext.htm'; // Relative to theme
template['width'] = 450;
template['height'] = 400;
var plain_text = "";
tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", mceDo : 'insert'});
}
return true;
case "mcePasteWord":
if (tinyMCE.isMSIE && !tinyMCE.getParam('paste_use_dialog', false)) {
var html = TinyMCE_paste__clipboardHTML();
if (html && html.length > 0)
TinyMCE_paste__insertWordContent(html);
} else {
var template = new Array();
template['file'] = '../../plugins/paste/pasteword.htm'; // Relative to theme
template['width'] = 450;
template['height'] = 400;
var plain_text = "";
tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", mceDo : 'insert'});
}
return true;
case "mceSelectAll":
tinyMCE.execInstanceCommand(editor_id, 'selectall');
return true;
}
// Pass to next handler in chain
return false;
}
function TinyMCE_paste__insertText(content, bLinebreaks) {
if (content && content.length > 0) {
if (bLinebreaks) {
// Special paragraph treatment
if (tinyMCE.getParam("plaintext_create_paragraphs", true)) {
content = tinyMCE.regexpReplace(content, "\r\n\r\n", "
", "gi"); content = tinyMCE.regexpReplace(content, "\r\r", "
", "gi"); content = tinyMCE.regexpReplace(content, "\n\n", "
", "gi"); // Has paragraphs if ((pos = content.indexOf('
')) != -1) { tinyMCE.execCommand("Delete"); var node = tinyMCE.selectedInstance.getFocusElement(); // Get list of elements to break var breakElms = new Array(); do { if (node.nodeType == 1) { // Don't break tables and break at body if (node.nodeName == "TD" || node.nodeName == "BODY") break; breakElms[breakElms.length] = node; } } while(node = node.parentNode); var before = "", after = "
"; before += content.substring(0, pos); for (var i=0; i";
content = before + content.substring(pos+7) + after;
}
}
content = tinyMCE.regexpReplace(content, "\r\n", "
", "gi");
content = tinyMCE.regexpReplace(content, "\r", "
", "gi");
content = tinyMCE.regexpReplace(content, "\n", "
", "gi");
}
tinyMCE.execCommand("mceInsertRawHTML", false, content);
}
}
function TinyMCE_paste__insertWordContent(content) {
if (content && content.length > 0) {
// Cleanup Word content
content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), ""); // Word comments
content = content.replace(/<\/?span[^>]*>/gi, "");
content = content.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3");
content = content.replace(/<\/?font[^>]*>/gi, "");
content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
content = content.replace(/<\\?\?xml[^>]*>/gi, "");
content = content.replace(/<\/?\w+:[^>]*>/gi, "");
content = content.replace(/\/? */gi, "");
content = content.replace('
', '' ,'g'); if (!tinyMCE.settings['force_p_newlines']) { content = content.replace('', '' ,'gi'); content = content.replace('', '