(() => {
  const MAX_WAIT_MS = 20000; // Максимальное время ожидания загрузки плагина, мс
  const startedAt = Date.now();

  const intervalId = setInterval(() => {
    if (Date.now() - startedAt >= MAX_WAIT_MS) {
      clearInterval(intervalId);

      return;
    }

    if (!window?.recode?.paymentPage?.init) {
      return;
    }

    clearInterval(intervalId);

    window.recode.paymentPage.init({
      mode: 'dev', // 'dev' | 'prod'
      logger: false, // выводить логи в консоль: true | false

      // Кастомные стили и скрипты клиента (массивы URL, подгружаются на странице)
      css: ['/pl/layout/93315/2/styles.css'],
      js: [],

      // Контакты для связи с поддержкой
      contactUs: {
        contactUrl: '/cms/system/contact', // ссылка на форму/страницы поддержки
        whatsapp: '+77751165849', // номер WhatsApp или null
        telegram: 'siladopuskabot', // логин Telegram без @ или null
        max: 'https://siladopuska.ru/pl/maxstart?botId=1526', // ссылка на подключение Max или null
      },

      // Ссылки на документы
      documents: {
        offer: '/oferta', // оферта
        privacy: 'https://viktoriaraidos.ru/politika-konfidenicaolnosti', // политика конфиденциальности
      },

      // Частичная оплата
      partialPay: {
        variant: 'compact', // 'default' | 'compact'
      },

      // Название и логотип проекта в шапке
      projectName: {
        logo: null, // URL логотипа или null
        text: null, // текстовое название или null
      },

      // Блок информации о пользователе
      userInfo: {
        shouldExpand: true, // раскрывать ли блок по умолчанию
      },

      // Примечание о банковской рассрочке
      showBankInstallmentNote: true,

      // Прочие методы оплаты
      otherMethods: {
        accordion: {
          enabled: true, // оборачивать прочие методы в аккордеон
          defaultExpanded: false, // раскрыт ли аккордеон по умолчанию
        },
      },

      // Основные (быстрые) методы оплаты
      mainPaymentMethods: {
        isEnabled: true,
        russianCard: '.sberbank-auto-acquiring-block', // селектор оплаты картой РФ или null
        worldCard: '[id^="stripe"]', // селектор зарубежной карты или null
      },

      // Ограничения методов оплаты по офферам
      paymentMethodRestrictions: {
        isEnabled: false,
        mode: 'activateTab', // 'hide' | 'activateTab'
        onlyCardOfferIds: [], // ID офферов: только оплата картой
        onlyInstallmentOfferIds: [], // ID офферов: только рассрочка
        hideMainMethodsOnInstallment: true, // прятать основные методы на рассрочке
        ignoreOnPartialPayment: true, // игнорировать ограничения при частичной оплате
      },
    });
  }, 100);
})();