Your IP : 216.73.216.85


Current Path : /home/smartconb/www/armencom33/media/com_jce/editor/js/
Upload File :
Current File : /home/smartconb/www/armencom33/media/com_jce/editor/js/editor.min.js

/* jce - 2.9.82 | 2024-11-20 | https://www.joomlacontenteditor.net | Source: https://github.com/widgetfactory/jce | Copyright (C) 2006 - 2024 Ryan Demmer. All rights reserved | GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html */
function IeCursorFix() {
    return !0;
}

function jInsertEditorText(text, editor) {
    try {
        WfEditor.insert(editor, text);
    } catch (e) {}
}

!function() {
    var each = tinymce.each, extend = tinymce.extend, DOM = tinymce.DOM, Event = tinymce.dom.Event, Dispatcher = tinymce.util.Dispatcher;
    function isHidden(el) {
        return (el = "string" == typeof el ? document.getElementById(el) : el) && "none" === el.style.display;
    }
    function getScriptOptions(key) {
        if (!Joomla.optionsStorage) {
            Joomla.optionsStorage = {};
            var scripts = document.querySelectorAll("script.joomla-script-options.new");
            if (!scripts) throw new Error("No Joomla options found");
            scripts.forEach(element => {
                element = element.text || element.textContent;
                try {
                    var data = JSON.parse(element);
                    data && (Joomla.optionsStorage = data);
                } catch (e) {}
            });
        }
        scripts = Joomla.getOptions ? Joomla.getOptions("plg_editor_jce", {}) : Joomla.optionsStorage.plg_editor_jce || {};
        return scripts && scripts[key] ? (scripts = scripts[key], Array.isArray(scripts) ? scripts[0] : scripts) : null;
    }
    var PlatformEditor_register = function(editor) {
        var instance = {
            getValue: function() {
                return WfEditor.getContent(editor.id);
            },
            setValue: function(value) {
                WfEditor.setContent(editor.id, value);
            },
            getSelection: function() {
                return WfEditor.getSelection(editor.id, {
                    format: "text"
                });
            },
            replaceSelection: function(value) {
                return WfEditor.insert(editor.id, value);
            },
            disable: function(disabled) {
                return editor.setMode(disabled ? "readonly" : "design");
            },
            id: editor.id,
            instance: editor,
            onSave: function() {}
        };
        if ("undefined" != typeof JceDecorator) return !0;
        Joomla.editors && (Joomla.editors.instances[editor.id] = instance);
    }, PlatformEditor_unregister = function(editor) {
        var instance, editor = editor.getElement();
        if ("undefined" != typeof JceDecorator) return !((instance = JoomlaEditor.get(editor.id)) && instance instanceof JceDecorator) || JoomlaEditor.unregister(instance);
        Joomla.editors && delete Joomla.editors.instances[editor.id];
    }, WfEditor = {
        settings: null,
        bookmark: null,
        options: {},
        getSite: function(base) {
            var u = document.location.href, host = -1 !== base.indexOf("http") ? (host = base.substr(base.indexOf("://") + 3)).substr(host.indexOf("/")) : u.substr(0, u.indexOf(base) + base.length);
            return -1 !== u.indexOf("/administrator/") && (host += "administrator/"), 
            host;
        },
        init: function(settings) {
            if (!(settings = settings || getScriptOptions("editor"))) throw new Error("Unable to initialize editor. No settings found");
            var base = settings.base_url, site = this.getSite(base), indent = (/https:\/\//.test(document.location.href) && (base = base.replace(/http:/, "https:")), 
            window.tinyMCEPreInit = {}, settings.query = function http_build_query(params, prefix) {
                var value, fullKey, queryStringParts = [];
                for (const key in params) params.hasOwnProperty(key) && (value = params[key], 
                fullKey = prefix ? `${prefix}[${key}]` : key, queryStringParts.push("object" == typeof value && null !== value ? http_build_query(value, fullKey) : encodeURIComponent(fullKey) + "=" + encodeURIComponent(value)));
                return queryStringParts.join("&");
            }(settings.query), extend(tinymce, {
                baseURL: base + "media/com_jce/editor/tinymce",
                suffix: "",
                query: settings.query
            }), "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,object,video,audio");
            if (this.settings = this.settings || extend({
                document_base_url: base,
                site_url: site,
                schema: "mixed",
                convert_urls: !0,
                relative_urls: !0,
                mode: "textareas",
                entity_encoding: "raw",
                editor_selector: "wf-editor",
                editor_deselector: "wf-no-editor",
                urlconverter_callback: "WFEditor.convertURL",
                popup_css: !1,
                add_form_submit_trigger: !1,
                submit_patch: !1,
                theme: "none",
                skin_directionality: "ltr",
                invalid_elements: "applet,iframe,object,embed,script,style,body,bgsound,base,basefont,frame,frameset,head,html,id,ilayer,layer,link,meta,name,title,xml",
                plugins: "",
                external_plugins: {},
                whitespace_elements: "pre,script,style,textarea,code",
                allow_conditional_comments: !0,
                allow_event_attributes: !1,
                fix_list_elements: !0,
                indent_before: indent,
                indent_after: indent,
                update_styles: !0,
                constrain_menus: !1,
                compress: {
                    css: !1,
                    javascript: !1
                },
                language_load: !1
            }, settings), this.settings) try {
                this.settings.compress.css && extend(this.settings, {
                    content_css: !1,
                    editor_css: !1
                }), this.markLoaded(), WFEditor.load();
            } catch (e) {
                console.debug(e);
            }
        },
        markLoaded: function() {
            var s = this.settings, each = tinymce.each, suffix = s.suffix || "";
            function load(u) {
                tinymce.ScriptLoader.markDone(tinyMCE.baseURL + "/" + u);
            }
            1 == s.compress.javascript && (each(s.external_plugins, function(url, name) {
                load(url);
            }), each(s.plugins.split(","), function(n) {
                n && load("plugins/" + n + "/plugin" + suffix + ".js");
            })), each([ "core", "help", "autolink", "cleanup", "code", "format", "importcss", "colorpicker", "upload", "blobupload", "figure", "ui", "noneditable", "branding" ], function(n) {
                load("plugins/" + n + "/plugin" + suffix + ".js");
            });
        },
        setBookmark: function(ed) {
            Event.add(document.body, "mousedown", function(e) {
                !function(el) {
                    return DOM.getParent(el, "div.mceEditor, div.mceSplitButtonMenu, div.mceListBoxMenu, div.mceDropDown");
                }(e.target) && !function(ed) {
                    return ed.isHidden() || "hidden" == DOM.getStyle(ed.id + "_ifr", "visibility");
                }(ed) && ed.selection && (e = ed.selection.getNode(), DOM.getParent(e, "body#tinymce")) && (ed.lastSelectionBookmark = ed.selection.getBookmark(1));
            });
        },
        load: function() {
            var loaded, self = this;
            function _load() {
                loaded || (loaded = !0, self.preinit());
            }
            tinymce.settings = this.settings, tinyMCE.onAddEditor.add(function(mgr, ed) {
                var options, el = ed.getElement();
                "advanced" === ed.settings.theme && (window.Joomla && (Joomla.getOptions && (options = getScriptOptions("joomla_xtd_buttons")) && (ed.settings = extend(ed.settings, {
                    joomla_xtd_buttons: options
                })), PlatformEditor_register(ed)), self.settings.compress.css && ed.onPreInit.add(function() {
                    ed.dom.loadCSS(self.settings.site_url + "index.php?option=com_jce&task=editor.pack&type=css&slot=content");
                }), self.createToggle(el), self.setBookmark(ed), ed.onPreInit.add(function() {
                    self.createTabs(ed);
                }), ed.onInit.add(function() {
                    var bookmark;
                    ed.onSubmit.addToTop(function() {
                        ed.initialized && ed.getElement() && (ed.isNotDirty = 1, 
                        self.getContent(ed.id));
                    }), ed.settings.refocus && (bookmark = sessionStorage.getItem(ed.id + "_bookmark")) && ed === tinymce.activeEditor && window.setTimeout(function() {
                        self.setActiveLine(ed, bookmark);
                    }, 10);
                }), ed.onBeforeRenderUI.add(function() {
                    var n = ed.getElement().form;
                    !n || n._mceOldSubmit || n.submit.nodeType || n.submit.length || ((ed.formElement = n)._mceOldSubmit = n.submit, 
                    n.submit = function() {
                        return tinymce.each(tinymce.editors, function(e) {
                            e.initialized && e.getElement() && (e.isNotDirty = 1, 
                            self.getContent(e.id));
                        }), ed.formElement._mceOldSubmit(ed.formElement);
                    });
                }), ed.onPostRender.add(function() {
                    var el = ed.getElement(), el = self.getEditorState(el), toggle = tinymce.is(ed.settings.toggle) ? parseInt(ed.settings.toggle, 10) : 0;
                    !el && toggle && (ed.hide(), ed.plugins.source && ed.plugins.source.hide(), 
                    ed.plugins.preview) && ed.plugins.preview.hide();
                }), ed.onWfEditorChange = new Dispatcher(), ed.onWfEditorChange.add(function(ed, o) {
                    tinymce.is(o.content) && (ed.setContent(o.content, o), ed.onChange.dispatch());
                }), ed.onSaveContent.add(function() {
                    var bookmark = self.getActiveLine(ed);
                    sessionStorage.setItem(ed.id + "_bookmark", bookmark);
                }), ed.onRemove.add(function() {
                    var nodes, container = DOM.getParent(ed.getElement(), "div.wf-editor-container");
                    container && (nodes = tinymce.grep(DOM.select("div", container), function(node) {
                        return node !== ed.getElement() && node !== ed.getContainer();
                    }), DOM.remove(nodes), DOM.remove(container, 1));
                }));
            }), Event.bind(window, "load", function() {
                _load(), self.initSubformEvents();
            }), Event.bind(window, "ready", function() {
                window.setTimeout(function() {
                    _load();
                }, 1e3);
            });
        },
        initSubformEvents: function() {
            var self = this, settings = this.settings;
            function removeEditor(el) {
                el = tinymce.EditorManager.get(el.id);
                el && (el.remove(), el.destroy(!0), PlatformEditor_unregister(el));
            }
            function createEditor(el) {
                var ed = tinymce.EditorManager.get(el.id);
                ed || (self.createInstance(el), ed = new tinymce.Editor(el.id, settings)), 
                ed.render();
            }
            function rebuildEditor(row) {
                row = DOM.select(".wf-editor-container > textarea[id]", row);
                each(row, function(el) {
                    removeEditor(el), createEditor(el);
                });
            }
            window.jQuery && (jQuery("div.subform-repeatable").on("subform-row-add", function(event, row) {
                row = DOM.select(".wf-editor", row);
                each(row, function(el) {
                    createEditor(el);
                });
            }).on("subform-row-remove", function(event, row) {
                row = DOM.select(".wf-editor", row);
                each(row, function(el) {
                    removeEditor(el);
                });
            }), jQuery(document).on("editor-reinit", function(e, row) {
                rebuildEditor(row);
            }), jQuery(document).on("sortstop", function(e, ui) {
                ui.item[0] && rebuildEditor(ui.item[0]);
            })), Event.add(document, "subform-row-add", function(e, row) {
                (row = e.detail ? e.detail.row : null) && (e = DOM.select(".wf-editor", row), 
                each(e, function(el) {
                    createEditor(el);
                }));
            }), Event.add(document, "subform-row-remove", function(e) {
                var e = e.detail ? e.detail.row : null;
                e && (e = DOM.select(".wf-editor", e), each(e, function(el) {
                    removeEditor(el);
                }));
            }), Event.add(document, "sortstop", function(e) {
                e = e.detail ? e.detail.row : null;
                e && rebuildEditor(e);
            }), Event.add(DOM.select("joomla-field-subform.subform-repeatable"), "dragend", function(e) {
                rebuildEditor(e.target);
            });
        },
        isEditorActive: function(elm) {
            return 0 == DOM.hasClass(elm, "wf-no-editor");
        },
        canToggle: function() {
            var settings = this.settings;
            return tinymce.is(settings.toggle) ? parseInt(settings.toggle, 10) : 0;
        },
        getEditorState: function(el) {
            var state, s = this.settings;
            return null == (state = !1 !== s.use_state_cookies ? tinymce.util.Storage.get("wf_editor_state_" + el.id) : state) && (state = tinymce.is(s.toggle_state) ? s.toggle_state : 1), 
            state = parseInt(state, 10);
        },
        createInstance: function(el) {
            var s = this.settings;
            if (el = "string" == typeof el ? DOM.get(el) : el) {
                s.width && DOM.setStyle(el, "width", s.width), s.height && DOM.setStyle(el, "height", s.height);
                s = this.getEditorState(el);
                if (this.canToggle()) {
                    this.createToggle(el);
                    var header = DOM.getPrev(el, ".wf-editor-header");
                    if (!s) return DOM.addClass(el, "wf-no-editor"), DOM.hide(DOM.select(".wf-editor-tabs", header)), 
                    DOM.addClass(el.parentNode, "wf-editor-toggle-off"), !1;
                }
                return !0;
            }
        },
        create: function(elements) {
            var ed;
            return "string" == typeof elements && ((ed = tinymce.get(elements)) && tinymce.remove(ed), 
            elements = [ elements ]), this.preinit(elements);
        },
        preinit: function(elements) {
            var self = this, settings = this.settings;
            try {
                elements = elements || DOM.select(".wf-editor"), each(elements, function(elm) {
                    var editorId;
                    return !(elm = DOM.get(elm)) || (editorId = function(elm) {
                        var id = elm.id;
                        return id || (id = (id = elm.name) && !DOM.get(id) ? elm.name : DOM.uniqueId(), 
                        elm.setAttribute("id", id)), id;
                    }(elm), !!tinymce.get(editorId)) || (DOM.show(elm), "advanced" == settings.theme && self.createInstance(elm), 
                    void new tinymce.Editor(editorId, settings, tinymce.EditorManager).render());
                });
            } catch (e) {
                console.debug(e);
            }
        },
        toggleEditor: function(el) {
            var activeTab, height, ed = tinymce.get(el.id);
            if (ed) if (DOM.hasClass(el, "wf-no-editor")) switch (DOM.removeClass(el, "wf-no-editor"), 
            DOM.setStyle(DOM.select(".wf-editor-tabs", el.parentNode), "display", ""), 
            DOM.removeClass(el.parentNode, "wf-editor-toggle-off"), !1 !== this.settings.use_state_cookies && tinymce.util.Storage.set("wf_editor_state_" + el.id, 1), 
            (activeTab = !1 !== this.settings.use_state_cookies ? sessionStorage.getItem("wf-editor-tabs-" + ed.id) : activeTab) || ed.settings.active_tab, 
            DOM.hide(ed.getElement()), activeTab) {
              default:
              case "wf-editor-wysiwyg":
                ed.show();
                break;

              case "wf-editor-source":
                ed.plugins.source.toggle();
                break;

              case "wf-editor-preview":
                ed.plugins.preview.toggle();
            } else DOM.addClass(el, "wf-no-editor"), DOM.hide(DOM.select(".wf-editor-tabs", el.parentNode)), 
            DOM.addClass(el.parentNode, "wf-editor-toggle-off"), (height = !1 !== this.settings.use_state_cookies ? sessionStorage.getItem("wf-editor-container-height") : height) && !ed.getParam("fullscreen_enabled") && DOM.setStyle(ed.getElement(), "height", height), 
            !1 !== this.settings.use_state_cookies && tinymce.util.Storage.set("wf_editor_state_" + el.id, 0), 
            ed.hide(), this.getContent(ed.id), ed.plugins.source && ed.plugins.source.hide(), 
            ed.plugins.preview && ed.plugins.preview.hide(), DOM.setStyle(ed.getElement(), "display", ""); else DOM.addClass(el.parentNode, "mce-loading"), 
            DOM.removeClass(el, "wf-no-editor"), DOM.removeClass(el.parentNode, "wf-editor-toggle-off"), 
            !1 !== this.settings.use_state_cookies && tinymce.util.Storage.set("wf_editor_state_" + el.id, 1), 
            tinymce.execCommand("mceToggleEditor", !1, el.id), setTimeout(function() {
                DOM.removeClass(el.parentNode, "mce-loading");
            }, 1e3);
        },
        getActiveTab: function(ed) {
            var ed = ed.getElement().parentNode.querySelector(".wf-editor-tabs > button.active");
            return (ed = ed && ed.getAttribute("aria-controls")) ? ed.substring(10) : "wysiwyg";
        },
        getEditor: function(el) {
            var ed, win = window;
            return !win.tinymce && window.parent.tinymce && (win = window.parent), 
            !(!(ed = (ed = (el = el && ("string" == typeof el ? document.getElementById(el) : el)) && el.id ? win.tinymce.get(el.id) : ed) || win.tinymce.activeEditor) || !ed.getElement() || DOM.hasClass(ed.getElement(), "wf-no-editor")) && ("wysiwyg" == (el = this.getActiveTab(ed)) ? ed : "source" == el && ed.plugins.source);
        },
        loadContent: function(ed) {
            var code, el = ed.getElement();
            isHidden(ed.id + "_parent") && ed.plugins.source && null !== (code = ed.plugins.source.getContent()) && (/TEXTAREA|INPUT/i.test(el.nodeName) ? el.value = code : el.innerHTML = code, 
            ed.load());
        },
        createToggle: function(el) {
            var self = this, s = this.settings, header = DOM.getPrev(el, ".wf-editor-header") || this.createHeader(el);
            self.canToggle() && 0 === DOM.select("button.wf-editor-toggle", header).length && (header = DOM.add(header, "button", {
                class: "wf-editor-toggle btn btn-link",
                tabindex: "-1"
            }, '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 448 448"><title></title><g id="wf-toggle-icon" stroke="none" stroke-width="1"></g><path d="M280 64.132v59.482c15.84 6.914 30.406 16.803 42.995 29.391 26.443 26.442 41.005 61.6 41.005 98.995s-14.563 72.552-41.005 98.995c-26.442 26.442-61.599 41.005-98.995 41.005s-72.552-14.563-98.995-41.005c-26.442-26.442-41.005-61.6-41.005-98.995s14.563-72.552 41.005-98.995c12.589-12.589 27.155-22.478 42.995-29.392v-59.481c-80.959 24.097-140 99.082-140 187.868 0 108.248 87.753 196 196 196s196-87.752 196-196c0-88.786-59.041-163.77-140-187.868zM196 0h56v224h-56z"></path></svg>' + (s.toggle_label || "")), 
            Event.add(header, "click", function(e) {
                e.preventDefault(), self.toggleEditor(el);
            }));
        },
        setActiveLine: function(ed, pos) {
            var len, blocks = [];
            pos && !(pos < 1) && (tinymce.each(ed.schema.getBlockElements(), function(value, name) {
                if (/\W/.test(name)) return !0;
                blocks.push(name.toLowerCase());
            }), pos = ed.dom.select(blocks.join(","))[pos - 1] || null) && (ed.focus(), 
            len = pos.childNodes.length, ed.selection.setCursorLocation(pos, len), 
            ed.selection.scrollIntoView(pos));
        },
        getActiveLine: function(ed) {
            var blocks = [], line = 0, node = (tinymce.each(ed.schema.getBlockElements(), function(value, name) {
                if (/\W/.test(name)) return !0;
                blocks.push(name.toLowerCase());
            }), ed.selection.getNode()), nodes = ed.dom.select(blocks.join(","));
            if (node) {
                1 === node.nodeType && "bookmark" !== node.getAttribute("data-mce-type") || (node = node.parentNode);
                for (var i = 0, len = nodes.length; i < len; i++) if (nodes[i] === node) {
                    line = i;
                    break;
                }
            }
            return line;
        },
        toggleTab: function(ed, tab) {
            var h, ca, p, self = this, el = ed.getElement();
            return DOM.addClass(el.parentNode, "mce-loading"), isHidden(ed.id + "_parent") || DOM.hasClass(el.parentNode, "mce-fullscreen") || (ed.settings.container_height = ed.getContainer().offsetHeight, 
            !1 !== this.settings.use_state_cookies && sessionStorage.setItem("wf-editor-container-height", ed.settings.container_height), 
            ed.settings.container_width = ed.getContainer().offsetWidth, !1 !== this.settings.use_state_cookies && sessionStorage.setItem("wf-editor-container-width", ed.settings.container_width), 
            ed.settings.interface_height = (h = 0, ca = ed.getContentAreaContainer(), 
            p = ca.parentNode, tinymce.each(p.childNodes, function(n) {
                n !== ca && (h += n.offsetHeight);
            }), h), !1 !== this.settings.use_state_cookies && sessionStorage.setItem("wf-editor-interface-height", ed.settings.interface_height)), 
            "wf-editor-source" === tab ? (ed.hide(), DOM.hide(el), ed.plugins.preview && ed.plugins.preview.hide(), 
            ed.plugins.source.toggle()) : "wf-editor-preview" === tab ? (self.loadContent(ed), 
            ed.hide(), DOM.hide(el), ed.plugins.source && ed.plugins.source.hide(), 
            ed.onToggleTab.dispatch(ed, tab), ed.plugins.preview.toggle()) : (self.loadContent(ed), 
            ed.plugins.source && ((p = ed.plugins.source.getCursorPos()) && (ed.activeLine = p), 
            ed.plugins.source.hide()), ed.plugins.preview && ed.plugins.preview.hide(), 
            DOM.setStyle(ed.id + "_ifr", "max-width", DOM.getStyle(el.parentNode, "max-width")), 
            ed.show(), ed.activeLine && ed === tinymce.activeEditor && window.setTimeout(function() {
                self.setActiveLine(ed, ed.activeLine);
            }, 100), void DOM.removeClass(el.parentNode, "mce-loading"));
        },
        createHeader: function(element) {
            var container = DOM.create("div", {
                class: "editor wf-editor-container"
            }, '<div class="wf-editor-header"></div>');
            return element.parentNode.insertBefore(container, element), DOM.add(container, element), 
            container.firstChild;
        },
        createTabs: function(ed) {
            var tablist, activeTab, self = this, settings = this.settings, el = ed.getElement(), header = DOM.getPrev(el, ".wf-editor-header") || this.createHeader(el);
            if (!ed.plugins.source && !ed.plugins.preview) return !1;
            function makeTabActive(tab) {
                DOM.removeClass(DOM.select("button", tablist), "active"), DOM.setAttrib(DOM.select("button", tablist), "aria-expanded", "false"), 
                DOM.addClass(tab, "active"), DOM.setAttrib(tab, "aria-expanded", "true");
            }
            DOM.select(".wf-editor-tabs", header).length || (ed.onToggleTab = new tinymce.util.Dispatcher(ed), 
            tablist = DOM.add(header, "div", {
                role: "tablist",
                class: "wf-editor-tabs nav nav-tabs"
            }), activeTab = (activeTab = !1 !== settings.use_state_cookies ? sessionStorage.getItem("wf-editor-tabs-" + ed.id) : activeTab) || ed.settings.active_tab || "wf-editor-wysiwyg", 
            ed.settings.active_tab = activeTab, makeTabActive(DOM.add(tablist, "button", {
                type: "button",
                class: "nav-item",
                "aria-controls": "wf-editor-wysiwyg"
            }, ed.getLang("tab.wysiwyg", "Editor"))), ed.plugins.source && (header = DOM.add(tablist, "button", {
                type: "button",
                class: "nav-item",
                "aria-controls": "wf-editor-source"
            }, ed.getLang("tab.code", "Code")), "wf-editor-source" === activeTab) && makeTabActive(header), 
            ed.plugins.preview && (header = DOM.add(tablist, "button", {
                type: "button",
                class: "nav-item",
                "aria-controls": "wf-editor-preview"
            }, ed.getLang("tab.preview", "Preview")), "wf-editor-preview" === activeTab) && makeTabActive(header), 
            Event.add(tablist, "click", function(e) {
                e.preventDefault();
                var e = DOM.getParent(e.target, "button");
                e && !DOM.hasClass(e, "active") && (makeTabActive(e), e = DOM.getAttrib(e, "aria-controls"), 
                !1 !== settings.use_state_cookies && sessionStorage.setItem("wf-editor-tabs-" + ed.id, e), 
                self.toggleTab(ed, e));
            }), activeTab = this.getEditorState(el), header = tinymce.is(settings.toggle) ? parseInt(settings.toggle, 10) : 0, 
            !activeTab && header && DOM.hide(DOM.select(".wf-editor-tabs", el.parentNode)));
        },
        textareaResize: function(el) {
            var container = DOM.getPrev(el, ".wf-editor-header").parentNode;
            Event.add(el, "mousedown", function(e) {
                var mm = Event.add(el, "mousemove", function(e) {
                    container.style.maxWidth = el.offsetWidth + "px";
                }), mu = Event.add(el, "mouseup", function(e) {
                    Event.remove(el, "mousemove", mm), Event.remove(el, "mouseup", mu), 
                    container.style.maxWidth = el.offsetWidth + "px";
                });
            });
        },
        wrapText: function(el, s) {
            s ? el.setAttribute("wrap", "soft") : el.removeAttribute("wrap");
        },
        setContent: function(id, html) {
            var ed = this.getEditor(id);
            ed ? ed.setContent(html) : (ed = document.getElementById(id)) && (ed.value = html);
        },
        getContent: function(id) {
            var state, ed = this.getEditor(id);
            return ed ? (id = document.getElementById(id), state = this.isEditorActive(id), 
            ed && state ? ed.save() : id ? id.value : "") : "";
        },
        getSelection: function(id, args) {
            id = this.getEditor(id);
            return id && id.getSelection ? id.getSelection(args || {}) : document.getSelection().toString();
        },
        insert: function(el, v) {
            var ed = this.getEditor(el);
            return ed ? ed.execCommand ? isHidden(ed.getElement()) ? (ed.lastSelectionBookmark && ed.selection.moveToBookmark(ed.lastSelectionBookmark), 
            ed.execCommand("mceInsertContent", !1, v)) : this.insertIntoTextarea(ed.getElement(), v) : ed.insertContent(v) : (el = "string" == typeof el ? document.getElementById(el) : el) && !isHidden(el) && this.insertIntoTextarea(el, v), 
            !0;
        },
        insertIntoTextarea: function(el, v) {
            el.focus(), document.selection ? document.selection.createRange().text = v : el.setRangeText(v, el.selectionStart, el.selectionEnd, "end");
        },
        convertURL: function(url, elm, save, name) {
            if (url) {
                var ed = tinymce.EditorManager.activeEditor;
                if (ed) {
                    var settings = ed.settings, base = settings.document_base_url;
                    if (settings.convert_urls && (!elm || "LINK" !== elm.nodeName) && 0 !== url.indexOf("file:") && url !== base && url !== base.substring(0, base.length - 1) && "/" !== url.charAt(0)) {
                        if (!settings.mixed_urls) {
                            if (settings.relative_urls) return 0 === url.indexOf(base) ? ed.documentBaseURI.toRelative(url) : url;
                            url = ed.documentBaseURI.toAbsolute(url, settings.remove_script_host);
                        }
                        settings.protocol_relative && (url = url.replace(/(http|https|ftp|ftps):\/\//, "//"));
                    }
                }
            }
            return url;
        },
        indent: function(h) {
            return h = h.replace(/\n+/g, "\n"), tinymce.trim(h);
        }
    };
    document.addEventListener("DOMContentLoaded", function handler() {
        WfEditor.init(), this.removeEventListener("DOMContentLoaded", handler), 
        Joomla.JoomlaTinyMCE = {
            setupEditors: function(form) {
                DOM.get(form) && DOM.select(".wf-editor", form).length && WfEditor.init();
            }
        };
    }), window.WfEditor = window.WFEditor = WfEditor;
}();