text: ﻿window.ToolbarConfigurator = {};
  (function() {
      function e() { this.instanceid = "fte" + CKEDITOR.tools.getNextId();
          this.textarea = new CKEDITOR.dom.element("textarea");
          this.textarea.setAttributes({ id: this.instanceid, name: this.instanceid, contentEditable: !0 });
          this.editorInstance = this.buttons = null } ToolbarConfigurator.FullToolbarEditor = e;
      e.prototype.init = function(b) {
          var a = this;
          document.body.appendChild(this.textarea.$);
          CKEDITOR.replace(this.instanceid);
          this.editorInstance = CKEDITOR.instances[this.instanceid];
          this.editorInstance.once("configLoaded", function(d) {
              var c =
                  d.editor.config;
              delete c.removeButtons;
              delete c.toolbarGroups;
              delete c.toolbar;
              ToolbarConfigurator.AbstractToolbarModifier.extendPluginsConfig(c);
              d.editor.once("loaded", function() { a.buttons = e.toolbarToButtons(a.editorInstance.toolbar);
                  a.buttonsByGroup = e.groupButtons(a.buttons);
                  a.buttonNamesByGroup = a.groupButtonNamesByGroup(a.buttons);
                  d.editor.container.hide(); "function" === typeof b && b(a.buttons) })
          })
      };
      e.prototype.groupButtonNamesByGroup = function(b) {
          var a = this;
          b = e.groupButtons(b);
          for (var d in b) b[d] =
              e.map(b[d], function(b) { return a.getCamelCasedButtonName(b.name) });
          return b
      };
      e.prototype.getGroupByName = function(b) { for (var a = this.editorInstance.config.toolbarGroups || this.getFullToolbarGroupsConfig(), d = a.length, c = 0; c < d; c += 1)
              if (a[c].name === b) return a[c]; return null };
      e.prototype.getCamelCasedButtonName = function(b) { var a = this.editorInstance.ui.items,
              d; for (d in a)
              if (a[d].name == b) return d; return null };
      e.prototype.getFullToolbarGroupsConfig = function(b) {
          b = !0 === b ? !0 : !1;
          for (var a = [], d = this.editorInstance.toolbar,
                  c = d.length, f = 0; f < c; f += 1) { var e = d[f],
                  g = {}; "string" != typeof e.name ? b && a.push("/") : (g.name = e.name, e.groups && (g.groups = Array.prototype.slice.call(e.groups)), a.push(g)) }
          return a
      };
      e.filter = function(b, a) { for (var d = b && b.length ? b.length : 0, c = [], f = 0; f < d; f += 1) a(b[f]) && c.push(b[f]); return c };
      e.map = function(b, a) { var d; if (CKEDITOR.tools.isArray(b)) { d = []; for (var c = b.length, f = 0; f < c; f += 1) d.push(a(b[f])) } else
              for (c in d = {}, b) d[c] = a(b[c]); return d };
      e.groupButtons = function(b) {
          for (var a = {}, d = b.length, c = 0; c < d; c += 1) {
              var f =
                  b[c],
                  e = f.toolbar.split(",")[0];
              a[e] = a[e] || [];
              a[e].push(f)
          }
          return a
      };
      e.toolbarToButtons = function(b) { for (var a = [], d = b.length, c = 0; c < d; c += 1) "object" == typeof b[c] && (a = a.concat(e.groupToButtons(b[c]))); return a };
      e.createToolbarButton = function(b) {
          var a = new CKEDITOR.dom.element("a"),
              d = e.createIcon(b.name, b.icon, b.command);
          a.setStyle("float", "none");
          a.addClass("cke_" + ("rtl" == CKEDITOR.lang.dir ? "rtl" : "ltr"));
          if (b instanceof CKEDITOR.ui.button) a.addClass("cke_button"), a.addClass("cke_toolgroup"), a.append(d);
          else if (CKEDITOR.ui.richCombo && b instanceof CKEDITOR.ui.richCombo) { var d = new CKEDITOR.dom.element("span"),
                  c = new CKEDITOR.dom.element("span"),
                  f = new CKEDITOR.dom.element("span");
              a.addClass("cke_combo_button");
              d.addClass("cke_combo_text");
              d.addClass("cke_combo_inlinelabel");
              d.setText(b.label);
              c.addClass("cke_combo_open");
              f.addClass("cke_combo_arrow");
              c.append(f);
              a.append(d);
              a.append(c) }
          return a
      };
      e.createIcon = function(b, a, d) {
          var c = CKEDITOR.skin.getIconStyle(b, "rtl" == CKEDITOR.lang.dir),
              c = (c = c || CKEDITOR.skin.getIconStyle(a,
                  "rtl" == CKEDITOR.lang.dir)) || CKEDITOR.skin.getIconStyle(d, "rtl" == CKEDITOR.lang.dir);
          a = new CKEDITOR.dom.element("span");
          a.addClass("cke_button_icon");
          a.addClass("cke_button__" + b + "_icon");
          a.setAttribute("style", c);
          a.setStyle("float", "none");
          return a
      };
      e.createButton = function(b, a) { var d = new CKEDITOR.dom.element("button");
          d.addClass("button-a");
          d.setAttribute("type", "button"); if ("string" == typeof a) { a = a.split(" "); for (var c = a.length; c--;) d.addClass(a[c]) } d.setHtml(b); return d };
      e.groupToButtons = function(b) {
          for (var a = [], d = (b = b.items) ? b.length : 0, c = 0; c < d; c += 1) { var f = b[c]; if (f instanceof CKEDITOR.ui.button || CKEDITOR.ui.richCombo && f instanceof CKEDITOR.ui.richCombo) f.$ = e.createToolbarButton(f), a.push(f) }
          return a
      }
  })();