// source --> https://elanillounico.com/wp-content/plugins/concurso-ilustracion/assets/js/concurso-ilustracion.js?ver=1.0.11 
(function () {
    function textFromHtml(value) {
        var container = document.createElement('div');
        container.innerHTML = value || '';
        return container.textContent || container.innerText || '';
    }

    function updateCounter(textarea, wordCounter, charCounter) {
        var raw = textarea.value || '';

        if (window.tinymce) {
            var editor = window.tinymce.get(textarea.id);
            if (editor) {
                raw = editor.getContent({ format: 'html' });
            }
        }

        var text = textFromHtml(raw).replace(/\s+/g, ' ').trim();
        var words = text ? text.split(' ').length : 0;
        var chars = text.length;

        wordCounter.textContent = String(words);
        charCounter.textContent = String(chars);
    }

    document.addEventListener('DOMContentLoaded', function () {
        var textarea = document.getElementById('cil_content');
        var wordCounter = document.getElementById('cil_word_count');
        var charCounter = document.getElementById('cil_char_count');

        if (!textarea || !wordCounter || !charCounter) {
            return;
        }

        var refresh = function () {
            updateCounter(textarea, wordCounter, charCounter);
        };

        textarea.addEventListener('input', refresh);
        textarea.addEventListener('change', refresh);

        if (window.tinymce) {
            var attachTinyMce = function () {
                var editor = window.tinymce.get(textarea.id);
                if (!editor) {
                    return false;
                }

                editor.on('keyup change input paste undo redo SetContent', refresh);
                refresh();
                return true;
            };

            if (!attachTinyMce()) {
                var attempts = 0;
                var interval = window.setInterval(function () {
                    attempts += 1;
                    if (attachTinyMce() || attempts > 20) {
                        window.clearInterval(interval);
                    }
                }, 250);
            }
        }

        refresh();
    });
})();