var device = 'desktop', is_mobile = false; $(function() { stack_menu(); var window_menu_resize_timer; $(window).on('resize', function() { clearTimeout(window_menu_resize_timer); window_menu_resize_timer = setTimeout(function() { stack_menu(); }, 2000) }) }) var stack_menu = function() { $('body').find('.global_hor_menu > ul').each(function() { var _holder = $(this).parent(); if (_holder.attr('var') != undefined) { var _stack_config = eval(_holder.attr('var')) var wrapper_size = $(window).outerWidth(true); stack_size = _stack_config; if (typeof _stack_config == "object") { if (_stack_config.wrapper != undefined) { wrapper_size = $(_stack_config.wrapper).outerWidth(true); stack_size = _stack_config.max; } } if (wrapper_size < stack_size && $(window).outerWidth(true) > stack_size) { var menu_wrapper = $(this); if (menu_wrapper.find('.overelement').length > 0) expand_menu(); var menu_li_width = 0; menu_wrapper.find('>li').each(function() { menu_li_width += $(this).outerWidth(); }) if (menu_wrapper.outerWidth() < menu_li_width) { var overflow = (menu_li_width - menu_wrapper.outerWidth()) + 250 overflow_item_size = 0 $('>li', menu_wrapper).reverse().each(function() { overflow_item_size += $(this).outerWidth(); if (overflow_item_size >= overflow) { return false } $(this).addClass('over'); }) menu_wrapper.append('
  • more_horiz
  • '); menu_wrapper.find('.over').appendTo(menu_wrapper.find('.overelement ul')) } } else { expand_menu(); } } }) } var expand_menu = function() { $('body').find('.global_hor_menu > ul').each(function() { var _holder = $(this).parent(); if (typeof eval(_holder.attr('var')) != 'undefined') { var _stack_config = eval(_holder.attr('var')) || 0; var wrapper_size = $(window).outerWidth(true); stack_size = _stack_config; if (typeof _stack_config == "object") { if (_stack_config.wrapper != undefined) { wrapper_size = $(_stack_config.wrapper).outerWidth(true); stack_size = _stack_config.max; } } if (wrapper_size < stack_size) { var menu_wrapper = $(this); menu_wrapper.find('.overelement > ul > li').appendTo(menu_wrapper); menu_wrapper.find('li.over').removeClass('over'); menu_wrapper.find('.overelement').remove(); } } }) } $.fn.reverse = function() { return this.pushStack(this.get().reverse()); }