// 22-05-19

// Toggles search input field when search icon is clicked
$('.search-icon').click(function()
{
  $('.search-field').fadeToggle();
});

$('.search-icon').on('keydown', function(event)
{
	if (event.which === 32 || event.which === 13)
	{
		event.preventDefault();
		$('.search-field').fadeToggle();
	}
});

// Fades out the search field if it is open and translate, the navigation, or schools are clicked
$('.schools-dropdown > a, .translate-dropdown > a, .main-nav-icon').click(
  function()
  {
    if ($('.search-field').css('display') !== 'none')
    {
      $('.search-field').fadeOut();
    }
  }
);

// Remove empty links
function RemoveEmptyLinks()
{
  try
  {
    ElementEmptyCheck($('.top-bar-link'), undefined);
  }
  catch (error)
  {
    console.log(error);
  }
}

// Over ten items in a menu makes a new column
let dropdownsToWrap = $('.dropdown-wrap');
let numberOfItemsInAColumn = 10;
let groupCounter = 0;

function WrapDropdowns() {
  $(dropdownsToWrap).each(function (index) {
    let anchors = $(this).find('a');
    let numberOfItems = $(anchors).length;
    // if (numberOfItems > numberOfItemsInAColumn && $(window).width() < 768) {
    //   numberOfItemsInAColumn = Math.ceil(numberOfItems / 2);
    // }

    $(anchors).addClass('menu-' + index);
    $(anchors).wrapAll('<div class="row" />');

    if (numberOfItems > numberOfItemsInAColumn) {
      $(this).addClass('too-many-items');
    }

    $(anchors).each(function (index) {
      $(this).addClass('group-' + groupCounter);

      if ((index + 1) % numberOfItemsInAColumn === 0 && index !== 0) {
        groupCounter++;
      }
    });

    for (let i = 0; i <= groupCounter; i++) {
      if ($(this).hasClass('too-many-items')) {
        $('.menu-' + index + '.group-' + i).wrapAll('<div class = "col-12 col-lg-auto px-md-3" />');
      }

      else {
        $('.menu-' + index + '.group-' + i).wrapAll('<div class = "col-12 px-md-3" />');
      }
    }
  });
}

// Moves the topbar right side links into under-banner-utility when in mobile (< 992)
let topBarLinks = $('.top-bar-link');
let topBarLinksRound = $('.round-link-container');

function MoveTopBarLinks()
{
  try
  {
    ElementEmptyCheck($('.top-bar-link'), '992');
    ElementEmptyCheck($('.round-link-container'), '992');

    if (IsMobile())
    {
        if($(topBarLinks).exists())
        {
            $('.under-banner-utility').append($(topBarLinks));
        }

        else if($(topBarLinksRound).exists())
        {
            $('.under-banner-utility').append($(topBarLinksRound));
        }

    }

    else
    {
        if($(topBarLinks).exists())
        {
            $('.top-bar-title-wrapper').after($(topBarLinks));
        }

        else if($(topBarLinksRound).exists())
        {
            $('.header .container .row').append($(topBarLinksRound));
        }
    }
  }
  catch (error)
  {
    console.log('Top bar links to under banner did not work');
  }
}

// Checks if any of the dropdowns go off of the screen to the right and adds a class to them and moves them back on the screen
let dropdowns = $('.top-bar .dropdown-menu');
let dropdownOffset;
let arrowOffset;

function MoveOffscreenDropdowns()
{
  $(dropdowns).each(function()
  {
    $(this).show();
    dropdownOffset = $(window).width() - $(this).outerWidth() - 12;
    arrowOffset = $(this).offset().left;
    if ($(this).is(':off-right') && !$(this).hasClass('main-nav-dropdown'))
    {
      $(this).addClass('went-off-right');
      $(this).offset({ left: dropdownOffset });
      $(this).children('i').offset({ left: arrowOffset });
    }

    else
    {
      $(this).removeClass('went-off-right');
      $(this).css('left', '');
      $(this).children('i').css('left', '');
    }
    $(this).css('display', '');
  });

  $('.dropdown-menu.main-nav-dropdown').removeClass('went-off-right');
}

// Sets padding-top of the banner equal to the height of the top-bar because of the top-bar being absolutely positioned.
let topBar = $('.top-bar');
let nTopBarV3Height;
let underTopBarNav = $('.under-top-bar-nav');
let underTopBarNavHeight;
let banner = $('.banner');
let subPageHighTraffic = $('.high-traffic-icon-subpage-container');
let underBannerUtility = $('.under-banner-utility');
let navPlaceholder = $('.nav-placeholder');

function SetBannerTopPadding() {
  try {
      let topBarHeaderHeight = $('.top-bar-header').height();

      if (CheckMobile()) {
          $('header').css('padding-top', topBarHeaderHeight);
      } else {
          $('header').css('padding-top', '');
      }

  } catch (error) {}
}

function SetSubHighTrafficTopPadding()
{
  nTopBarV3Height = $(topBar).height();
  underTopBarNavHeight = $(underTopBarNav).height();

  if ($(topBar).css('position') === 'fixed' && !$('.nav-placeholder').exists())
  {
    $(subPageHighTraffic).css('padding-top', '');

    if ($('.banner').exists())
    {
      $(underBannerUtility).css('padding-top', '');
    }

    else
    {
      $(underBannerUtility).css('padding-top', nTopBarV3Height + 2);
    }
  }

  else if ($(topBar).css('position') !== 'fixed' && !$('.nav-placeholder').exists())
  {
    if (IsMobile())
    {
      $(subPageHighTraffic).css('padding-top', underTopBarNavHeight);
    }

    else
    {
      $(subPageHighTraffic).css('padding-top', '');
    }
  }

  else if ($(topBar).css('position') !== 'fixed' && $('.nav-placeholder').exists())
  {
    $(navPlaceholder).height(underTopBarNavHeight);
  }
}

$(document).ready(function()
{
  WrapDropdowns();
  MoveTopBarLinks();
  MoveOffscreenDropdowns();
  RemoveEmptyLinks();
});

$(window).resize(function()
{
  SetBannerTopPadding();
  MoveTopBarLinks();
  MoveOffscreenDropdowns();
});

$(window).on('load', SetBannerTopPadding);
