284 lines
7.6 KiB
JavaScript
Vendored
284 lines
7.6 KiB
JavaScript
Vendored
(function ($) {
|
|
/**
|
|
* @param {object} _options
|
|
*/
|
|
$.fn.loadMoreNews = function (_options) {
|
|
var nextPage = 2;
|
|
var isLoading = false;
|
|
var page = 1;
|
|
var options = {
|
|
loadingElementId: '#loading',
|
|
container: '',
|
|
url: document.location.pathname
|
|
};
|
|
|
|
$.extend(options, _options);
|
|
var $isLoading = $(options.loadingElementId, this);
|
|
$isLoading.hide();
|
|
|
|
this.click(function (e) {
|
|
e.preventDefault();
|
|
if (!isLoading) {
|
|
// Set flag and update UI
|
|
isLoading = 1;
|
|
$isLoading.show();
|
|
var $button = $(this).attr("disabled", "disabled");
|
|
var $container = $(options.container)
|
|
|
|
// Fire request for the next page
|
|
$.ajax({url: options.url + (options.url.indexOf('?') >= 0 ? '&' : '?') + 'pagina=' + nextPage})
|
|
.always(function () {
|
|
// Whether success or failure, update the UI again
|
|
isLoading = 0;
|
|
$isLoading.hide();
|
|
$button.removeAttr("disabled");
|
|
})
|
|
.done(function (data) {
|
|
if (!data) {
|
|
// When no data was returned, disable the button permanently
|
|
page = -1;
|
|
$button.attr("disabled", "disabled").text("Geen nieuws meer.");
|
|
return;
|
|
}
|
|
|
|
$container.each(function () {
|
|
var id = this.toString();
|
|
$(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data));
|
|
});
|
|
++nextPage;
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
}(jQuery));
|
|
|
|
$(function () {
|
|
$('[data-loadmorenews]').each(function () {
|
|
$(this).loadMoreNews($(this).data('loadmorenews'));
|
|
});
|
|
});
|
|
|
|
(function ($) {
|
|
|
|
/**
|
|
* @param {object} _options
|
|
*/
|
|
$.fn.menu = function (_options) {
|
|
var options = {
|
|
menuSubmenuClass: 'has_submenu'
|
|
};
|
|
$.extend(options, _options);
|
|
var $menus = $(this).children('.' + options.menuSubmenuClass);
|
|
var $container = $(this);
|
|
|
|
$menus.on( "mouseenter", function () {
|
|
var $menuItem = $(this);
|
|
$('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()});
|
|
$('.hover', $container).removeClass('hover');
|
|
$menuItem.addClass('hover');
|
|
var submenu = $('<div style="width: ' + $menuItem.outerWidth() + 'px"><a href="' + $menuItem.find('a').attr('href') + '" style="width: ' + $menuItem.outerWidth() + 'px"></a></div>').append($menuItem.children('ul.submenu').clone());
|
|
var pos = $menuItem.offset();
|
|
submenu.addClass('menu-submenu').css({top: pos.top, left: pos.left});
|
|
submenu.on( "mouseleave", function() {
|
|
$('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()});
|
|
$menuItem.removeClass('hover');
|
|
} );
|
|
$('body').append(submenu);
|
|
submenu.children('ul.submenu').slideDown();
|
|
|
|
submenu.find('ul.submenu').subMenu({});
|
|
openPlayerInNewScreen();
|
|
});
|
|
};
|
|
|
|
/**
|
|
* @param {object} _options
|
|
*/
|
|
$.fn.subMenu = function (_options) {
|
|
var options = {
|
|
menuSubmenuClass: 'has_submenu'
|
|
};
|
|
$.extend(options, _options);
|
|
var $container = $(this);
|
|
|
|
$container.find('li.' + options.menuSubmenuClass + ' > a').click(function(e) {
|
|
e.preventDefault();
|
|
var $li = $(this).closest('li');
|
|
$li.children('ul.submenu').slideToggle();
|
|
$li.toggleClass('opened');
|
|
});
|
|
};
|
|
|
|
}(jQuery));
|
|
|
|
$(function () {
|
|
$('.menu').menu({});
|
|
$('.mobile-menu').subMenu({});
|
|
$('.mobile_menu_button a').click(function() {
|
|
$('.mobile_menu_container').show();
|
|
});
|
|
$('.mobile_close_menu_button a').click(function() {
|
|
$('.mobile_menu_container').hide();
|
|
});
|
|
$('.mobile_menu_container').click(function(e){
|
|
var $target = $(e.target);
|
|
if(!$target.closest('#mobile_menu_nav').length &&
|
|
$('.mobile_menu_container').is(":visible")) {
|
|
$('.mobile_menu_container').hide();
|
|
}
|
|
});
|
|
});
|
|
|
|
$(function () {
|
|
$(".prettyPhoto[rel^='prettyPhoto']").prettyPhoto({
|
|
show_title: false,
|
|
slideshow: 3000,
|
|
overlay_gallery: true,
|
|
social_tools: ''
|
|
});
|
|
});
|
|
|
|
$(function () {
|
|
$('.scroll_top').click(function (e) {
|
|
e.preventDefault();
|
|
$("html, body").stop().animate({scrollTop: 0}, 500, 'swing');
|
|
});
|
|
});
|
|
|
|
(function ($) {
|
|
/**
|
|
* @param {object} _options
|
|
*/
|
|
$.fn.share = function (_options) {
|
|
var options = {
|
|
type: '',
|
|
types: {
|
|
facebook: {
|
|
url: 'https://www.facebook.com/sharer/sharer.php?u=',
|
|
textOption: false
|
|
},
|
|
twitter_x: {
|
|
url: 'https://twitter.com/share?url=',
|
|
textOption: 'text='
|
|
},
|
|
},
|
|
excerptClass: 'excerpt'
|
|
};
|
|
|
|
$.extend(options, _options);
|
|
|
|
this.click(function (e) {
|
|
e.preventDefault();
|
|
var type = options.types[options.type];
|
|
if (type !== undefined) {
|
|
var extra = '';
|
|
if (type.textOption) {
|
|
var text = $('.' + options.excerptClass).text();
|
|
if (text.length + location.href.length > 278) {
|
|
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
|
|
}
|
|
extra = '&' + type.textOption + encodeURI(text);
|
|
}
|
|
window.open(type.url + encodeURI(location.href) + extra, "pop", "width=600, height=400, scrollbars=no");
|
|
} else {
|
|
console.error(options.type + ' is unknown');
|
|
}
|
|
});
|
|
};
|
|
|
|
}(jQuery));
|
|
|
|
$(function () {
|
|
$('[data-share]').each(function () {
|
|
$(this).share({type: $(this).data('share')});
|
|
});
|
|
});
|
|
|
|
(function ($) {
|
|
|
|
/**
|
|
* @param {object} _options
|
|
*/
|
|
$.fn.snapTo = function (_options) {
|
|
var options = {
|
|
elementClass: 'post'
|
|
};
|
|
$.extend(options, _options);
|
|
var $container = $(this);
|
|
var $elements = $container.find('.' + options.elementClass + ':visible');
|
|
var stopSnapTo = false;
|
|
|
|
var snapTimeout = null;
|
|
var snapHandler = function() {
|
|
if (!stopSnapTo) {
|
|
stopSnapTo = true;
|
|
var y = $container.scrollLeft();
|
|
$elements.each(function () {
|
|
var offset = $(this).offset();
|
|
if (offset.left > -(window.screen.width / 2) && offset.left < window.screen.width / 2) {
|
|
$container.animate({
|
|
scrollLeft: Math.round(y + offset.left) + 'px'
|
|
}, 300);
|
|
return false;
|
|
}
|
|
});
|
|
if (snapTimeout) {
|
|
clearTimeout(snapTimeout);
|
|
}
|
|
snapTimeout = setTimeout(function () {
|
|
stopSnapTo = false;
|
|
}, 500);
|
|
}
|
|
}
|
|
var snapToHandlerTimer = null;
|
|
var scrollHandler = function() {
|
|
if (snapToHandlerTimer) {
|
|
clearTimeout(snapToHandlerTimer);
|
|
}
|
|
snapToHandlerTimer = setTimeout(snapHandler, 300);
|
|
};
|
|
|
|
$container.on( "scroll", scrollHandler);
|
|
};
|
|
|
|
}(jQuery));
|
|
|
|
$(function () {
|
|
$('[data-snapto]').each(function () {
|
|
$(this).snapTo($(this).data('snapto'));
|
|
});
|
|
});
|
|
|
|
(function ($) {
|
|
|
|
/**
|
|
* @param {object} _options
|
|
*/
|
|
$.fn.tabs = function (_options) {
|
|
var options = {
|
|
tabClass: 'box_header',
|
|
activeClass: 'active',
|
|
contentClass: 'tab_content'
|
|
};
|
|
$.extend(options, _options);
|
|
var $tabs = $(this).find('.' + options.tabClass);
|
|
var $container = $(this);
|
|
|
|
$tabs.click(function (e) {
|
|
e.preventDefault();
|
|
$tabs.removeClass(options.activeClass);
|
|
$container.find('.' + options.contentClass).removeClass(options.activeClass);
|
|
$container.find('#' + $(this).data('tab-content-id')).addClass(options.activeClass);
|
|
$(this).addClass(options.activeClass);
|
|
});
|
|
};
|
|
|
|
}(jQuery));
|
|
|
|
$(function () {
|
|
$('[data-tabs]').each(function () {
|
|
$(this).tabs($(this).data('tabs') ?? {});
|
|
});
|
|
});
|