"function" != typeof Object.create && function() { var a = function() { }; Object.create = function(b) { if (1 < arguments.length) throw Error("Second argument not supported"); if (null === b) throw Error("Cannot set a null [[Prototype]]"); if ("object" != typeof b) throw TypeError("Argument must be an object"); a.prototype = b; return new a } }();
CKEDITOR.plugins.add("toolbarconfiguratorarea", {
	afterInit: function(a) {
		a.addMode("wysiwyg", function(b) { var c = CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_wysiwyg_div cke_reset" hidefocus\x3d"true"\x3e\x3c/div\x3e'); a.ui.space("contents").append(c); c = a.editable(c); c.detach = CKEDITOR.tools.override(c.detach, function(b) { return function() { b.apply(this, arguments); this.remove() } }); a.setData(a.getData(1), b); a.fire("contentDom") }); a.dataProcessor.toHtml = function(b) { return b }; a.dataProcessor.toDataFormat =
			function(b) { return b }
	}
}); Object.keys || (Object.keys = function() { var a = Object.prototype.hasOwnProperty, b = !{ toString: null }.propertyIsEnumerable("toString"), c = "toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "), e = c.length; return function(d) { if ("object" !== typeof d && ("function" !== typeof d || null === d)) throw new TypeError("Object.keys called on non-object"); var g = [], f; for (f in d) a.call(d, f) && g.push(f); if (b) for (f = 0; f < e; f++)a.call(d, c[f]) && g.push(c[f]); return g } }());
(function() {
	function a(b, c) { this.cfg = c || {}; this.hidden = !1; this.editorId = b; this.fullToolbarEditor = new ToolbarConfigurator.FullToolbarEditor; this.actualConfig = this.originalConfig = this.mainContainer = null; this.isEditableVisible = this.waitForReady = !1; this.toolbarContainer = null; this.toolbarButtons = [] } ToolbarConfigurator.AbstractToolbarModifier = a; a.prototype.setConfig = function(b) { this._onInit(void 0, b, !0) }; a.prototype.init = function(b) {
		var c = this; this.mainContainer = new CKEDITOR.dom.element("div"); if (null !==
			this.fullToolbarEditor.editorInstance) throw "Only one instance of ToolbarModifier is allowed"; this.editorInstance || this._createEditor(!1); this.editorInstance.once("loaded", function() { c.fullToolbarEditor.init(function() { c._onInit(b); if ("function" == typeof c.onRefresh) c.onRefresh() }, c.editorInstance.config) }); return this.mainContainer
	}; a.prototype._onInit = function(b, c) {
		this.originalConfig = this.editorInstance.config; this.actualConfig = c ? JSON.parse(c) : JSON.parse(JSON.stringify(this.originalConfig)); if (!this.actualConfig.toolbarGroups &&
			!this.actualConfig.toolbar) { for (var a = this.actualConfig, d = this.editorInstance.toolbar, g = [], f = d.length, k = 0; k < f; k++) { var h = d[k]; "string" == typeof h ? g.push(h) : g.push({ name: h.name, groups: h.groups ? h.groups.slice() : [] }) } a.toolbarGroups = g } "function" === typeof b && b(this.mainContainer)
	}; a.prototype._createModifier = function() {
		this.mainContainer.addClass("unselectable"); this.modifyContainer && this.modifyContainer.remove(); this.modifyContainer = new CKEDITOR.dom.element("div"); this.modifyContainer.addClass("toolbarModifier");
		this.mainContainer.append(this.modifyContainer); return this.mainContainer
	}; a.prototype.getEditableArea = function() { return this.editorInstance.container.findOne("#" + this.editorInstance.id + "_contents") }; a.prototype._hideEditable = function() { var b = this.getEditableArea(); this.isEditableVisible = !1; this.lastEditableAreaHeight = b.getStyle("height"); b.setStyle("height", "0") }; a.prototype._showEditable = function() { this.isEditableVisible = !0; this.getEditableArea().setStyle("height", this.lastEditableAreaHeight || "auto") };
	a.prototype._toggleEditable = function() { this.isEditableVisible ? this._hideEditable() : this._showEditable() }; a.prototype._refreshEditor = function() { function b() { c.editorInstance.destroy(); c._createEditor(!0, c.getActualConfig()); c.waitForReady = !1 } var c = this, a = this.editorInstance.status; this.waitForReady || ("unloaded" == a || "loaded" == a ? (this.waitForReady = !0, this.editorInstance.once("instanceReady", function() { b() }, this)) : b()) }; a.prototype._createEditor = function(b, c) {
		function e() { } var d = this; this.editorInstance =
			CKEDITOR.replace(this.editorId); this.editorInstance.on("configLoaded", function() { var b = d.editorInstance.config; c && CKEDITOR.tools.extend(b, c, !0); a.extendPluginsConfig(b) }); this.editorInstance.on("uiSpace", function(b) { "top" != b.data.space && b.stop() }, null, null, -999); this.editorInstance.once("loaded", function() {
				var c = d.editorInstance.ui.instances, a; for (a in c) c[a] && (c[a].click = e, c[a].onClick = e); d.isEditableVisible || d._hideEditable(); d.currentActive && d.currentActive.name && d._highlightGroup(d.currentActive.name);
				d.hidden ? d.hideUI() : d.showUI(); if (b && "function" === typeof d.onRefresh) d.onRefresh()
			})
	}; a.prototype.getActualConfig = function() { return JSON.parse(JSON.stringify(this.actualConfig)) }; a.prototype._createToolbar = function() { if (this.toolbarButtons.length) { this.toolbarContainer = new CKEDITOR.dom.element("div"); this.toolbarContainer.addClass("toolbar"); for (var b = this.toolbarButtons.length, c = 0; c < b; c += 1)this._createToolbarBtn(this.toolbarButtons[c]) } }; a.prototype._createToolbarBtn = function(b) {
		var c = ToolbarConfigurator.FullToolbarEditor.createButton("string" ===
			typeof b.text ? b.text : b.text.inactive, b.cssClass); this.toolbarContainer.append(c); c.data("group", b.group); c.addClass(b.position); c.on("click", function() { b.clickCallback.call(this, c, b) }, this); return c
	}; a.prototype._fixGroups = function(b) {
		b = b.toolbarGroups || []; for (var c = b.length, a = 0; a < c; a += 1) {
			var d = b[a]; "/" == d ? (d = b[a] = {}, d.type = "separator", d.name = "separator" + CKEDITOR.tools.getNextNumber()) : (d.groups = d.groups || [], -1 == CKEDITOR.tools.indexOf(d.groups, d.name) && (this.editorInstance.ui.addToolbarGroup(d.name,
				d.groups[d.groups.length - 1], d.name), d.groups.push(d.name)), this._fixSubgroups(d))
		}
	}; a.prototype._fixSubgroups = function(b) { b = b.groups; for (var c = b.length, a = 0; a < c; a += 1) { var d = b[a]; b[a] = { name: d, totalBtns: ToolbarConfigurator.ToolbarModifier.getTotalSubGroupButtonsNumber(d, this.fullToolbarEditor) } } }; a.stringifyJSONintoOneLine = function(b, a) {
		a = a || {}; var e = JSON.stringify(b, null, ""), e = e.replace(/\n/g, ""); a.addSpaces && (e = e.replace(/(\{|:|,|\[|\])/g, function(a) { return a + " " }), e = e.replace(/(\])/g, function(a) {
			return " " +
				a
		})); a.noQuotesOnKey && (e = e.replace(/"(\w*)":/g, function(a, b) { return b + ":" })); a.singleQuotes && (e = e.replace(/\"/g, "'")); return e
	}; a.prototype.hideUI = function() { this.hidden = !0; this.mainContainer.hide(); this.editorInstance.container && this.editorInstance.container.hide() }; a.prototype.showUI = function() { this.hidden = !1; this.mainContainer.show(); this.editorInstance.container && this.editorInstance.container.show() }; a.extendPluginsConfig = function(a) { var c = a.extraPlugins; a.extraPlugins = (c ? c + "," : "") + "toolbarconfiguratorarea" }
})();