$(document).ready(function () {

    // Функция для получения оригинального изображения
    function getOriginalImage(url) {
        if (!url.includes('thumbnail')) return url; // если не миниатюра, используем как есть
        const aPart = url.match(/\/a\/\d+\/sc\/\d+/);
        const hPart = url.substring(url.indexOf('thumbnail') + 10, url.indexOf('/s/'));
        return `/fileservice/file/download${aPart}/${hPart}`;
    }

    $('.xdget-trainingList').each(function () {

        $(this).find('.stream-table tr').each(function () {
            const $tr = $(this);
            let image = $tr.attr('data-training-image');

            // &#10060; Уже обработан — выходим
            if ($tr.hasClass('has-img-checked')) return;

            const $a = $tr.find('a');

            // Оборачиваем текст ОДИН РАЗ
            if (!$a.find('.text-training').length) {
                $a.wrapInner('<div class="text-training" />');
            }

            // Если есть картинка
            if (image && image.trim() !== '') {

                // Получаем качественное изображение
                image = getOriginalImage(image);

                // &#10060; Картинка уже существует — не дублируем
                if (!$a.find('img[data-training-img="true"]').length) {
                    $a.prepend(
                        `<img src="${image}" alt="" data-training-img="true">`
                    );
                }

                $tr.addClass('has-img');
            }

            // Помечаем строку как обработанную
            $tr.addClass('has-img-checked');
        });

    });

});
