function initMenuPosition() { var $header = $('.web-header:first'); var $logo_container = $('.logo-container:first'); if ($header.hasClass('menu-position-bottom')) { $logo_container.prependTo($logo_container.parent()); } else { $logo_container.appendTo($logo_container.parent()); } } function disableFixedHeader() { $(".web-header").prev(".fixed-header-spacer").hide(); } function enableFixedHeader() { $(window).resize(); } $(document).ready(function () { var $menu = $('.menu'); $('.menu-container .menu-button').click(function () { if ($menu.hasClass('show')) { $menu.removeClass('show'); } else { $menu.addClass('show'); } }); var $zona_logo = $('div.zona_logo:first'); var $menu_element = $('#menu div.pwcre-element:first .pwcem-menu'); var $web_header = $('div.web-header:first'); var menu_position = $menu_element.position(); var menu_height = $menu_element.height(); var max_left_position = 0; var min_left_position = 99999; var zona_offset = $zona_logo.offset(); $zona_logo.find('div.pwcre-element').each(function () { var element_offset = $(this).offset(); var element_position = { left: element_offset.left - zona_offset.left, top: element_offset.top - zona_offset.top }; var element_width = $(this).width(); if (element_position.top < menu_position.top + menu_height) { var left_position = element_position.left + element_width; if (left_position > max_left_position) { max_left_position = left_position; } if (element_position.left < min_left_position) { min_left_position = element_position.left; } } }); var prev_window_width = 0; var resize_timer = null; var is_administration = ($('#admin-container').length > 0); // Pokud je menu prekryte jinym prvkem, dojde k zalomeni. if (!is_administration && (!$web_header.hasClass('menu-position-bottom') && !$web_header.hasClass('menu-position-top'))) { $(window).resize(function () { var window_width = proweb.getViewportWidth(); var logo_container_width = $zona_logo.outerWidth(true); if (window_width != prev_window_width) { prev_window_width = window_width; if (resize_timer) window.clearTimeout(resize_timer); resize_timer = window.setTimeout(function () { resize_timer = null; $web_header.removeClass('break-elements'); if (logo_container_width + 40 >= window_width) { var menu_position = $menu_element.offset(); var zona_offset = $zona_logo.offset(); if ($web_header.hasClass('menu-position-left')) { var menu_position_right = menu_position.left - zona_offset.left + $menu_element.outerWidth(true); if (min_left_position < menu_position_right) { $web_header.addClass('break-elements'); } } else { var menu_position_left = menu_position.left - zona_offset.left; if (max_left_position > menu_position_left) { $web_header.addClass('break-elements'); } } } header_height = $web_header.height(); if ($fixed_header_spacer) { $fixed_header_spacer.css('height', header_height); } }, 300); } }); } var $web_controller = $('#web-container:first'); var web_controller_offset_top = 0; var header_height = $web_header.height(); var $fixed_header_spacer = null; var fixed_header_inited = false; var web_header_offset_top = 0; var doFixedHeader = function () { if ($web_header.hasClass('header-fixed') || $web_header.hasClass('header-fixed-disabled')) { var scroll_top, viewport_height; $web_header.removeClass('header-fixed header-fixed-disabled'); if (!fixed_header_inited) { var header_offset = $web_header.offset(); web_header_offset_top = header_offset.top; $fixed_header_spacer = $('
').prependTo($web_header.parent()).css('height', header_height); fixed_header_inited = true; } if ($web_controller.length > 0 && proweb.defined('proweb.content.administration.admin_mode') && proweb.content.administration.admin_mode.getActiveSidMode() == 'md') { scroll_top = $web_controller.scrollTop(); web_controller_offset_top = $web_controller.offset().top; viewport_height = proweb.getViewportHeight(); if (header_height / viewport_height > 0.33 || scroll_top == 0) { $web_header.css({ position: '', width: '', top: '' }); if (is_administration && !$web_header.hasClass('header-fixed-disabled') && proweb.defined('proweb.content.administration.element_menu')) { proweb.content.administration.element_menu.refreshPositions(); proweb.content.administration.control_menu.fixOverlapping(); } $web_header.addClass('header-fixed-disabled'); $fixed_header_spacer.hide(); } else { $web_header.css({ position: 'absolute', width: '100%', top: scroll_top }); $web_header.addClass('header-fixed'); $fixed_header_spacer.show(); } } else { scroll_top = $(window).scrollTop(); viewport_height = proweb.getViewportHeight(); if (header_height / viewport_height > 0.33 || web_header_offset_top - scroll_top > 0 || $web_header.hasClass('break-elements')) { if (is_administration && !$web_header.hasClass('header-fixed-disabled') && proweb.defined('proweb.content.administration.element_menu')) { proweb.content.administration.element_menu.refreshPositions(); proweb.content.administration.control_menu.fixOverlapping(); } $web_header.addClass('header-fixed-disabled'); $fixed_header_spacer.hide(); } else { $web_header.addClass('header-fixed'); $fixed_header_spacer.show(); } } } }; $(window).resize(function () { header_height = $web_header.height(); if ($fixed_header_spacer) { $fixed_header_spacer.css('height', header_height); } doFixedHeader(); }); $(window).scroll(function () { doFixedHeader(); }); $web_controller.scroll(function () { doFixedHeader(); }); $(window).resize(); });