function toggleFixedHeader() {
var height;
if ($('html').hasClass("open-menu") && ($(document).width() <= 1250)) {
height = 1;
} else {
height = 40;
}
var header = $('.header-fixed');
if ($(document).scrollTop() >= height) {
header.addClass('shown');
} else {
header.removeClass('shown');
}
}
function showFixedMenu() {
if ($(document).width() > 768) {
$('html').addClass('open-menu');
$('.header.header-fixed .menu-button:not([onclick="showMobileMenu();"])')
.removeClass('icon-Gambyrger-1')
.addClass('icon-Gambyrger-2')
.attr('onclick', 'hideFixedMenu();hideMobileMenu();');
$('.header-fixed .fixed-menu').show();
$('.fixed-menu .menu-items .item').first().trigger('click');
$(document).on('click', hideMenuOnOutClick);
}
}
function hideFixedMenu() {
$('html').removeClass('open-menu');
$('.header-fixed .fixed-menu').hide();
$('.header.header-fixed .menu-button:not([onclick="showMobileMenu();"])')
.removeClass('icon-Gambyrger-2')
.addClass('icon-Gambyrger-1')
.attr('onclick', 'showFixedMenu();showMobileMenu();');
$('#container_1 .fixed-menu-wrapper').remove();
$(document).off('click', hideMenuOnOutClick);
}
function hideMenuOnOutClick(event) {
if (
($('.header-fixed .fixed-menu').find(event.target).length > 0 || $(event.target).hasClass('menu-button')) ||
($('.tablet-menu').find(event.target).length > 0 || $(event.target).parent().hasClass('mobile-menu-button'))
) {
// click in header
} else {
hideFixedMenu();
hideMobileMenu();
}
}
function showMobileMenu() {
$('html').addClass('open-menu');
if ($(document).width() <= 768) {
$('body').css({
height: '100vh',
'overflow-y': 'hidden'
});
$('#container_menu_mobile').css('transform', 'translate3d(0, 0, 0)');
} else if ($(document).width() <= 1250) {
$('.tablet-menu').show();
$('.header-menu .mobile-menu-button i, .header-menu-hikes .mobile-menu-button i')
.removeClass('icon-Gambyrger-1')
.addClass('icon-Gambyrger-2')
.attr('onclick', 'hideMobileMenu();hideFixedMenu();');
}
}
function hideMobileMenu() {
$('html').removeClass('open-menu');
$('body').css({
height: 'initial',
'overflow-y': 'auto'
});
$('#container_menu_mobile').css('transform', 'translate3d(-100%, 0, 0)');
$('.tablet-menu').hide();
$('.header-menu .mobile-menu-button i, .header-menu-hikes .mobile-menu-button i')
.removeClass('icon-Gambyrger-2')
.addClass('icon-Gambyrger-1')
.attr('onclick', 'showMobileMenu();showFixedMenu();');
}
function getSearchHints(query) {
var deferred = $.Deferred();
if (query.length >= 3) {
$.post('/search/searchByPhrase/simple', {
phrase: query
}, (res) => {
if (res.success) {
deferred.resolve(res.hikeNames);
}
}, 'json');
} else {
deferred.resolve([]);
}
return deferred.promise();
}
function renderSearchHints(hints) {
var form = $('.header .search-form');
var input = $('.header .search-form .search-input');
var hintList = $('.header .search-form .search-hints');
hintList.empty();
if (hints.length > 0) {
hints.forEach((hikeName) => {
var hintRow = $('
', {
class: 'search-hints__hint'
})
.text(hikeName)
.on('click', () => {
input.val(hikeName);
form.trigger('submit');
});
hintList.append(hintRow);
});
hintList.addClass('visible');
} else {
hintList.removeClass('visible');
}
}
$(document).on('scroll', function () {
//if ($(document).width() > 1250) {
toggleFixedHeader();
//}
});
$(document).ready(function () {
$('.header .location').on('click', function () {
$(this).toggleClass('active');
});
$('.header .location').hover(function () {
}, function () {
$(this).removeClass('active');
});
$('.fixed-menu .menu-items .item').on('click', function (event) {
if (!$(event.currentTarget).hasClass('link')) {
$('.fixed-menu .menu-content .content.active').removeClass('active');
$('.fixed-menu .menu-content .content[data-code=' + $(event.currentTarget).data('code') + ']').addClass('active');
}
});
$('#container_menu_mobile .dropdown-menu .label').on('click', function (event) {
$(event.target).closest('.dropdown-menu').toggleClass('active');
});
$('#container_menu_mobile .dropdown-menu .sub-menu-label').on('click', function (event) {
$(event.target).closest('.item.dropdown-menu').find('.sub-menu.active').removeClass('active');
$(event.target).closest('.sub-menu').addClass('active');
});
$('.header .search-form .search-icon')
.on('click', (event) => {
var button = $(event.currentTarget);
var form = button.closest('.search-form');
if (!button.hasClass('locked')) {
form.addClass('active');
var input = form.find('.search-input');
input
.on('input', () => {
getSearchHints(input.val())
.done((hints) => {
renderSearchHints(hints);
});
})
.on('focusout', () => {
button
.addClass('locked');
input.off();
var timer = setTimeout(() => {
form.removeClass('active');
button.removeClass('locked');
clearTimeout(timer);
}, 200);
})
.trigger('focus');
}
});
$('.search-row__input')
.on('focusin', (event) => {
var searchRow = $(event.target).closest('.search-row');
var hintList = searchRow.find('.search-row__hint');
if (hintList.length > 0) {
searchRow.find('.search-row__hints').addClass('search-row__hints_visible');
}
})
.on('focusout', (event) => {
var searchRow = $(event.target).closest('.search-row');
var timer = setTimeout(() => {
searchRow.find('.search-row__hints').removeClass('search-row__hints_visible');
clearTimeout(timer);
}, 150);
})
.on('input', (event) => {
var input = $(event.target);
var searchRow = input.closest('.search-row');
var hintList = searchRow.find('.search-row__hints');
var value = event.target.value;
if (value.length >= 3) {
$.post('/search/searchByPhrase/simple', {
phrase: value
}, (res) => {
var hints = res.hikeNames;
hintList.empty();
if (hints.length > 0) {
hints.forEach((hint) => {
hintList.append($('
', {
class: 'search-row__hint'
})
.text(hint)
.on('click', () => {
input.val(hint);
searchRow.find('.search-row__form').trigger('submit');
}));
});
hintList.addClass('search-row__hints_visible');
} else {
hintList.removeClass('search-row__hints_visible');
}
}, 'json');
} else {
hintList
.removeClass('search-row__hints_visible')
.empty();
}
});
});