let progressScales = {
	935856630: [245639, 13],
	935857245: [245640, 71],
	935860950: [245641, 36],
	935879850: [245642, 6],
}
//Айди_тренинга: [айди_шкалы, максимум_баллов]

$(function(){
    if (window.userInfo.isAdmin) {
        if (window.location.pathname == '/teach/control' ||
            window.location.pathname == '/teach/control/stream' ||
            window.location.pathname == '/teach/control/stream/index' ||
            window.location.pathname == '/pl/teach/control' || 
            window.location.pathname == '/pl/teach/control/stream' ||
            window.location.pathname == '/pl/teach/control/stream/index') {
  			$('head').append('<link href="https://script-shop.ru/pl/layout/100731/2/main-page.css" rel="stylesheet">')
            $('.bonus-block > div').prepend(window.accountUserThumbnail.replace('50x50', '78x78'))
            async function loadNewsAndEvents() {
                try {
                    const newsData = await $.get('/news');

                    $('.builder-item', newsData).slice(0, 7).each(function() {
                        let $el = $(this);
                        let classes = $el.attr('class').split(/\s+/);

                        classes.forEach(function(cls) {
                            if (/^\d{2}-\d{2}$/.test(cls)) {
                                let newsDate = cls.replace('-', '.');
                                $('.news-block').append(`
									<a class="news" href="/news" target="__blank">
                                        <span class="news-date">${newsDate}</span>
                                        <div class="news-title">${$el.find('.f-name').text().trim()}</div>
                                    </a>
                                `);
                            }
                        });
                    });

                    const eventsData = await $.get('/upcoming-events');

                    let nowMs = Date.now();
                    let thresholdMs = nowMs - 60 * 60 * 1000;
                    let nearest = null;
                    let nearestMs = null;

                    $('.lite-page .lt-block', eventsData).each(function() {
                        var $block = $(this);
                        var eventMs = getEventMoscowMs($block);

                        if (eventMs === null) return;

                        if (eventMs > thresholdMs) {
                            if (nearestMs === null || eventMs < nearestMs) {
                                nearestMs = eventMs;
                                nearest = $block;
                            }
                        }
                    });

                    if (nearest) {
                        let eventTitle = nearest.find('.event-title').text().trim();
                        let eventSubtitle = nearest.find('.event-subtitle').text().trim();
                        let eventDate = nearest.find('.event-date').text().trim();
                        let eventTime = nearest.find('.event-time').text().trim();
                        let eventLink = nearest.find('.event-link').text().trim();

                        let months = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
                                      'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];

                        let textMonth = months[parseInt(eventDate.split('.')[1], 10) - 1];

                        let eventMs = nearestMs;

                        $('.gc-main-content.with-left-menu .main-page-block > .container').prepend(`
                            <div class="main-page-header-block">
                                <div class="title-wrapper">
                                    <div class="title-left">
                                        <h4>Добро пожаловать в</h4>
                                        <h3>Клуб 
                                            <span>АФиНА</span>
                                        </h3>
                                        <span>Ваше профессиональное пространство для роста, уверенности и поддержки</span>
                                    </div>
									<div class="title-right">
										<a class="notification-link" href="javascript:void(0)"></a>
									</div>
                                </div>
                                <div class="first-blocks">
                                    <div class="upcoming-events">
                                        <div class="upcoming-events-left">
                                            <div>
                                                <img src="/fileservice/file/download/a/954256/sc/141/h/ee87617084ac48bebc8310246c58a21b.png">
                                                <div class="upcoming-events-header">
                                                    <h3>Ближайшее мероприятие</h3>
                                                    <div class="event-date">${eventDate.split('.')[0] + ' ' + textMonth}</div>
                                                    <div class="event-time">${eventTime} МСК</div>
                                                </div>
                                            </div>
                                            <div class="event-title">${eventTitle}</div>
                                            <div class="event-subtitle">${eventSubtitle}</div>
                                            <button class="event-link">Подробнее</button>
                                        </div>
                                        <div class="upcoming-events-right">
                                            <h3>До начала</h3>
                                            <div class="event-counter">
                                                <div class="days"><h3>0</h3><span>Дней</span></div>
                                                <div class="hours"><h3>0</h3><span>Часов</span></div>
                                                <div class="minuts"><h3>0</h3><span>Минут</span></div>
                                            </div>
                                            <div class="upcoming-events-calendar">
                                                <h3>Добавить в календарь:</h3>
                                                <div class="external-calendars">
                                                    <a class="google-calendar" href="javascript:void(0)">Google</a>
                                                    <a class="apple-calendar" href="javascript:void(0)">Apple</a>
                                                    <a class="mail-calendar" href="javascript:void(0)">Mail</a>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="first-right-blocks">
                                        <div>
                                            <img src="/fileservice/file/download/a/954256/sc/219/h/53909657a8e7ee3eb6b61595f4fd45cd.png">
                                            <h3>Прямые эфиры</h3>
                                            <span>Актуальные темы и ответы экспертов</span>
                                            <a href="/teach/control/stream/view/id/935929343">Перейти</a>
                                        </div>
                                        <div>
                                            <img src="/fileservice/file/download/a/954256/sc/24/h/76d029060f9235e855ea19e49818e3b9.png">
                                            <h3>Библиотека вебинаров</h3>
                                            <span>Записи эфиров. Разборы, практические материалы</span>
                                            <a href="/teach/control/stream/view/id/935843279">Смотреть</a>
                                        </div>
                                        <div>
                                            <img src="/fileservice/file/download/a/954256/sc/99/h/c2678e7bb4d453d0d32a0524f20598e9.png">
                                            <h3>Библиотека курсов</h3>
                                            <span>Пошаговые программы для вашего роста</span>
                                            <a href="/teach/control/stream/view/id/935922230">Смотреть</a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        `);

                        $('.upcoming-events-left button').click(function(){
                            window.open(eventLink, '_blank');
                        });


                        if (eventMs) {
                            let counterInterval = null;

                            function updateCounter() {
                                let diff = eventMs - Date.now();

                                if (diff <= 0) {
                                    $('.event-counter .days h3').text(0);
                                    $('.event-counter .days span').text(pluralize(0, ['День', 'Дня', 'Дней']));
                                    $('.event-counter .hours h3').text(0);
                                    $('.event-counter .hours span').text(pluralize(0, ['Час', 'Часа', 'Часов']));
                                    $('.event-counter .minuts h3').text(0);
                                    $('.event-counter .minuts span').text(pluralize(0, ['Минута', 'Минуты', 'Минут']));
                                    if (counterInterval) {
                                        clearInterval(counterInterval);
                                        counterInterval = null;
                                    }
                                    return;
                                }

                                let totalMinutes = Math.ceil(diff / 60000);
                                let days = Math.floor(totalMinutes / (60 * 24));
                                let hours = Math.floor((totalMinutes - days * 60 * 24) / 60);
                                let minutes = totalMinutes - days * 60 * 24 - hours * 60;

                                $('.event-counter .days h3').text(days);
                                $('.event-counter .days span').text(pluralize(days, ['День', 'Дня', 'Дней']));

                                $('.event-counter .hours h3').text(hours);
                                $('.event-counter .hours span').text(pluralize(hours, ['Час', 'Часа', 'Часов']));

                                $('.event-counter .minuts h3').text(minutes);
                                $('.event-counter .minuts span').text(pluralize(minutes, ['Минута', 'Минуты', 'Минут']));
                            }

                            updateCounter();

                            let msToNextMinute = 60000 - (Date.now() % 60000);
                            setTimeout(function() {
                                updateCounter();
                                counterInterval = setInterval(updateCounter, 60000);
                            }, msToNextMinute);
                        }


                        let calEvent = {
                            title: eventTitle,
                            description: eventSubtitle + (eventLink ? '\n\nСсылка: ' + eventLink : ''),
                            startMs: eventMs,
                            endMs: eventMs + 60 * 60 * 1000,
                            location: 'Клуб АФиНА'
                        };

                        // Google Calendar
                        $('.google-calendar').click(function() {
                            let url = buildGoogleCalendarUrl(calEvent);
                            window.open(url, '_blank');
                        });


                        $('.apple-calendar').click(function() {
                            let icsContent = buildIcsContent(calEvent);
                            let blob = new Blob([icsContent], { type: 'text/calendar;charset=utf-8' });
                            let url = URL.createObjectURL(blob);
                            let a = document.createElement('a');
                            a.href = url;
                            a.download = 'event.ics';
                            document.body.appendChild(a);
                            a.click();
                            document.body.removeChild(a);
                            URL.revokeObjectURL(url);
                        });


                        $('.mail-calendar').click(function() {
                            let icsContent = buildIcsContent(calEvent);
                            let blob = new Blob([icsContent], { type: 'text/calendar;charset=utf-8' });
                            let url = URL.createObjectURL(blob);
                            let a = document.createElement('a');
                            a.href = url;
                            a.download = 'event.ics';
                            document.body.appendChild(a);
                            a.click();
                            document.body.removeChild(a);
                            URL.revokeObjectURL(url);
                        });
                    }
                    
                    const notificationData = await $.getJSON('/notifications/notifications/viewed');
                    
                    $('.title-wrapper .title-right').append(`
							<div class="notification-subitems">
                                <div class="notification-subitems-header">
                                    Уведомления
                                    <a class="viewed-all-link" href="javascript:void(0)">Отметить прочитанными</a>
                                </div>
                                <a href="/notifications/notifications/all" target="_blank" class="all-notifications-link">Все уведомления</a>
							</div>
                    `)
                    
                    $('.notification-link').append(`
						<div class="notification-link-count">${notificationData.groups.count.new}</div>
					`)
                    
                    notificationData.groups.groups.forEach(function(e,i) {
                        if (e.helper != undefined) {
                            let status = (e.status == 'viewed') ? 'viewed' : '';
                            $('.notification-subitems .all-notifications-link').before(`
                                <div class="notification-block">
                                    <!--a class="notification-close" href="javascript:void(0)"></a-->
                                    <a href="${e.helper.click_url}" class="${status}">
                                        ${e.helper.first_user_thumbnail}
                                        <div class="notification-content">
                                            <div class="notification-text">${e.helper.content}</div>
                                            <div class="notification-date">${e.helper.display_date}</div>
                                        </div>
                                    </a>
                                </div>
                            `)
                        }
                    })
                    
                    const $link = $('.notification-link');
                    const $subitems = $('.notification-subitems');

                    // Клик по ссылке — toggle показать/скрыть
                    $link.on('click', function (e) {
                        e.stopPropagation(); // чтобы клик не дошёл до document
                        $subitems.toggle();
                    });

                    // Клик вне — скрываем
                    $(document).on('click', function (e) {
                        if (!$(e.target).closest('.notification-subitems').length &&
                            !$(e.target).closest('.notification-link').length) {
                            $subitems.hide();
                        }
                    });
                    
                    
                    const courseData = await $.get('/teach/control/stream/view/id/935922230');
                    if (!$('.introductory-lesson').length) {

                        $('.my-materials-header').after(`
                            <table class="stream-table new">
                                <tbody></tbody>
                            </table>
                        `)

                        $('.stream-table tr', courseData).slice(0, 3).each(function(i,e) {
                            $(e).appendTo('.stream-table.new tbody')
                        })

                        $('.stream-table.new tr').each((i,e)=>{ 
                            let image = $(e).attr('data-training-image');
                            if (image!==undefined && image !== '') {  
                                $(e).find('.stream-title').before('<div class="stream-img"></div>').parent().find('.stream-img').append(`<img src="${removeThumbnail(image)}">`);
                            }
                            $(e).find('.stream-title, .stream-title + div').wrapAll('<div class="first-info"></div>')
                        })

                        $.each(progressScales, function(key, value) {
                            let scaleId  = value[0]; // 245639
                            let maxCount = value[1]; // 13
                            let thisCount = $(`.xdget-trainingAchievements tr a[href="/pl/user/scale/view-results?id=${scaleId}&userId=${window.accountUserId}"]`, courseData).parent().next().find('.badge').text().split(' ')[0]
                            let percent = thisCount / maxCount * 100

                            $(`.stream-table.new tr[data-training-id="${key}"] .first-info`).append(`
                                <div class="stream-progress">
                                    <div class="stream-progress-wrap">
                                        <div class="stream-progress-scale" style="width:${percent}%"></div>
                                    </div>
                                    <div class="stream-progress-percent">${percent}%</div>
                                </div>
                            `)

                            //console.log('key:', key, '| first:', first, '| second:', second);
                        });

                        function removeThumbnail(string) {
                          const aPart = string.match(/\/a\/\d+\/sc\/\d+/);
                          const hPart = string.substring(string.indexOf('thumbnail') + 10, string.indexOf('/s/'));
                          return `/fileservice/file/download${aPart}/${hPart}`;
                        }

                        const lastLessonsData = await $.get('/last_lessons')

                        let lessonObjects = $('.lesson-objects', lastLessonsData).text().trim().split('\n')

                        lessonObjects.forEach(function(e){
                            $(`.stream-table.new tr[data-training-id="${e.split(';')[0]}"] a`).append(`
                                <div class="last-lesson-info">
                                    <span>Продолжить обучение</span>
                                    <div class="lesson-name">${e.split(';')[2]}</div>
                                </div>
                            `)
                        })
                    }
                } catch (err) {
                    console.error('Ошибка загрузки:', err);
                }
            }


            function pluralize(n, forms) {
                let abs = Math.abs(n) % 100;
                let lastDigit = abs % 10;

                if (abs > 10 && abs < 20) return forms[2];
                if (lastDigit > 1 && lastDigit < 5) return forms[1];
                if (lastDigit === 1) return forms[0];
                return forms[2];
            }


            function getEventMoscowMs($block) {
                var dateText = $block.find('.event-date .f-text').text().trim();
                var timeText = $block.find('.event-time .f-text').text().trim();

                if (!dateText || !timeText) return null;

                var dateParts = dateText.split('.');
                if (dateParts.length !== 3) return null;

                var day = parseInt(dateParts[0], 10);
                var month = parseInt(dateParts[1], 10) - 1;
                var year = parseInt(dateParts[2], 10);

                var timeParts = timeText.split(':');
                if (timeParts.length < 2) return null;

                var hours = parseInt(timeParts[0], 10);
                var minutes = parseInt(timeParts[1], 10);

                return Date.UTC(year, month, day, hours - 3, minutes, 0, 0);
            }


            function formatGoogleDate(ms) {
                let d = new Date(ms);
                let year = d.getUTCFullYear();
                let month = String(d.getUTCMonth() + 1).padStart(2, '0');
                let day = String(d.getUTCDate()).padStart(2, '0');
                let hours = String(d.getUTCHours()).padStart(2, '0');
                let minutes = String(d.getUTCMinutes()).padStart(2, '0');
                let seconds = String(d.getUTCSeconds()).padStart(2, '0');
                return year + month + day + 'T' + hours + minutes + seconds + 'Z';
            }


            function formatIcsDate(ms) {
                let d = new Date(ms);
                let year = d.getUTCFullYear();
                let month = String(d.getUTCMonth() + 1).padStart(2, '0');
                let day = String(d.getUTCDate()).padStart(2, '0');
                let hours = String(d.getUTCHours()).padStart(2, '0');
                let minutes = String(d.getUTCMinutes()).padStart(2, '0');
                let seconds = String(d.getUTCSeconds()).padStart(2, '0');
                return year + month + day + 'T' + hours + minutes + seconds + 'Z';
            }


            function escapeIcs(text) {
                if (!text) return '';
                return text
                    .replace(/\\/g, '\\\\')
                    .replace(/;/g, '\\;')
                    .replace(/,/g, '\\,')
                    .replace(/\n/g, '\\n');
            }


            function buildGoogleCalendarUrl(event) {
                let params = [
                    'action=TEMPLATE',
                    'text=' + encodeURIComponent(event.title),
                    'dates=' + formatGoogleDate(event.startMs) + '/' + formatGoogleDate(event.endMs),
                    'details=' + encodeURIComponent(event.description || ''),
                    'location=' + encodeURIComponent(event.location || '')
                ];
                return 'https://calendar.google.com/calendar/render?' + params.join('&');
            }


            function buildIcsContent(event) {
                let now = formatIcsDate(Date.now());
                let uid = 'event-' + Date.now() + '-' + Math.random().toString(36).substr(2, 9) + '@club-afina';

                let lines = [
                    'BEGIN:VCALENDAR',
                    'VERSION:2.0',
                    'PRODID:-//Club Afina//Calendar//RU',
                    'CALSCALE:GREGORIAN',
                    'METHOD:PUBLISH',
                    'BEGIN:VEVENT',
                    'UID:' + uid,
                    'DTSTAMP:' + now,
                    'DTSTART:' + formatIcsDate(event.startMs),
                    'DTEND:' + formatIcsDate(event.endMs),
                    'SUMMARY:' + escapeIcs(event.title),
                    'DESCRIPTION:' + escapeIcs(event.description || ''),
                    'LOCATION:' + escapeIcs(event.location || ''),
                    'BEGIN:VALARM',
                    'TRIGGER:-PT30M',
                    'ACTION:DISPLAY',
                    'DESCRIPTION:Напоминание о мероприятии',
                    'END:VALARM',
                    'END:VEVENT',
                    'END:VCALENDAR'
                ];

                return lines.join('\r\n');
            }

            loadNewsAndEvents();
        
            if ($('.calendar-block').length) {
                let otherPageLink = '/calendar-events';
                let calendarId = $('.calendar-block').attr('id')
                let todayDate = $('.calendar-wrapper .calendar-header .today-date');
                let daysWrapper = $('.calendar-body .days');
                let prevNextBtn = $('.calendar-wrapper .calendar-header .month-arrow');

                let date = new Date();
                let currentYear = date.getFullYear();
                let currentMonth = date.getMonth();
                let currentHour = date.getHours();
                let currentMinutes = date.getMinutes();

                let events = [];

                let lessonMonths = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'];
                let months = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];

                let firstDayMonth = new Date(currentYear, currentMonth, 0).getDay();
                let lastDateMonth = new Date(currentYear, currentMonth + 1, 0).getDate();
                let lastDayMonth = new Date(currentYear, currentMonth, lastDateMonth).getDay();
                let lastDateLastMonth = new Date(currentYear, currentMonth, 0).getDate();


                /*Выводим календарь*/
                let updateCalendar = function() {
                    daysWrapper.children().remove();
                    firstDayMonth = new Date(currentYear, currentMonth, 0).getDay();
                    lastDateMonth = new Date(currentYear, currentMonth + 1, 0).getDate();
                    lastDayMonth = new Date(currentYear, currentMonth, lastDateMonth).getDay();
                    lastDateLastMonth = new Date(currentYear, currentMonth, 0).getDate();

                    /*Выводим числа предыдущего месяца*/
                    for (let i=firstDayMonth; i>0; i--) {
                        daysWrapper.append(`<div class="another">${lastDateLastMonth - i + 1}</div>`);
                    }

                    /*Ставим числа текущего месяца с событиями и текущим числом*/
                    for (let i=1; i<=lastDateMonth; i++) {
                        let today = i === date.getDate() && currentMonth === new Date().getMonth() && currentYear === new Date().getFullYear() ? 'today' : '';
                        daysWrapper.append(`<div day=${i} class=${today}>${i}</div>`);
                        let event = []
                        events.forEach(function(e) {
                            if (i == e.lessonDate.split('/')[0] && currentMonth == e.lessonDate.split('/')[1] && currentYear == e.lessonDate.split('/')[2]) {
                                event.push(JSON.stringify(e));
                                daysWrapper.find(`div[day=${i}]`).addClass('event').attr('event-data', `[ ${event}]`)
                            }
                        })
                    }

                    /*Выводим числа следующего месяца*/
                    for (let i=lastDayMonth; i<7; i++) {
                        if (lastDayMonth > 0) {
                            daysWrapper.append(`<div class="another">${i -lastDayMonth + 1}</div>`);
                        }
                    }

                    /*Месяц и год в шапке*/
                    todayDate.text(`${months[currentMonth]} ${currentYear}`);

                    /*Вывод события*/
                    daysWrapper.find('div').click(function(){
                        if ($(this).attr('event-data').length) {
                            $('.calendar-events').remove();
                            $('.calendar-wrapper').append(`<div class="calendar-events"><h3>Активности</h3></div>`)
                            JSON.parse($(this).attr('event-data')).forEach(function(e){
                                console.log(Number(e.lessonDate.split('/')[1]) + 1)
                                $('.calendar-events').append(`<a href=${e.lessonLink}><div class='event-name'>${e.lessonName}</div><div class='event-date'>${e.lessonDate.split('/')[0] + '.' + (Number(e.lessonDate.split('/')[1]) + 1) + '.' + e.lessonDate.split('/')[2]}</div><div class='event-time'>${e.lessonTime}</div></a>`)
                            })
                        }
                    })
                }

                /*Парсинг*/
                function parseLessons(href) {
                    $.get(href, function(data) {
                        var PageDom = $('<xxx></xxx>').append($.parseHTML(data));
                        PageDom.find('.lesson-list li').each(function(i ,e) {
                            let parseLessonDate = '';
                            let parseLessonName = '';
                            let parseLessonLink = '';
                            let parseLessonTime = '';
                            let lessonDate = $(e).find('.user-state-label.lesson-date').text().replace('Недоступен до', '').replace('Дата и время начала', '').trim();

                            /*Получаем данные с уроков. Начало*/
                            if (lessonDate.includes('вчера')) {
                                parseLessonTime = lessonDate.split(' ')[1]
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim();
                                if (date.getDate() == 1 && date.getMonth() > 0) {
                                    parseLessonDate = lastDateLastMonth + '/' + (date.getMonth() - 1) + '/' + date.getFullYear()
                                } else if (date.getDate() == 1 && date.getMonth() == 0) {
                                    parseLessonDate = lastDateLastMonth + '/' + 11 + '/' + (date.getFullYear() - 1)
                                } else {
                                    parseLessonDate = date.getDate() - 1 + '/' + date.getMonth() + '/' + date.getFullYear()
                                }
                            } else if (lessonDate.includes('завтра')) {
                                parseLessonTime = lessonDate.split(' ')[1]
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim()
                                if (date.getDate() == lastDateLastMonth && date.getMonth() < 11) {
                                    parseLessonDate = 1 + '/' + (date.getMonth() + 1) + '/' + date.getFullYear()
                                } else if (date.getDate() == lastDateLastMonth && date.getMonth() == 11) {
                                    parseLessonDate = 1 + '/' + 0 + '/' + (date.getFullYear() + 1)
                                } else {
                                    parseLessonDate = (date.getDate() + 1) + '/' + date.getMonth() + '/' + date.getFullYear()
                                }
                            } else if (lessonDate.includes('сегодня')) {
                                parseLessonTime = lessonDate.split(' ')[1]
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim()
                                parseLessonDate = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear()
                            } else if (lessonDate.includes('только что')) {
                                parseLessonTime = date.getHours() + ':' + date.getMinutes()
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim()
                                parseLessonDate = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear()
                            } else if (lessonDate.includes('назад')) {
                                if (date.getMinutes() - lessonDate.split(' ')[0] < 0 && date.getHours() > 0) {
                                    parseLessonTime = '0' + (currentHour - 1) + ':' + (60 + date.getMinutes() - lessonDate.split(' ')[0])
                                } else if ((date.getMinutes() - lessonDate.split(' ')[0] >= 0) && (date.getMinutes() - lessonDate.split(' ')[0] > 9)) {
                                    parseLessonTime = '0' + currentHour + ':' + (date.getMinutes() - lessonDate.split(' ')[0])
                                } else if (date.getMinutes() - lessonDate.split(' ')[0] >= 0 && date.getMinutes() - lessonDate.split(' ')[0] < 10) {
                                    parseLessonTime = '0' + currentHour + ':' + '0' + (date.getMinutes() - lessonDate.split(' ')[0])
                                } else {
                                    parseLessonTime = 23 + ':' + (60 + date.getMinutes() - lessonDate.split(' ')[0])
                                }
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim()
                                if (currentHour == 0 && lessonDate.replace(/[^0-9]/g, '') < currentMinutes) {
                                    if (date.getDate() == 1 && date.getMonth() > 0) {
                                        parseLessonDate = lastDateLastMonth + '/' + (date.getMonth() - 1) + '/' + date.getFullYear()
                                    } else if (date.getDate() == 1 && date.getMonth() == 0) {
                                        parseLessonDate = lastDateLastMonth + '/' + 11 + '/' + (date.getFullYear() - 1)
                                    } else {
                                        parseLessonDate = date.getDate() - 1 + '/' + date.getMonth() + '/' + date.getFullYear()
                                    }
                                } else {
                                    parseLessonDate = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear()
                                }
                            } else if (lessonDate.includes(':')) {
                                parseLessonTime = lessonDate.split(' ')[3]
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim()
                                if (lessonDate.split(' ')[1].split('')[0] == '0') {
                                    parseLessonDate = lessonDate.split(' ')[1].split('')[1] + '/' + lessonMonths.indexOf(lessonDate.split(' ')[2]) + '/' + date.getFullYear()
                                } else {
                                    parseLessonDate = lessonDate.split(' ')[1] + '/' + lessonMonths.indexOf(lessonDate.split(' ')[2]) + '/' + date.getFullYear()
                                }
                            } else if (!lessonDate.length){
                                return	
                            } else {
                                parseLessonTime = '00:00';
                                parseLessonLink = $(e).find('.link.title').attr('href');
                                parseLessonName = $(e).find('.link.title').text().replace('просмотрено','').trim()
                                if (lessonDate.split(' ')[1].split('')[0] == '0') {
                                    parseLessonDate = lessonDate.split(' ')[1].split('')[1] + '/' + lessonMonths.indexOf(lessonDate.split(' ')[2]) + '/' + lessonDate.split(' ')[3]
                                } else {
                                    parseLessonDate = lessonDate.split(' ')[1] + '/' + lessonMonths.indexOf(lessonDate.split(' ')[2]) + '/' + lessonDate.split(' ')[3]
                                }
                            }
                            /*Получаем данные с уроков. Конец*/

                            events.push({
                                lessonDate:parseLessonDate,
                                lessonName:parseLessonName,
                                lessonLink:parseLessonLink,
                                lessonTime:parseLessonTime
                            })
                        })
                        var training = PageDom.find('.stream-table tr a');
                        if(training.length) {
                            training.each(function(){
                                parseLessons($(this).attr("href"));
                            });
                        }
                    updateCalendar();
                    })
                }

                /*Проверка на указание тренинга*/
                if (calendarId.includes('xdgetr')) {
                    parseLessons('/teach/control')
                } else {
                    parseLessons('/teach/control/stream/view/id/' + calendarId);
                }

                /*Получаем данные с другой страницы*/
                if ($('.calendar-block').hasClass('with-page')) {
                    $.get(otherPageLink, function(data) {
                        let pageEvents = $('.events', data).text().trim();
                        for (let i=0; i<pageEvents.split(';').length; i++) {
                            let pageEventsDay = pageEvents.split(';')[i].split(',')[0].split('.')[0];
                            let pageEventsMonth = pageEvents.split(';')[i].split(',')[0].split('.')[1];
                            let pageEventYear = pageEvents.split(';')[i].split(',')[0].split('.')[2];
                            events.push({
                                lessonDate:pageEventsDay + '/' + (pageEventsMonth - 1) + '/' + pageEventYear,
                                lessonName:pageEvents.split(';')[i].split(',')[1],
                                lessonLink:pageEvents.split(';')[i].split(',')[2],
                                lessonTime:pageEvents.split(';')[i].split(',')[3]
                            })
                        }
                        let individualEvents = $('.individual-events-calendar', data).text().trim()
                        if (individualEvents.length > 0) {
                            for (let i=0; i<individualEvents.split(';').length; i++) {
                                let pageEventsDay = individualEvents.split(';')[i].split(',')[0].split('.')[0];
                                let pageEventsMonth = individualEvents.split(';')[i].split(',')[0].split('.')[1];
                                let pageEventYear = individualEvents.split(';')[i].split(',')[0].split('.')[2];
                                events.push({
                                    lessonDate:pageEventsDay + '/' + (pageEventsMonth - 1) + '/' + pageEventYear,
                                    lessonName:individualEvents.split(';')[i].split(',')[1],
                                    lessonLink:individualEvents.split(';')[i].split(',')[2],
                                    lessonTime:individualEvents.split(';')[i].split(',')[3]
                                })
                            }
                        }
                    })
                }


                /*Переход между месяцами*/
                prevNextBtn.each(function(i, e){
                    $(e).click(function(){
                        currentMonth = e.id === 'prev-month' ? currentMonth - 1 : currentMonth + 1;
                        if (currentMonth<0 || currentMonth>11) {
                            date = new Date(currentYear, currentMonth);
                            currentYear = date.getFullYear();
                            currentMonth = date.getMonth()
                        } else {
                            date = new Date();
                        }
                        updateCalendar();
                    })
                })
            }
            
            
            //Поисковая строка
            let timeout;
            $('.field-search').on('keyup', function(){
                $('.search-icon').addClass('load')
                clearTimeout(timeout);
                let inputVal = $(this);
                if (inputVal.val().length > 1) {
                    timeout = setTimeout(function() {
                        $.get(`/pl/search/search-lesson?q=${inputVal.val().toLowerCase()}`, function(data) {
                            $('.search-block .result-wrap').remove();
                            $('.search-block').append('<div class="result-wrap"></div>');
                            $('.search-icon').removeClass('load')
                            data.filterType.forEach(function(e) {
                                if (e.name == 'Все') {
                                    return
                                } else {
                                    $('.result-wrap').append(`
                                        <h3>${e.name}</h3>
                                    `)
                                    data.results.forEach(function(o) {
                                        $(`.result-wrap h3:contains(${o.categoryName})`).after(`
                                            <a href=${o.url}>
                                                <div class="result-text">
                                                    <div class="result-title">${o.title}</div>
                                                </div>
                                            </a>
                                        `);
                                        if (o.description.length) {
                                            $(`a[href="${o.url}"] .result-text`).append(`
                                                <div class="result-description">${o.description}</div>
                                            `)
                                        };
                                    })
                                    if (data.results.length == 0) {
                                        $('.result-wrap').append(`
                                            <h3>Ничего не найдено по запросу "${$('.field-search').val()}"</h3>
                                        `)
                                    }
                                }
                            })

                        })
                    },2000)
                } else {
                    $('.search-icon').removeClass('load');
                    $('.search-block .result-wrap').remove();

                }
            });

            $('.search-clear').click(function(){
                $('.field-search').val('');
                $('.search-block .result-wrap').remove();
            });

            $(document).click(function(e){
                if (!e.target.closest('.search-block')) {
                        $('.search-block .result-wrap').remove();
                }
            });
            
            
            /*Подвал*/
            $('.gc-main-content').append(`
				<div class="footer">
					<img class="footer-logo" src="/fileservice/file/download/a/954256/sc/428/h/d4a4f02f3aec7d3ce09df65dc440ad8e.png">
					<div class="footer-center">
						<a href="/pl/teach/control/lesson/view?id=350382526&editMode=0">Правила клуба</a>
						<a href="/pl/teach/control/lesson/view?id=350382527&editMode=0">Миссия клуба</a>
						<a href="/pl/teach/control/lesson/view?id=350382530&editMode=0">Кодекс этики клуба</a>
						<a href="/pl/teach/control/lesson/view?id=350382537&editMode=0">Видеогайды, как пользоваться платформой</a>
					</div>
					<div class="footer-right">
						<h3>Присоединяйтесь к нам</h3>
						<div class="social-block">
                            <a class="social-tg" href="/teach/control/stream"></a>
                            <a class="social-vk" href="/teach/control/stream"></a>
                            <a class="social-max" href="/teach/control/stream"></a>
						</div>
					</div>
				</div>
			`)
        }
    }
});