var MobileNav = (function() {
	'use strict';

	var self = {};

	init();
	function init() {
		resize();
		bindEvents();
	}


	/**
	 *  bindEvents()
	 *  Bind necessary event handlers.
	 */
	function bindEvents() {
		FastClick.attach(document.body);
		$(window).on('resize', resize);
		$('.js-toggle-nav').on('click', toggleNav);
		$('.js-mobile-nav-item').on('click', changeScreen);
	}


	/**
	 *  resize()
	 *  Sizes the screens and adjusts content height for scrolling.
	 */
	function resize() {
		$('.js-mobile-nav-screen').width( $('.mobile-nav').width() );
		$('.mobile-nav__screens').width( $('.js-mobile-nav-screen').width() * $('.js-mobile-nav-screen').length );
		$('.js-screen-content').height( $(window).height() - 48 - 56 - 49 );
		var screenWidth = $(window).width();
		var sideNavAllSportsDiv = $('.js-screen-content.side-nav-allsports');
		sideNavAllSportsDiv.height( $(window).height() - 48 - 56 - 49 - 180);
		if(screenWidth < sideNavAllSportsDiv.parent().width()){
			sideNavAllSportsDiv.width(screenWidth);
		}else{
			sideNavAllSportsDiv.width(sideNavAllSportsDiv.parent().width()-28);
		}
		$('.js-screen-content.side-nav-allsports>.row').css('margin-right','0px');
	}


	/**
	 *  Shows/Hides the mobile navigation.
	 *  @param {Event} e
	 */
	function toggleNav(e) {
		var $nav = $('.js-mobile-nav');
		$nav.toggleClass('slide-in');

		if ($nav.hasClass('slide-in')) {
			// $nav.show();
			$('html').addClass('nav-open');
			$('#primaryNav .dropdown-menu').removeClass('show');
			var style = document.createElement('style');
			style.id = 'navBackdropStyle';
			style.textContent = `
			#gradientDiv:after {
				position: fixed;
				top: 0;
				left: 0;
				right: 0;
				bottom: 0;
				background: rgba(0, 0, 0, 0.5);
				content: '';
				z-index: 1;
				transition: opacity 0.3s ease;
			}
			`;

			document.head.appendChild(style);
			resize();
		}
		else {
			// $nav.hide();
			$('html').removeClass('nav-open');
			var styleElement = document.getElementById('navBackdropStyle');
			if (styleElement) {
				styleElement.textContent = styleElement.textContent.replace(/#gradientDiv:after\s*{[^}]*}/, '');
				if (styleElement.textContent.trim() === '') {
					styleElement.parentNode.removeChild(styleElement);
				}
			}

		}
	}


	/**
	 *  Navigates from one section to another.
	 *  @param {Event} e
	 */
	function changeScreen(e) {
		var screen = $(this).data('screen');
		var $screen = $('.js-mobile-nav-screen[data-screen="' + screen + '"]');
		var content = $(this).data('content');
		var $container = $('.mobile-nav__screens');
		var width = $('.mobile-nav').width();
		var translate = -(width * screen) + "px";


		if (typeof content != 'undefined') {
			$screen.find('.js-screen-content').hide();
			$screen.find('.js-screen-content[data-content="' + content + '"]').show();
		}

		$container.css('transform', 'translateX(' + translate + ')');
		$('.mobile-nav__screens').css('transition', 'transform 0.3s ease');

	}

	return self;
})();

$(document).ready(function() {
    var pfsNav = $('.pfs-nav');
    var $nav = $('.js-mobile-nav');
    $(document.body).click(function(event) {
		if ((!pfsNav.is(event.target) && pfsNav.has(event.target).length === 0)){
			if(!event.target.classList.contains("menueventcheck")){
				if ($('html').hasClass('nav-open')) {
					$nav.hide();
					$('html').removeClass('nav-open');
					var styleElement = document.getElementById('navBackdropStyle');
					if (styleElement) {
						styleElement.textContent = styleElement.textContent.replace(/#gradientDiv:after\s*{[^}]*}/, '');
						if (styleElement.textContent.trim() === '') {
							styleElement.parentNode.removeChild(styleElement);
						}
					}
				}
			}
		}
    });
});
