/**
* This script adds the javascript effects to the Educators Techonology.
*
* @package Educators Techonology
* @author AnchoredDesign
* @license GPL-2.0-or-later
*/
var sectioneles = document.querySelectorAll('.is-style-sectionheading');
var sectioneleslength = sectioneles.length;
for (i = 0; i < sectioneleslength; i++) {
sectioneles[i].innerHTML = '' + sectioneles[i].innerHTML + '';
}
var sectioneles = document.querySelectorAll('.widget-title');
var sectioneleslength = sectioneles.length;
for (i = 0; i < sectioneleslength; i++) {
sectioneles[i].innerHTML = '' + sectioneles[i].innerHTML + '';
}
var entries = document.querySelectorAll('.blog .entry,.archive .entry,.search .entry');
var entrieslength = entries.length;
var entriesheight = 0;
for (i = 0; i < entrieslength; i++) {
if (entries[i].clientHeight > entriesheight) {
entriesheight = entries[i].clientHeight;
}
}
entries.forEach(function(entry) {
entry.style.height = entriesheight + 'px';
});
var faventries = document.querySelectorAll('.favorite-wrap li');
var faventrieslength = faventries.length;
var faventriesheight = 0;
for (j = 0; j < faventrieslength; j++) {
if (faventries[j].clientHeight > faventriesheight) {
faventriesheight = faventries[j].clientHeight;
}
}
faventries.forEach(function(faventry) {
faventry.style.height = faventriesheight + 'px';
});
var speed = 500;
var moving_frequency = 15; // Affects performance !
var links = document.getElementsByTagName('a');
var href;
for (var i = 0; i < links.length; i++) {
href = (links[i].attributes.href === undefined) ? null : links[i].attributes.href.nodeValue.toString();
if (href !== null && href.length > 1 && href.substr(0, 1) == '#' && href.substr(1, 3) !== 'tab') {
links[i].onclick = function() {
var element;
var href = this.attributes.href.nodeValue.toString();
if (element = document.getElementById(href.substr(1))) {
smoothScrollingTo('#' + href.substr(1))
}
return false;
};
}
}
var getScrollTopElement = function(e) {
var top = 0;
while (e.offsetParent != undefined && e.offsetParent != null) {
top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
e = e.offsetParent;
}
return top;
};
var getScrollTopDocument = function() {
return document.documentElement.scrollTop + document.body.scrollTop;
};
function smoothScrollingTo(target) {
var targetele = document.querySelector(target);
var hop_count = speed / moving_frequency
var getScrollTopDocumentAtBegin = getScrollTopDocument();
var stickyheader = document.getElementsByClassName('sticky-header');
var gap = (getScrollTopElement(targetele) - getScrollTopDocumentAtBegin) / hop_count;
if (stickyheader.length) {
gap = (getScrollTopElement(targetele) - getScrollTopDocumentAtBegin - 100) / hop_count;
}
for (var i = 1; i <= hop_count; i++) {
(function() {
var hop_top_position = gap * i;
setTimeout(function() { window.scrollTo(0, hop_top_position + getScrollTopDocumentAtBegin); }, moving_frequency * i);
})();
}
}
if (location.hash) {
smoothScrollingTo(location.hash);
}
var menutoggles = document.querySelectorAll('.menu-toggle:not(.mobile-menu-toggle),.sub-menu-toggle');
menutoggles.forEach(function(menutoggle) {
menutoggle.addEventListener('click', function(event) {
menutoggle.nextElementSibling.classList.toggle("active");
});
});
var mobilemenutoggles = document.querySelectorAll('.mobile-menu-toggle,.searchicon,.close-toggle');
mobilemenutoggles.forEach(function(mobilemenutoggle) {
mobilemenutoggle.addEventListener('click', function(event) {
document.querySelector('.mobile-sidebar-content').classList.toggle('active');
});
});
document.addEventListener(
'scroll',
function(e) {
lastKnownScrollPosition = window.scrollY;
if (lastKnownScrollPosition > 150) {
document.querySelector('body').classList.add('sticky');
stickyheaderAdd();
} else {
document.querySelector('body').classList.remove('sticky');
stickyheaderRemove();
}
if (window.innerWidth < 960) {
document.querySelector('.sticky-header').innerHTML = document.querySelector('.mobile-header').innerHTML;
var mobilemenutoggles = document.querySelectorAll('.mobile-menu-toggle,.searchicon');
mobilemenutoggles.forEach(function(mobilemenutoggle) {
mobilemenutoggle.addEventListener('click', function(event) {
document.querySelector('.mobile-sidebar-content').classList.toggle('active');
});
});
}
}
);
var toctoggles = document.querySelectorAll('.toc-toggle');
toctoggles.forEach(function(toctoggle) {
toctoggle.addEventListener('click', function(event) {
event.target.innerHTML = "View more";
toctoggle.parentNode.classList.toggle("expanded");
if (toctoggle.parentNode.classList.contains('expanded')) {
event.target.innerHTML = "View less";
}
});
});
function stickyheaderAdd() {
var adminbar = document.getElementsByClassName('admin-bar')[0];
var topbar = document.getElementsByClassName('top-bar')[0];
var stickyHeader = document.getElementsByClassName('sticky-header')[0];
var bodystart = document.querySelector('body.sticky');
var topoffset = 0;
if (adminbar) {
topoffset += 32;
topbar.style.top = 32 + 'px';
}
if (window.innerWidth > 960) {
if (topbar) {
topoffset += (topbar.offsetHeight - 5);
bodystart.style.marginTop = topbar.offsetHeight + 'px';
}
}
stickyHeader.style.top = topoffset + 'px';
}
function stickyheaderRemove() {
var adminbar = document.getElementsByClassName('admin-bar')[0];
var topbar = document.getElementsByClassName('top-bar')[0];
var stickyHeader = document.getElementsByClassName('sticky-header')[0];
var bodystart = document.querySelector('body');
bodystart.style.marginTop = 0 + 'px';
stickyHeader.style.top = 0 + 'px';
}