/*! global.js | Friendkit | © Css Ninja. 2019-2020 */
/* ==========================================================================
Project wide reusable functions
========================================================================== */
"use strict"; //The following functions help trigger the autocompletes dropdowns
function openFriendsDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#users-autocpl").focus();
$("#users-autocpl").attr('value', '');
$("#users-autocpl").triggerHandler(e);
}
;
function openActivitiesDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#activities-autocpl").focus();
$("#activities-autocpl").attr('value', '');
$("#activities-autocpl").triggerHandler(e);
}
;
function openMoodDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#mood-autocpl").focus();
$("#mood-autocpl").attr('value', '');
$("#mood-autocpl").triggerHandler(e);
}
;
function openDrinksDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#drinking-autocpl").focus();
$("#drinking-autocpl").attr('value', '');
$("#drinking-autocpl").triggerHandler(e);
}
;
function openEatsDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#eating-autocpl").focus();
$("#eating-autocpl").attr('value', '');
$("#eating-autocpl").triggerHandler(e);
}
;
function openReadsDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#reading-autocpl").focus();
$("#reading-autocpl").attr('value', '');
$("#reading-autocpl").triggerHandler(e);
}
;
function openWatchDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#watching-autocpl").focus();
$("#watching-autocpl").attr('value', '');
$("#watching-autocpl").triggerHandler(e);
}
;
function openTravelDrop() {
var e = $.Event("keyup", {
keyCode: 65,
which: 65
});
$("#travel-autocpl").focus();
$("#travel-autocpl").attr('value', '');
$("#travel-autocpl").triggerHandler(e);
}
; //Init pageloader
function initPageloader() {
if ($('.pageloader').length) {
$('.pageloader').toggleClass('is-active');
$(window).on('load', function () {
var pageloaderTimeout = setTimeout(function () {
$('.pageloader').toggleClass('is-active');
$('.infraloader').toggleClass('is-active');
clearTimeout(pageloaderTimeout);
}, 700); //Placeloaders
if ($('#main-feed').length) {
var shadowDomTimeout = setTimeout(function () {
$('#shadow-dom').remove();
$('.true-dom').removeClass('is-hidden');
clearTimeout(shadowDomTimeout);
}, 2500);
}
if ($('.questions-wrap').length) {
shadowDomTimeout = setTimeout(function () {
$('#questions-shadow-dom-settings, #questions-shadow-dom-single, #questions-shadow-dom-home, #questions-shadow-dom-stats, #questions-shadow-dom-categories').remove();
$('.true-dom').removeClass('is-hidden');
clearTimeout(shadowDomTimeout);
}, 2500);
}
});
}
}
; //Init navbar
function initNavbar() {
$(window).on('scroll', function () {
var height = $(window).scrollTop();
if (height > 65) {
if ($('.options-nav').length) {
$(".navbar").addClass('no-shadow');
$('.options-nav').removeClass('no-shadow');
} else {
$(".navbar").removeClass('no-shadow');
if ($('.navbar.is-landing').length) {
$(".navbar").removeClass('no-background');
}
}
} else {
if ($('.options-nav').length) {
$(".navbar").addClass('no-shadow');
$('.options-nav').addClass('no-shadow');
} else {
$(".navbar").addClass('no-shadow');
if ($('.navbar.is-landing').length) {
$(".navbar").addClass('no-background');
}
}
}
}); //Clear navbar search input
$('#clear-search').on('click', function () {
$(this).siblings('input').val('');
}); //Show navbar search options
$('.drop-icon').on('click', function () {
$(this).toggleClass('is-active');
$('.search-options').toggleClass('is-active');
}); //Toggle selected state on click for search options
$('.options-list li').on('click', function () {
$('.options-list li.is-selected').removeClass('is-selected');
$(this).addClass('is-selected');
}); //Close search options
$('#close-search-options').on('click', function () {
$(this).closest('.search-options').toggleClass('is-active');
});
}
; //Init navbar dropdowns
function initResponsiveMenu() {
if ($('.navbar-burger').length) {
$('.navbar-burger').on("click", function () {
$(this).toggleClass('is-active');
if ($('.navbar-menu').hasClass('is-active')) {
$('.navbar-menu').removeClass('is-active');
} else {
$('.navbar-menu').addClass('is-active');
}
});
}
}
; //Init navbar dropdowns
function initNavDropdowns() {
$('.account-item-submenu').click(function (e) {
e.preventDefault()
})
$('.drop-trigger').click(function (e) {
if (e.isDefaultPrevented()) return
const overlay = $(document).find('#nav-drop-overlay');
const html = $(document).find('html');
if (overlay) {
if (overlay.hasClass('is-active')) {
overlay.removeClass('is-active');
} else {
overlay.addClass('is-active');
}
}
if (html) {
if (html.hasClass('no-scroll')) {
html.removeClass('no-scroll')
} else {
html.addClass('no-scroll')
}
}
if ($(this).find('.nav-drop').hasClass('is-active')) {
$(this).find('.nav-drop').removeClass('is-active');
$(this).removeClass('is-active');
} else {
$(this).find('.nav-drop').addClass('is-active');
if ($(this).hasClass('is-account')) {
$(this).addClass('is-opened');
}
}
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('.nav-drop') && !$(target).parents().is('.drop-trigger')) {
$('#nav-drop-overlay').removeClass('is-active');
$('.nav-drop').removeClass('is-active');
$('.is-account').removeClass('is-opened');
const html = $(document).find('html');
html.removeClass('no-scroll')
}
});
}
; //Init Cart dropdown
function initNavbarCart() {
$('.is-cart .cart-button').on('click', function () {
$(this).closest('.is-cart').find('.shopping-cart').addClass('is-active');
setTimeout(function () {
$('.navbar-cart-loader').removeClass('is-active');
}, 800);
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('.is-cart .cart-button') && !$(target).parents().is('.is-cart')) {
$('.shopping-cart').removeClass('is-active');
setTimeout(function () {
$('.navbar-cart-loader').addClass('is-active');
}, 300);
}
});
} //Init dropdowns
function initDropdowns() {
$('.dropdown-trigger').click(function () {
$('.dropdown-trigger').removeClass('is-active');
$(this).addClass('is-active');
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('.dropdown-trigger img') && !$(target).parents().is('.dropdown-trigger')) {
$('.dropdown-trigger').removeClass('is-active');
}
});
const elements = findElement('.bs-dropdown-trigger')
for (const el of elements) {
const $el = $(el)
const isAttachedInHtml = $el.closest('html').length > 0
if(!isAttachedInHtml){
$el.off('click')
$el.on('click', function (event) {
event.preventDefault();
$el.dropdown('toggle')
const fnCloseDropdown = function (eventClickoutside) {
if (eventClickoutside.timeStamp == event.timeStamp) return
const dropdownMenu = $el.parent().find('.dropdown-menu')[0]
if (!dropdownMenu) return
eventClickoutside.preventDefault();
eventClickoutside.stopPropagation();
$el.dropdown('hide')
document.removeEventListener('click', fnCloseDropdown)
}
document.addEventListener('click', fnCloseDropdown);
})
}
}
}
; //Init tabs
function initTabs() {
$('.nav-tabs-wrapper ul li').on('click', function () {
var tab_id = $(this).attr('data-tab');
$(this).siblings('li').removeClass('is-active');
$(this).closest('.nav-tabs-wrapper').children('.tab-content').removeClass('is-active');
$(this).addClass('is-active');
$("#" + tab_id).addClass('is-active');
});
} //Init modals
function initModals() {
let modals = findElement('.modal-trigger')
if (modals.length) {
modals.off("click");
modals.on('click', function () {
const modalID = $(this).attr('data-modal');
$('#' + modalID).toggleClass('is-active');
});
findElement('.modal-close, .close-modal').on('click', function () {
$('.modal.is-active').removeClass('is-active');
});
}
}
; //Init attribute background images
function initBgImages() {
if ($('.has-background-image').length) {
$(".has-background-image").each(function () {
var bgImage = $(this).attr('data-background');
if (bgImage !== undefined) {
$(this).css('background-image', 'url(' + bgImage + ')');
}
});
}
}
; //Simple popover
function initSimplePopover() {
$('.has-tip').webuiPopover({
trigger: 'hover',
placement: 'auto',
width: 300,
padding: false,
offsetLeft: 0,
offsetTop: 0,
animation: 'pop',
cache: false
});
}
; //Init Emojis
function initEmojis() {
$(".comment-textarea").emojioneArea({
pickerPosition: "bottom",
filtersPosition: "top",
tones: false,
autocomplete: false,
inline: false,
hidePickerOnBlur: true,
buttonTitle: "Use the TAB key to insert emoji faster" //container: $(".emoji-picker")
});
}
; //Load more buttons
//function initPostComments() {
// //Toggle comments
// $('.fab-wrapper.is-comment, .close-comments').on('click', function (e) {
// $(this).addClass('is-active').closest('.card').find('.comments-wrap').toggleClass('is-hidden');
// var jump = $(this).closest('.is-post');
// //var new_position = $(jump).offset();
// //console.log(new_position);
// //$('html, body').stop().animate({
// // scrollTop: new_position.top - 70
// //}, 500);
// e.preventDefault();
// setTimeout(function () {
// $('.emojionearea-editor').val('');
// }, 400);
// });
//}
; //Options nav subsearch
function initSubSearch() {
//Toggle comments
$('#show-subsearch, #hide-subsearch').on('click', function () {
$('#show-subsearch, #hide-subsearch, #subsearch').toggleClass('is-hidden');
$('#subsearch input').focus();
});
}
; //Options nav subsearch
function initSidebar() {
//Toggle comments
$('#show-filters, #hide-filters').on('click', function () {
$('#show-filters, #hide-filters').toggleClass('is-hidden');
$('.filters-panel').toggleClass('is-active');
$('.main-container').toggleClass('has-sidebar');
});
}
function initKSelect() {
//Custom select
$('.custom-select').on('click', function () {
$(this).toggleClass('is-active');
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('.custom-select') && !$(target).parents().is('.control')) {
$('.custom-select').removeClass('is-active');
}
});
$('.custom-select input').on('change', function () {
var selectedValue = $(this).siblings('.option-meta').find('span').text();
$(this).closest('.custom-select').find('.select-box span').html(selectedValue);
});
}
; //Init Combo boxes
function initComboBox() {
$('.is-combo .combo-box').on('click', function () {
//$('.image-combo-box.is-active, .combo-box.is-active').removeClass('is-active');
$(this).toggleClass('is-active');
});
$('.combo-box .box-dropdown li').on('click', function (e) {
var target = e.target; //Get selected item data
var itemIconClass = $(this).find('.item-icon i').attr('class');
var itemIcon = $(this).find('.item-icon i');
itemIconClass = $(this).find('.item-icon i').attr('class');
var itemSvgIcon = $(this).find('.item-icon').html();
var itemName = $(this).find('.item-name').text();
var iconTemplate = '';
var template = '';
if (!$(target).is('.box-dropdown li, body') && !$(target).parents().is('.box-dropdown')) {
$('.box-dropdown').removeClass('is-active');
}
if ($(target).is('body')) {
$('.box-dropdown').removeClass('is-active');
} //Handle dropdown item active state toggle
$(this).siblings('li.is-active').removeClass('is-active');
$(this).addClass('is-active'); //Update combo box selected value
if (itemIcon.length) {
$(this).closest('.combo-box').find('.combo-item i').remove();
$(this).closest('.combo-box').find('.combo-item svg').remove();
$(this).closest('.combo-box').find('.combo-item').prepend(iconTemplate);
$(this).closest('.combo-box').find('.combo-item .selected-item').text(itemName);
} else {
$(this).closest('.combo-box').find('.combo-item i').remove();
$(this).closest('.combo-box').find('.combo-item').prepend(itemSvgIcon);
$(this).closest('.combo-box').find('.combo-item .selected-item').text(itemName);
}
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('.combo-box') && !$(target).parents().is('.is-combo')) {
$('.combo-box').removeClass('is-active');
}
});
}
; //Init Combo boxes
function initImageComboBox() {
$('.is-combo .image-combo-box').on('click', function () {
//$('.image-combo-box.is-active, .combo-box.is-active').removeClass('is-active');
$(this).toggleClass('is-active');
});
$('.image-combo-box .box-dropdown li').on('click', function (e) {
var target = e.target; //Get selected item data
var itemPic = $(this).find('.item-icon img').attr('src');
var itemName = $(this).find('.item-name').text();
if (!$(target).is('.box-dropdown li, body') && !$(target).parents().is('.box-dropdown')) {
$('.box-dropdown').removeClass('is-active');
}
if ($(target).is('body')) {
$('.box-dropdown').removeClass('is-active');
} //Handle dropdown item active state toggle
$(this).siblings('li.is-active').removeClass('is-active');
$(this).addClass('is-active'); //Update combo box selected value
$(this).closest('.image-combo-box').find('.combo-item img').attr('src', itemPic);
$(this).closest('.image-combo-box').find('.combo-item .selected-item').text(itemName);
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('.image-combo-box') && !$(target).parents().is('.is-combo')) {
$('.image-combo-box').removeClass('is-active');
}
});
}
; //Init Combo boxes
function initUserComboBox() {
$('.is-combo .user-combo-box').on('click', function () {
$(this).toggleClass('is-active');
});
$('.user-combo-box .box-dropdown li').on('click', function (e) {
var target = e.target; //Get selected item data
var itemPic = $(this).find('.item-icon .avatar').attr('src');
var itemBadge = $(this).find('.item-icon .badge').attr('src');
var itemName = $(this).find('.item-name').text();
if (!$(target).is('.box-dropdown li, body') && !$(target).parents().is('.box-dropdown')) {
$('.box-dropdown').removeClass('is-active');
}
if ($(target).is('body')) {
$('.box-dropdown').removeClass('is-active');
} //Handle dropdown item active state toggle
$(this).siblings('li.is-active').removeClass('is-active');
$(this).addClass('is-active'); //Update combo box selected value
$(this).closest('.user-combo-box').find('.combo-item .avatar').attr('src', itemPic);
$(this).closest('.user-combo-box').find('.combo-item .badge').attr('src', itemBadge);
$(this).closest('.user-combo-box').find('.combo-item .selected-item').text(itemName);
});
}
; //Init Combo boxes
function initStackedComboBox() {
$('.is-combo .stacked-combo-box').on('click', function () {
$(this).toggleClass('is-active');
});
$('.stacked-combo-box .box-dropdown li').on('click', function (e) {
var target = e.target; //Get selected item data
var itemPic = $(this).find('.item-icon img').attr('src');
var itemName = $(this).find('.item-name').text();
var itemRef = $(this).attr('data-skill');
var initialText = 'Select one or more skills';
var skillTemplate = "\n
\n ";
if (!$(target).is('.box-dropdown li, body') && !$(target).parents().is('.box-dropdown')) {
$('.box-dropdown').removeClass('is-active');
}
if ($(target).is('body')) {
$('.box-dropdown').removeClass('is-active');
} //Handle dropdown item active state toggle
$(this).toggleClass('is-active');
if ($('.stacked-combo-box li.is-active').length == 0) {
$('#' + itemRef).remove();
$('#skill-placeholder').removeClass('is-hidden');
$(this).closest('.stacked-combo-box').find('.selected-item').text(initialText);
} else {
$('#skill-placeholder').addClass('is-hidden');
$(this).closest('.stacked-combo-box').find('.selected-item').text('');
if ($('#' + itemRef).length) {
$('#' + itemRef).remove();
} else {
$(this).closest('.stacked-combo-box').find('.combo-item').prepend(skillTemplate);
}
}
});
}
; //Init Big Combo boxes
function initBigComboBox() {
$('.big-combo-box').on('click', function () {
$(this).toggleClass('is-active');
});
$('.big-combo-box .box-dropdown li').on('click', function (e) {
var target = e.target; //Get selected item data
var itemIcon = $(this).find('.item-icon i').attr('class');
var itemName = $(this).find('.item-name span:first-child').text();
var itemDesc = $(this).find('.item-name span:nth-child(2)').text();
if (!$(target).is('.box-dropdown li, body') && !$(target).parents().is('.box-dropdown')) {
$('.box-dropdown').removeClass('is-active');
}
if ($(target).is('body')) {
$('.box-dropdown').removeClass('is-active');
} //Handle dropdown item active state toggle
$(this).siblings('li.is-active').removeClass('is-active');
$(this).addClass('is-active'); //Update combo box selected value
$(this).closest('.big-combo-box').find('.combo-item i').attr('class', itemIcon);
$(this).closest('.big-combo-box').find('.combo-item .selected-item').text(itemName);
$(this).closest('.big-combo-box').find('.combo-item .selected-desc').text(itemDesc);
});
}
; //Init text filter
function initTextFilter() {
(function () {
var defaultText = $('.textFilter-input').val();
$('.textFilter-input').focus(function (e) {
if ($(this).val() === defaultText) $(this).val('');
}).blur(function (e) {
if ($(this).val() === '') $(this).val(defaultText);
}).keyup(function (e) {
var patterns = $(this).val().toLowerCase().split(' ');
if (!patterns.length) return;
$('.textFilter-target').hide().removeClass('is-match').addClass('is-not-match').filter(function () {
var matchText = $(this).find('.textFilter-match').text().toLowerCase();
for (var i = 0; i < patterns.length; i++) {
if (matchText.indexOf(patterns[i]) === -1) return false;
}
return true;
}).show().removeClass('is-not-match').addClass('is-match'); //Friends
if ($('#friends-page').length) {
var cardCount = $('.card-row-wrap.is-active').find('.friend-card.is-match').length;
if (cardCount == 0) {
$('.card-row-wrap.is-active').find('.card-row').addClass('is-hidden');
$('.card-row-wrap.is-active').find('.card-row-placeholder').removeClass('is-hidden');
} else {
$('.card-row-wrap.is-active').find('.card-row-placeholder').addClass('is-hidden');
$('.card-row-wrap.is-active').find('.card-row').removeClass('is-hidden');
}
}
});
})();
}
function initPlusMenu() {
$('#plus-menu').on('click', function () {
$(this).closest('.navbar-item').toggleClass('is-active');
});
$(document).click(function (e) {
var target = e.target;
if (!$(target).is('#plus-menu') && !$(target).parents().is('.is-plus-menu')) {
$('.is-plus-menu').removeClass('is-active');
}
});
}
function initShareModal() {
$('.small-fab.share-fab').on('click', function () {
var $this = $(this);
var postImage = $this.closest('.is-post').find('.post-image img').attr('src');
var postUser = $this.closest('.is-post').find('.user-block .image img').attr('src');
var postText = $this.closest('.is-post').find('.post-text > p').html();
if (postImage !== undefined) {
$('#share-modal-image').attr('src', postImage).removeClass('is-hidden');
} else {
$('#share-modal-image').addClass('is-hidden');
}
$('#share-modal-avatar').attr('src', postUser);
$('#share-modal-text').html(postText);
});
}
function initAboutGlider() {
$('.about-glider').each(function () {
if ($(this).is(":visible")) {
var element = $(this).attr('id');
new Glider(document.querySelector('#' + element), {
slidesToShow: 3,
slidesToScroll: 3,
dots: '#slider-dots-' + element,
draggable: true,
responsive: [{
// screens greater than >= 775px
breakpoint: 768,
settings: {
// Set to `auto` and provide item width to adjust to viewport
slidesToShow: 3,
slidesToScroll: 3,
itemWidth: 150,
duration: 0.25
}
}, {
// screens greater than >= 1024px
breakpoint: 300,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
//itemWidth: 150,
duration: 0.25
}
}]
});
}
});
};
function findElement(querySelector){
let elements = $(querySelector)
if (!elements.length) {
const wc = $('privacy-web-feed')[0]?.shadowRoot
if (wc) {
elements = $(wc).find(querySelector)
}
}
return elements
}