(function() { const doc = document.documentElement; // from swift theme: sandwich // ****** function modifyClass(el, targetClass) { if (isObj(el) && targetClass) { const elClass = el.classList; elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass); } } function containsClass(el, targetClass) { if (isObj(el) && targetClass && el !== document ) { return el.classList.contains(targetClass) ? true : false; } } function createEl(element = 'div') { return document.createElement(element); } function isObj(obj) { return (obj && typeof obj === 'object' && obj !== null) ? true : false; } function elem(selector, parent = document){ let elem = parent.querySelector(selector); return elem != false ? elem : false; } function elems(selector, parent = document) { let elems = parent.querySelectorAll(selector); return elems.length ? elems : false; } function pushClass(el, targetClass) { if (isObj(el) && targetClass) { const elClass = el.classList; elClass.contains(targetClass) ? false : elClass.add(targetClass); } } const copyToClipboard = str => { let copy, selection, selected; copy = createEl('textarea'); copy.value = str; copy.setAttribute('readonly', ''); copy.style.position = 'absolute'; copy.style.left = '-9999px'; selection = document.getSelection(); doc.appendChild(copy); // check if there is any selected content selected = selection.rangeCount > 0 ? selection.getRangeAt(0) : false; copy.select(); document.execCommand('copy'); doc.removeChild(copy); if (selected) { // if a selection existed before copying selection.removeAllRanges(); // unselect existing selection selection.addRange(selected); // restore the original selection } } (function copyLinkToShare() { let copy, copied, excerpt, isCopyIcon, isInExcerpt, link, postCopy, postLink, target; copy = 'copy'; copied = 'copy_done'; excerpt = 'excerpt'; postCopy = 'post_copy'; postLink = 'post_card'; doc.addEventListener('click', function(event) { target = event.target; isCopyIcon = containsClass(target, copy); let isWithinCopyIcon = target.closest(`.${copy}`); if (isCopyIcon || isWithinCopyIcon) { let icon = isCopyIcon ? isCopyIcon : isWithinCopyIcon; isInExcerpt = containsClass(icon, postCopy); if (isInExcerpt) { link = target.closest(`.${excerpt}`).previousElementSibling; link = containsClass(link, postLink)? elemAttribute(link, 'href') : false; } else { link = window.location.href; } if(link) { copyToClipboard(link); pushClass(icon, copied); } } }); })(); [...document.querySelectorAll('.fbpost_item')].forEach((el) => { const link = el.getAttribute('data-link'); [...el.querySelectorAll('p img')].forEach((img) => { img.addEventListener('click', () => { let a = document.createElement('a') a.target= '_blank' a.href= link a.click() }) }) }); (function() { let bar = 'nav_bar-wrap'; let navBar = elem(`.${bar}`); let nav = elem('.nav-body'); let open = 'nav-open'; let exit = 'nav-exit'; let drop = 'nav-drop'; let pop = 'nav-pop'; let navDrop = elem(`.${drop}`); function toggleMenu(){ let menuOpen, menuPulled, status; modifyClass(navDrop, pop); modifyClass(navBar, 'hidden'); menuOpen = containsClass(nav, open); menuPulled = containsClass(nav, exit); status = menuOpen || menuPulled ? true : false; status ? modifyClass(nav, exit) : modifyClass(nav, open); status ? modifyClass(nav, open) : modifyClass(nav, exit); } navBar.addEventListener('click', function() { toggleMenu(); }); elem('.nav-close').addEventListener('click', function() { toggleMenu(); }); elem('.nav-drop').addEventListener('click', function(e) { e.target === this ? toggleMenu() : false; }); })(); (function postsPager(){ const pager = elem('.pagination'); if (pager) { pushClass(pager, 'pager'); const pagerItems = elems('li', pager); const pagerLinks = Array.from(pagerItems).map(function(item){ return item.firstElementChild; }); pagerLinks.forEach(function(link){ pushClass(link, 'pager_link') }); pagerItems.forEach(function(item){ pushClass(item, 'pager_item') }); } })(); // ****** (function() { const $target = document.querySelector('#searchapp'); const $pages = document.querySelector('#resultaten .pages'); if(!($target && window.searchposts)) return; const query = new URLSearchParams(window.location.search); const searchString = query.get('q') || ""; document.querySelector('#zoekentxt').value = searchString; // Our index uses title as a reference const postsByTitle = window.searchposts.reduce((acc, curr) => { acc[curr.title] = curr; return acc; }, {}); fetch('/js/redzuurdesem-post.json').then(function (res) { return res.json(); }).then(function (data) { const index = lunr.Index.load(data); const matches = index.search(searchString); const matchPosts = []; matches.forEach((m) => { matchPosts.push(postsByTitle[m.ref]); }); $pages.innerHTML = `(${matches.length})`; if (matchPosts.length > 0) { $target.innerHTML = matchPosts.filter(p => p).map(p => { return `

${p.title}

${p.content}...

`; }).join(''); } else { $target.innerHTML = `
Geen relevante resultaten gevonden.
`; } }); })() const fromFixedToScrollForSafari = () => { const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); const header = document.querySelector('.post_header'); if(isSafari) { header.style.backgroundAttachment = 'scroll'; } } fromFixedToScrollForSafari(); const lightbox = () => { [...document.querySelectorAll('article img')].forEach(el => { if(el.parentNode.nodeName !== 'A') { el.parentNode.innerHTML = `${el.outerHTML}`; } else { el.parentNode.setAttribute('class', 'lbox'); } }) const box = new SimpleLightbox('.lbox', { /* options */ }); }; lightbox(); const meel = document.querySelector('.meel'); const enc = "pfccr@fsrniifrsgsa.ps" if(meel) { meel.addEventListener('click', function() { meel.setAttribute('class', '') meel.innerHTML = enc.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+12)?c:c-26);}); }) } })()