document.addEventListener('DOMContentLoaded', function () {
  // Проверяем ID пользователя - код выполняется только для определенных пользователей
  /* if (window.accountUserId !== 430164817 && window.accountUserId !== 474381284 && window.accountUserId !== 454646168) {
    return;
  } */

  const DATA_URL = 'https://sadko-academy.ru/chtm/profile/documents';

  // Маппинг стандартных URL на кастомные
  const URL_MAPPING = {
    'https://sadko-academy.ru/user/my/profile': 'https://sadko-academy.ru/my/profile',
    '/user/my/profile': '/my/profile',
    'https://sadko-academy.ru/pl/notifications/settings/my': 'https://sadko-academy.ru/my/notifications',
    '/pl/notifications/settings/my': '/my/notifications',
    'https://sadko-academy.ru/user/my/changePassword': 'https://sadko-academy.ru/my/changePassword',
    '/user/my/changePassword': '/my/changePassword',
    'https://sadko-academy.ru/pl/help/launcher': 'https://sadko-academy.ru/my/launcher',
    '/pl/help/launcher': '/my/launcher',
    'https://sadko-academy.ru/sales/control/userProduct/my': 'https://sadko-academy.ru/my/userProduct',
    '/sales/control/userProduct/my': '/my/userProduct',
    'https://sadko-academy.ru/pl/sales/promo-code/my-codes': 'https://sadko-academy.ru/my/my-codes',
    '/pl/sales/promo-code/my-codes': '/my/my-codes',
    'https://sadko-academy.ru/pl/chatium/school/enter': 'https://sadko-academy.ru/my/chatium',
    '/pl/chatium/school/enter': '/my/chatium',
    'https://sadko-academy.ru/pl/my': 'https://sadko-academy.ru/my/open-profile',
    '/pl/my': '/my/open-profile'
  };

  function replaceLinks(doc) {
    // Если документ не передан, используем основной документ
    if (!doc) doc = document;
    
    // Находим все ссылки в переданном документе
    const allLinks = doc.querySelectorAll('a[href]');
    
    allLinks.forEach(link => {
      const href = link.getAttribute('href');
      
      // Проверяем, есть ли это значение в маппинге
      if (URL_MAPPING[href]) {
        link.setAttribute('href', URL_MAPPING[href]);
      }
    });
  }

  function replaceLinksEverywhere() {
    // Заменяем ссылки в основном документе
    replaceLinks(document);
    
    // Заменяем ссылки внутри iframe
    const iframe = document.querySelector('#iframe');
    if (iframe && iframe.contentDocument) {
      replaceLinks(iframe.contentDocument);
    }
  }

  function addStudentDataSubitem() {
    const profileItem = Array.from(document.querySelectorAll('.main-menu-item'))
      .find(item => item.textContent.trim().startsWith('Профиль'));
    if (!profileItem) return;

    const body = profileItem.querySelector('.main-menu-item__body');
    if (!body) return;

    if (body.querySelector('.js-student-data-subitem')) return;

    const link = document.createElement('a');
    link.href = DATA_URL;
    link.className = 'main-menu-item__subitem js-student-data-subitem';

    const span = document.createElement('span');
    span.className = 'text-body main-menu-item__subitem-text';
    span.textContent = 'Данные ученика';

    link.appendChild(span);

    const firstProfileSubitem = Array
      .from(body.querySelectorAll('.main-menu-item__subitem'))
      .find(el => el.textContent.trim().startsWith('Профиль'));

    if (firstProfileSubitem && firstProfileSubitem.nextSibling) {
      body.insertBefore(link, firstProfileSubitem.nextSibling);
    } else {
      body.appendChild(link);
    }
  }

  addStudentDataSubitem();
  replaceLinksEverywhere();

  const menuRoot = document.querySelector('.main-menu');
  if (menuRoot && window.MutationObserver) {
    const observer = new MutationObserver(() => {
      addStudentDataSubitem();
      replaceLinksEverywhere();
    });
    observer.observe(menuRoot, { childList: true, subtree: true });
  }

  // Обработчик загрузки iframe для замены ссылок внутри него
  const iframe = document.querySelector('#iframe');
  if (iframe) {
    iframe.addEventListener('load', () => {
      replaceLinksEverywhere();
      
      // Наблюдаем за изменениями внутри iframe
      const iframeDoc = iframe.contentDocument;
      if (iframeDoc && window.MutationObserver) {
        const iframeObserver = new MutationObserver(() => {
          replaceLinks(iframeDoc);
        });
        iframeObserver.observe(iframeDoc.body, { childList: true, subtree: true });
      }
    });
  }

  let lastHref = location.href;
  setInterval(() => {
    if (location.href !== lastHref) {
      lastHref = location.href;
      addStudentDataSubitem();
      replaceLinksEverywhere();
    }
  }, 500);
});