(function(){

    $(`<style>
    
    .block-post time {font-weight: 700;}
    .passle-view__featured-post h2{font-size: 48px !important; line-height: 56px !important;}
    @media(max-width:768px){.passle-view__featured-post h2{font-size: 28px !important; line-height: 36px !important;}}
    #SearchBarContainer,.search-bar__sort-order{border-radius: 0px !important;}
    #SearchBarContainer input::placeholder,.search-bar__sort-order{color: #999999 !important;}
    .post-view time, .post-view small {color: #333333;font-weight: 700;font-size: 12px;}
    .quote-text {font-family: Alegreya Sans, sans-serif !important;font-style: italic;font-size: 26px;}
    .post-view .author-avatar, .post-view .avatar {width: 70px !important;height: 70px!important;margin-right: 20px !important;}
    .team-view h2 {font-size: 24px !important;margin-bottom: 12px !important;}
    .team-view .filters__item-count {font-size: 12px;color: #333333;font-weight: 700;}
    .header-active .site-header > .container {z-index: 100; background-color: rgba(56, 61, 74, 0.95); }
    .header-active .block--main-menu-mobile ul > li a {color: #fff;}
    .header-active .block--top-menu ul.menu a {color: #fff;}
    .navigation-bar { padding: 15px }
    .header-active .mobile__wrapper .search a {
        color: #fff;
    }
    
    .header-active img.logo__colour {
          display: none;
      }
    
    
    .header-active img.logo__white {
          display: block;
      }
    
    </style>`).appendTo("head")
    
    var d = new Date().getFullYear();
    $('span.year').text(d);
    
    /// Variables
    
    let header = $('header');
    let headerDataAttr = header.attr('data-active-megamenu');
    let mobileMenuItems = $('a*[data-megamenu]');
    let mobileMenuItemToggles = $('a*[data-megamenu]').next();
    let mobileSubMenus = $('div*[data-megamenu]');
    
    /// Handle menu(s) state
    
    const openRootMenu = () => $('#main-nav').slideDown(100);
    const closeRootMenu = () => $('#main-nav').slideUp(100);
    
    const closeSubMenus = () => $(`div*[data-megamenu]`).slideUp(100);
    
    const closeMobileMenu = () => {
        closeRootMenu();
        closeSubMenus();
        $('.site-header__burger').toggleClass('is-active')
    	$('body').removeClass('header-active');
    }
    
    const OpenMobileMenu = () => openRootMenu();
    
    /// Desktop menu
    
    // Uses just JS instead of Jquery as a workaround for a hover issue, can be fixed
    
    let desktopMenuItems = document.querySelectorAll('ul.menu-desktop > li [data-megamenu]');
    
    desktopMenuItems.forEach(menuItem => {
        menuItem.addEventListener('mouseenter', () => {
         closeSubMenus();
         header.attr('data-active-megamenu', menuItem.dataset.megamenu)
          $(`div*[data-megamenu=${header.attr('data-active-megamenu')}]`).slideDown(100);
        })
    })
    
    
    /// Mobile menu
    
    const mobileMenuHandler = () => {
    
        event.preventDefault();
        if ($('body').hasClass('header-active')) {
            $('body').removeClass('header-active')
            closeRootMenu();
            closeSubMenus();
        } else {
             $('body').addClass('header-active')
             openRootMenu();
        }
    	$('.site-header__burger').toggleClass('is-active');
    }
    
    
    
    /// Menu toggle
    
    $('#main-nav-trigger').on('click', mobileMenuHandler);
    
    /// Expand main and sub menus
    
    mobileMenuItems.each(function(index) {
       $(this).next().click(function() {
         header.attr('data-active-megamenu', mobileMenuItems[index].dataset.megamenu);
         closeSubMenus();
         closeRootMenu();
          $(`div*[data-megamenu=${header.attr('data-active-megamenu')}]`).show(100);
          $('.region--mega-menu').show(100);
    
          /// Back button on submenus
    
          $(`div*[data-megamenu=${header.attr('data-active-megamenu')}] .megamenu-back`).click(() => {
              closeSubMenus();
              openRootMenu();
          });
        })
    })
    
    
    /// Navbar: layout changes on scroll down
    
    $(window).scroll(function() {
        if ($(document).scrollTop() > 0 && $(document).width() > 768) {
          $('header').addClass('has-scrolled');
        } else {
            $('header').removeClass('has-scrolled');
        }
      });
    
    
    /// Listen to viewport changes and force mobile menu to close if open
    
    $(window).resize(function() {
        if ($(document).width() > 768 && $('body').hasClass('header-active')) {
            closeRootMenu();
            closeMobileMenu();
        }
    })
    
    $('.reciteme').click(function (e) {
      e.preventDefault();
      loadService();
    });
    
    $('.tag-title').click(function () {
      var thisMenu = $(this).closest('.tag-menu');
      $('.tag-menu').not(thisMenu).removeClass('open');
      thisMenu.toggleClass('open');
    });
    
    $(document).click(function (e) {
      if (!$(e.target).parents('.tag-menu').length) {
        $('.tag-menu').removeClass('open');
      }
    });

    $('span.currentYear').text(new Date().getFullYear());
})();