MediaWikiVector

// Баннер "День рождения Regional At Best" (появляется 8 июля и до 12 сентября)

// ID баннера для localStorage
var rabBannerId = 'rab-birthday-banner-2024';
// Настроить — показывать баннер до 12 сентября:
var showBannerUntil = new Date();
showBannerUntil.setMonth(8); // Сентябрь (месяцы с нуля)
showBannerUntil.setDate(12); // 12 сентября
showBannerUntil.setHours(23,59,59,999);

// Проверяем дату — если нужно отображать всегда, убери или закомментируй этот блок
var now = new Date();
if (now > showBannerUntil) return;

// Не показывать если был скрыт пользователем
if (localStorage.getItem(rabBannerId) === 'hide') return;

// Создаём баннер
var banner = document.createElement('div');
banner.id = 'rab-birthday-banner';
banner.innerHTML = `
      Happy Birthday, Regional At Best!

          Альбому Regional At Best —  лет! Вышел 8 июля 2011 года.

          ×


`;

function getAlbumAge() {
  var now = new Date();
  var birth = new Date('2011-07-08T00:00:00');
  var age = now.getFullYear() - birth.getFullYear();
  // Если день рождения еще не был в этом году — минус год
  if (now.getMonth() < 6 || (now.getMonth() === 6 && now.getDate() < 8)) age--;
  return age;
}

// Вставляем баннер над контентом
mw.loader.using(['mediawiki.util'], function() {
  // Вставляем ПЕРЕД #content, если в vector
  var content = document.getElementById('content') || document.querySelector('.mw-body');
  if (content && !document.getElementById('rab-birthday-banner')) {
    content.parentNode.insertBefore(banner, content);

    // Вывод возраста
    var ageSpan = document.getElementById('rab-age');
    if (ageSpan) ageSpan.textContent = getAlbumAge();

    // Скрыть баннер при клике
    var closeBtn = document.getElementById('rab-banner-close');
    if (closeBtn) {
      closeBtn.addEventListener('click', function() {
        banner.style.display = 'none';
        localStorage.setItem(rabBannerId, 'hide');
      });
      // Наведение эффект
      closeBtn.addEventListener('mouseover', function() {
        closeBtn.style.background = '#A00015';
      });
      closeBtn.addEventListener('mouseout', function() {
        closeBtn.style.background = '#B90018';
      });
    }
  }
});