function makeHandler(className) {
    return function(event) {
        var dropdown = $(this);
        var targetClass = event.handleObj.selector;
        var targetedClassName = targetClass + '.' + className;

        var isNotHosted = !dropdown.closest(targetedClassName);
        dropdown.siblings(targetedClassName).removeClass(className);

        if (isNotHosted) {
            $('#js-desktop-menu .menu-list ' + targetClass).removeClass(className);
        }

        if (dropdown.hasClass(className)) {
            dropdown.
            find(targetClass).
            removeClass(className);
        }

        dropdown.toggleClass(className);
        return false;
    };
}


function inlineItems(id) {
    var $id = $(id);
    var menuWidth = $id.find('.menu').width();
    var items = $id.find('.menu-list > .menu-item');
    var shifted = [];

    var accumalatedWidth = 300;
    var hiddenCount = 0;

    items.each(function(index) {
        var item = $(this);
        accumalatedWidth += item.width();

        var isHidden = menuWidth < accumalatedWidth;
        item.toggleClass('not-shown', isHidden);
        item.attr('data-index', index);
        hiddenCount += isHidden;

        if (isHidden) {
            shifted.push(item.clone());
        }
    });

    $id.find('.menu-shift').html('').append(shifted);
    $id.find('.menu-toggler').toggleClass('not-shown', !hiddenCount);
    $id.find('.menu-shift').toggleClass('shown', !hiddenCount);
}

function mouseClick() {
    $(this).toggleClass('opened');
}

function mouseEnter() {
    $(this).addClass('opened');
}

function mouseLeave() {
    $(this).removeClass('opened');
}

var authHoverableOn = false;

function authHoverClick() {
    authHoverableOn = !authHoverableOn;
    $(this).parent().find('.menu-shift').css('display', authHoverableOn ? 'block' : 'none');
}

function authHoverEnter() {
    $(this).parent().find('.menu-shift').css('display', 'block');
}

function authHoverLeave() {
    $(this).parent().find('.menu-shift').css('display', 'none');
}


function collapseMouseClick() {
    $(this).next('.menu-shift').toggleClass('shown');
}

function collapseMouseEnter() {
    $(this).next('.menu-shift').addClass('shown');
}

function collapseMouseLeave() {
    $(this).removeClass('shown');
}
 $('.menu').on('mouseenter', '.menu-dropdown', mouseEnter);
        $('.menu').on('mouseleave', '.menu-dropdown', mouseLeave);
function menuResizerBinder() {
    inlineItems('#js-desktop-menu');
    inlineItems('#js-mobile-menu');

    if (window.innerWidth < 768) {
        $('.auth-hoverable').off('mouseover', authHoverEnter);
        $('.auth-hoverable').off('mouseout', authHoverLeave);
        $('.menu-collapse').off('mouseenter', '.menu-toggler', collapseMouseEnter);
        $('.menu-collapse').off('mouseleave', '.menu-shift', collapseMouseLeave);
//         $('.menu').off('mouseenter', '.menu-dropdown', mouseEnter);
//        $('.menu').off('mouseleave', '.menu-dropdown', mouseLeave);

        $('.auth-hoverable .auth-link--plain').on('click touchstart touchend', authHoverClick);
        $('.menu-collapse').on('click', '.menu-toggler', collapseMouseClick);
        $('.menu').on('click', '.menu-dropdown', mouseClick);
    } else {
        $('.auth-hoverable').on('mouseover', authHoverEnter);
        $('.auth-hoverable').on('mouseout', authHoverLeave);
        $('.menu-collapse').on('mouseenter', '.menu-toggler', collapseMouseEnter);
        $('.menu-collapse').on('mouseleave', '.menu-shift', collapseMouseLeave);
       

        $('.auth-hoverable .auth-link--plain').off('click touchstart touchend', authHoverClick);
        $('.menu-collapse').off('click', '.menu-toggler', collapseMouseClick);
        $('.menu').off('click', '.menu-dropdown', mouseClick);
    }
}

$(document).ready(function() {
    var owl = $('.owl-carousel');
});

$(window).on('resize', menuResizerBinder);
// menuResizerBinder();

$('.menu').on('click', '.menu-link', function(e) {
    var href = e.target.href;

   // if (href && $('#quitconfirmation').length < 1) {
   //     location.href = href;
  //  }
});


$(document).on('click', function(e) {
    var $shifter = $('.menu-shift.shown');
    $('.menu-dropdown').removeClass('opened');

    if (!$(e.target).parents($shifter).length) {
        $shifter.removeClass('shown');
    }
});