/**
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

// Tool scripts for the sample pages.
// This file can be ignored and is not required to make use of CKEditor.

(function() {
  CKEDITOR.on("instanceReady", function(ev) {
    // Check for sample compliance.
    var editor = ev.editor,
      meta = CKEDITOR.document.$.getElementsByName(
        "ckeditor-sample-required-plugins"
      ),
      requires = meta.length
        ? CKEDITOR.dom.element
            .get(meta[0])
            .getAttribute("content")
            .split(",")
        : [],
      missing = [],
      i;

    if (requires.length) {
      for (i = 0; i < requires.length; i++) {
        if (!editor.plugins[requires[i]])
          missing.push("<code>" + requires[i] + "</code>");
      }

      if (missing.length) {
        var warn = CKEDITOR.dom.element.createFromHtml(
          '<div class="warning">' +
            "<span>To fully experience this demo, the " +
            missing.join(", ") +
            " plugin" +
            (missing.length > 1 ? "s are" : " is") +
            " required.</span>" +
            "</div>"
        );
        warn.insertBefore(editor.container);
      }
    }

    // Set icons.
    var doc = new CKEDITOR.dom.document(document),
      icons = doc.find(".button_icon");

    for (i = 0; i < icons.count(); i++) {
      var icon = icons.getItem(i),
        name = icon.getAttribute("data-icon"),
        style = CKEDITOR.skin.getIconStyle(name, CKEDITOR.lang.dir == "rtl");

      icon.addClass("cke_button_icon");
      icon.addClass("cke_button__" + name + "_icon");
      icon.setAttribute("style", style);
      icon.setStyle("float", "none");
    }
  });
})();