(function() { function t(a, m, r) { (m.is && m.getCustomData("block_processed")) || (m.is && CKEDITOR.dom.element.setMarker(r, m, "block_processed", !0), a.push(m)); } function q(a, m) { function r() { this.foreach(function(a) { /^(?!vbox|hbox)/.test(a.type) && (a.setup || (a.setup = function(c) { a.setValue(c.getAttribute(a.id) || "", 1); }), a.commit || (a.commit = function(c) { var g = this.getValue(); if ("dir" != a.id || c.getComputedStyle("direction") != g) g ? c.setAttribute(a.id, g) : c.removeAttribute(a.id); })); }); } var q = (function() { var f = CKEDITOR.tools.extend({}, CKEDITOR.dtd.$blockLimit); a.config.div_wrapTable && (delete f.td, delete f.th); return f; })(), u = CKEDITOR.dtd.div, n = {}, p = []; return { title: a.lang.div.title, minWidth: 400, minHeight: 165, contents: [ { id: "info", label: a.lang.common.generalTab, title: a.lang.common.generalTab, elements: [ { type: "hbox", widths: ["50%", "50%"], children: [ { id: "elementStyle", type: "select", style: "width: 100%;", label: a.lang.div.styleSelectLabel, default: "", items: [[a.lang.common.notSet, ""]], onChange: function() { var f = [ "info:elementStyle", "info:class", "advanced:dir", "advanced:style" ], c = this.getDialog(), g = (c._element && c._element.clone()) || new CKEDITOR.dom.element("div", a.document); this.commit(g, !0); for ( var f = [].concat(f), b = f.length, k, e = 0; e < b; e++ ) (k = c.getContentElement.apply(c, f[e].split(":"))) && k.setup && k.setup(g, !0); }, setup: function(f) { for (var c in n) n[c].checkElementRemovable(f, !0, a) && this.setValue(c, 1); }, commit: function(f) { var c; (c = this.getValue()) ? n[c].applyToObject(f, a) : f.removeAttribute("style"); } }, { id: "class", type: "text", requiredContent: "div(cke-xyz)", label: a.lang.common.cssClass, default: "" } ] } ] }, { id: "advanced", label: a.lang.common.advancedTab, title: a.lang.common.advancedTab, elements: [ { type: "vbox", padding: 1, children: [ { type: "hbox", widths: ["50%", "50%"], children: [ { type: "text", id: "id", requiredContent: "div[id]", label: a.lang.common.id, default: "" }, { type: "text", id: "lang", requiredContent: "div[lang]", label: a.lang.common.langCode, default: "" } ] }, { type: "hbox", children: [ { type: "text", id: "style", requiredContent: "div{cke-xyz}", style: "width: 100%;", label: a.lang.common.cssStyle, default: "", commit: function(a) { a.setAttribute("style", this.getValue()); } } ] }, { type: "hbox", children: [ { type: "text", id: "title", requiredContent: "div[title]", style: "width: 100%;", label: a.lang.common.advisoryTitle, default: "" } ] }, { type: "select", id: "dir", requiredContent: "div[dir]", style: "width: 100%;", label: a.lang.common.langDir, default: "", items: [ [a.lang.common.notSet, ""], [a.lang.common.langDirLtr, "ltr"], [a.lang.common.langDirRtl, "rtl"] ] } ] } ] } ], onLoad: function() { r.call(this); var f = this, c = this.getContentElement("info", "elementStyle"); a.getStylesSet(function(g) { var b, k; if (g) for (var e = 0; e < g.length; e++) (k = g[e]), k.element && "div" == k.element && ((b = k.name), (n[b] = k = new CKEDITOR.style(k)), a.filter.check(k) && (c.items.push([b, b]), c.add(b, b))); c[1 < c.items.length ? "enable" : "disable"](); setTimeout(function() { f._element && c.setup(f._element); }, 0); }); }, onShow: function() { "editdiv" == m && this.setupContent( (this._element = CKEDITOR.plugins.div.getSurroundDiv(a)) ); }, onOk: function() { if ("editdiv" == m) p = [this._element]; else { var f = [], c = {}, g = [], b, k = a.getSelection(), e = k.getRanges(), n = k.createBookmarks(), h, l; for (h = 0; h < e.length; h++) for (l = e[h].createIterator(); (b = l.getNextParagraph()); ) if (b.getName() in q && !b.isReadOnly()) { var d = b.getChildren(); for (b = 0; b < d.count(); b++) t(g, d.getItem(b), c); } else { for (; !u[b.getName()] && !b.equals(e[h].root); ) b = b.getParent(); t(g, b, c); } CKEDITOR.dom.element.clearAllMarkers(c); e = []; h = null; for (l = 0; l < g.length; l++) (b = g[l]), (d = a.elementPath(b).blockLimit), d.isReadOnly() && (d = d.getParent()), a.config.div_wrapTable && d.is(["td", "th"]) && (d = a.elementPath(d.getParent()).blockLimit), d.equals(h) || ((h = d), e.push([])), b.getParent() && e[e.length - 1].push(b); for (h = 0; h < e.length; h++) if (e[h].length) { d = e[h][0]; g = d.getParent(); for (b = 1; b < e[h].length; b++) g = g.getCommonAncestor(e[h][b]); g || (g = a.editable()); l = new CKEDITOR.dom.element("div", a.document); for (b = 0; b < e[h].length; b++) { for (d = e[h][b]; d.getParent() && !d.getParent().equals(g); ) d = d.getParent(); e[h][b] = d; } for (b = 0; b < e[h].length; b++) (d = e[h][b]), (d.getCustomData && d.getCustomData("block_processed")) || (d.is && CKEDITOR.dom.element.setMarker( c, d, "block_processed", !0 ), b || l.insertBefore(d), l.append(d)); CKEDITOR.dom.element.clearAllMarkers(c); f.push(l); } k.selectBookmarks(n); p = f; } f = p.length; for (c = 0; c < f; c++) this.commitContent(p[c]), !p[c].getAttribute("style") && p[c].removeAttribute("style"); this.hide(); }, onHide: function() { "editdiv" == m && this._element.removeCustomData("elementStyle"); delete this._element; } }; } CKEDITOR.dialog.add("creatediv", function(a) { return q(a, "creatediv"); }); CKEDITOR.dialog.add("editdiv", function(a) { return q(a, "editdiv"); }); })();