/* Celena Admin — инициализация celenaEditor.
 * - Экспортирует window.CSRF_TOKEN (редактор его использует)
 * - Перехватывает ajax=UploadImages → /admin/media/upload-images
 * - Перед submit формы синхронизирует содержимое contenteditable с textarea
 */
(function ($) {
  'use strict';

  var meta = document.querySelector('meta[name="csrf-token"]');
  window.CSRF_TOKEN = meta ? meta.getAttribute('content') : '';

  // Перенаправляем upload-запросы редактора на наш endpoint
  $.ajaxPrefilter(function (options) {
    if (options.data instanceof FormData) {
      var marker = options.data.get('ajax');
      if (marker === 'UploadImages') {
        options.url = '/admin/media/upload-images';
      }
    }
  });

  $(function () {
    var $editors = $('textarea[data-celena-editor]');
    if (!$editors.length) return;
    $editors.celenaEditor({
      individualToolbar: true,
      fixed: false
    });

    // Перед submit формы пишем HTML contenteditable обратно в textarea
    $('form').on('submit', function () {
      $(this).find('textarea[data-celena-editor]').each(function () {
        var $ta = $(this);
        var $ed = $ta.nextAll('.celenaEditor').first();
        if ($ed.length) {
          $ta.val($ed.html());
        }
      });
    });
  });

  // Плагинный $.server_say — редактор его вызывает при ошибке.
  if (!$.server_say) {
    $.server_say = function (opts) {
      var text = (opts && opts.text) || 'Ошибка загрузки.';
      if (window.Celena && window.Celena.alert) window.Celena.alert(text, { type: 'error' });
      else alert(text);
    };
  }
})(jQuery);
