PageSourceSearch

https://studentpool.nl/wp-content/themes/bz-studentpool/assets/javascripts/custom.js?v=0-8-2

js studentpool.nl collected 2026-10-08 08:26:23 UTC 21,515 bytes, 713 lines download raw bytes

1jQuery(window).on('load', function () {
2    renderDimensions();
3    topMenu();
4    liveSearch();
5    setTimeout(function () {
6        editForm();
7    }, 100);
8    breakpointImages();
9
10
11    $('.scrolldown-icon').on('click', () => {
12        window.scrollTo({
13            top: window.innerHeight * .8,
14            behavior: 'smooth'
15        });
16    })
17
18    setTimeout(function () {
19        if (jQuery('.brick-usps-1').length) {
20            renderAwards();
21        }
22    }, 200);
23
24    if (jQuery('.cookie-popup').is(':visible')) {
25        jQuery('body').addClass('popup-overlay');
26        jQuery('.toggle-cookie-btn').on('click', function () {
27            jQuery(this).parents('.cookie-popup').addClass('show-settings');
28        });
29    }
30
31    jQuery(".rnFormGroup .rnFileUpload").addClass('custom-upload');
32
33    jQuery('.less').on('click', function () {
34        jQuery('.cookie-popup-bottom-left input').each(function () {
35            jQuery(this).prop('checked', true);
36        });
37        jQuery('.save-close').click();
38    })
39
40    jQuery('.nav-toggle').on('click', function () {
41        if (jQuery('body').hasClass('nav-open')) {
42            jQuery('body').removeClass('nav-open');
43            jQuery('html').css('overflow', 'auto');
44        } else {
45            jQuery('body').addClass('nav-open');
46            jQuery('html').css('overflow', 'hidden');
47        }
48    });
49
50    jQuery('.faq-select select').change(function () {
51        var value = this.value;
52        jQuery('.item-faq-1').each(function () {
53            if ($(this).is('[data-tags*="' + value + '"]')) {
54                $(this).css("opacity", "1");
55            } else if (value == "") {
56                $(this).css("opacity", "1");
57            } else {
58                $(this).css("opacity", "0.3");
59            }
60        });
61    });
62
63    jQuery(window).scroll(function () {
64        var scroll = jQuery(window).scrollTop();
65        if (scroll >= 100) {
66            jQuery(".header").addClass("smaller");
67        } else {
68            jQuery(".header").removeClass("smaller");
69        }
70    });
71
72    jQuery(window).esAnimations({
73        extraPercentageHeight: 0,
74        delay: 250,
75        strength: 50,
76        speed: 500,
77        easing: 'linear'
78    });
79
80
81    if (jQuery('.brick-quote-2 .background').hasClass('bg-gray-1')) {
82        jQuery('.brick-quote-2 .quote-content .title b, .brick-quote-2 .quote-content .title strong').addClass('clr-green-1');
83    }
84
85    if (jQuery('.brick-vacature-single-1').length) {
86        jQuery(document).on('gform_confirmation_loaded', function (event, formId) {
87            jQuery('.vacancy-signup').hide();
88            jQuery('.thank-you').show();
89        });
90    }
91
92    if (jQuery('.brick-cta-1').length && jQuery('.brick-cta-1 .background .visual').hasClass('bg-blue-2')) {
93        jQuery('.brick-cta-1').addClass('blue-variant');
94    }
95
96    jQuery('.brick-news-selected-1 .news-read-more-in').on('click', function () {
97        jQuery('.brick-news-selected-1 .item-news-archive-1:nth-child(4)').show();
98        jQuery('.brick-news-selected-1 .item-news-archive-1:nth-child(5)').show();
99        jQuery('.brick-news-selected-1 .item-news-archive-1:nth-child(6)').show();
100        jQuery(this).hide();
101    });
102
103
104    jQuery('.brick-news-archive-1').on('click', '.new-read-more', function () {
105        var read_more = jQuery(this);
106        var url = read_more.data('next-page');
107
108
109        showLoader();
110        jQuery.ajax({
111            type: 'get',
112            url: url,
113            dataType: 'HTML',
114            success: function (response) {
115                var html = jQuery(response);
116
117
118                html.find('.loop.loop-news-archive-1 .item.item-news-archive-1').insertBefore(".loop.loop-news-archive-1 .clear");
119
120                if (html.find('.new-read-more').length) {
121                    read_more.data('next-page', html.find('.new-read-more').data('next-page'));
122                } else {
123                    read_more.hide();
124                }
125
126                hideLoader();
127            },
128        });
129    })
130
131});
132
133jQuery(window).on('resize', function () {
134    renderDimensions();
135    topMenu();
136    breakpointImages();
137});
138
139jQuery(window).on('scroll', function () {
140});
141
142
143/** ESSENTIALS **/
144jQuery('body,html').esJumper({
145    offsetContainer: false,
146    breakpoints: [
147        {
148            width: 768,
149            offsetContainer: false,
150        }, {
151            width: 480,
152            offsetContainer: false,
153        }
154    ],
155    offsetTop: 0,
156    perfectScroll: false,
157    blockSelector: '.block',
158    hasLazyload: false
159});
160
161jQuery('.video').esVideo({
162    initType: 'click', //load, click, popup, bg
163    resizeType: 'ratio', //ratio, container
164    mute: false,
165    controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions', 'fullscreen']
166});
167
168jQuery('.video-background').esVideo({
169    initType: 'bg', //load, click, popup, bg
170    resizeType: 'container', //ratio, container
171    bgContainer: ".background-in",
172    mute: false,
173    controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions', 'fullscreen']
174});
175
176
177jQuery('.brick-featured-2 .columns').esEqual({
178    itemSelector: ".column",
179    maxAuto: true,
180    maxAutoWidth: 768,
181    perRow: false,
182    extraAttributes: []
183});
184
185jQuery('.loop-steps-1').esEqual({
186    itemSelector: ".title",
187    maxAuto: true,
188    maxAutoWidth: 480,
189    perRow: false,
190    extraAttributes: []
191});
192
193jQuery('.loop-vacature-selected-1').esEqual({
194    itemSelector: ".vacature-loop-text",
195    maxAuto: true,
196    maxAutoWidth: 480,
197    perRow: false,
198    extraAttributes: []
199});
200
201jQuery(window).esAnimations({
202    extraPercentageHeight: 0,
203    delay: 250,
204    strength: 50,
205    speed: 500,
206    easing: 'linear'
207});
208
209
210jQuery('.brick-steps-1').esSlider({
211    itemSelector: '.item-steps-1',
212    itemsVisible: 4,
213    itemsScroll: 1,
214    orientation: 'horizontal',
215    breakpoints: [
216        {
217            width: 480,
218            itemsVisible: 1,
219            itemsScroll: 1,
220            orientation: 'horizontal',
221        },
222        {
223            width: 768,
224            itemsVisible: 2,
225            itemsScroll: 1,
226            orientation: 'horizontal',
227        },
228        {
229            width: 1024,
230            itemsVisible: 3,
231            itemsScroll: 1,
232            orientation: 'horizontal',
233        }
234    ],
235    arrows: true,
236    arrowLeft: '.arrow-left',
237    arrowRight: '.arrow-right',
238    auto: false,
239    autoDelay: 5000,
240    autoToggle: false,
241    autoToggleStart: '.play',
242    autoTogglePause: '.pause',
243    autoProgress: false,
244    autoProgressSelector: '.progress',
245    transition: true,
246    transitionDuration: 300,
247    transitionEasing: 'easeInOutExpo',
248    wrapper: true,
249    wrapperSelector: ".wrapper",
250    center: false,
251    loop: false,
252    dots: true,
253    dotsContainer: ".dots",
254    dotsItemGenerate: true,
255    dotsItemSelector: false,
256    scrollable: true,
257    draggable: true,
258    checkActive: false,
259    linkItemCheck: false,
260    linkItemSelector: ".link-item",
261    secondLinkItemCheck: false,
262    secondLinkItemSelector: ".link-item-second",
263    hoverStopAuto: false,
264    hoverStopAutoSelector: ".hover-stop",
265    setActiveAttribute: false,
266    setItemHeight: false,
267    onSlideChange: function (slider) {
268    },
269});
270
271jQuery('.brick-vacature-selected-1').esSlider({
272    itemSelector: '.item-vacature-selected-1',
273    itemsVisible: 3,
274    itemsScroll: 1,
275    orientation: 'horizontal',
276    breakpoints: [
277        {
278            width: 768,
279            itemsVisible: 1,
280            itemsScroll: 1,
281        }
282    ],
283    arrows: true,
284    arrowLeft: '.arrow-left',
285    arrowRight: '.arrow-right',
286    auto: false,
287    autoDelay: 5000,
288    autoToggle: false,
289    autoToggleStart: '.play',
290    autoTogglePause: '.pause',
291    autoProgress: false,
292    autoProgressSelector: '.progress',
293    transition: true,
294    transitionDuration: 300,
295    transitionEasing: 'easeInOutExpo',
296    wrapper: true,
297    wrapperSelector: ".wrapper",
298    center: false,
299    loop: false,
300    dots: true,
301    dotsContainer: ".dots",
302    dotsItemGenerate: true,
303    dotsItemSelector: false,
304    scrollable: false,
305    draggable: false,
306    checkActive: false,
307    linkItemCheck: false,
308    linkItemSelector: ".link-item",
309    secondLinkItemCheck: false,
310    secondLinkItemSelector: ".link-item-second",
311    hoverStopAuto: false,
312    hoverStopAutoSelector: ".hover-stop",
313    setActiveAttribute: false,
314    setItemHeight: false,
315    onSlideChange: function (slider) {
316    },
317});
318
319const $tnsCarousel = $('.brick-vacature-recruitnow-selected-1 .loop-vacature-recruitnow-selected-1');
320$tnsCarousel.each(function () {
321    const tnsSlider = tns({
322        container: this,
323        items: 1,
324        slideBy: 1,
325        gutter: 16,
326        edgePadding: 50,
327        loop: true,
328        autoplayButtonOutput: false,
329        controls: true,
330        nav: true,
331        controlsContainer: '.brick-vacature-recruitnow-selected-1 .job-slider-arrows',
332        preventActionWhenRunning: true,
333        mouseDrag: false,
334        responsive: {
335            768: {
336                item: 2,
337            },
338            981: {
339                items: 3,
340                gutter: 24
341            }
342        }
343    });
344});
345
346
347/** EVENTS **/
348jQuery('.item-faq-1 .faq-loop-title').on('click', function () {
349    var item = jQuery(this).parents('.item');
350    var bottom = item.find('.faq-loop-text');
351
352    if (item.hasClass('opened')) {
353        item.removeClass('opened');
354        bottom.stop().slideUp(200);
355    } else {
356        item.addClass('opened');
357        bottom.stop().slideDown(200);
358    }
359})
360
361jQuery(".item-faq-1 .faq-loop-title").on('click', function () {
362    if (jQuery(this).hasClass('arrow-rotate')) {
363        jQuery(this).removeClass('arrow-rotate');
364
365    } else {
366        jQuery(this).addClass('arrow-rotate');
367    }
368});
369
370
371/** FUNCTIONS **/
372
373/** RENDER DIMENSIONS **/
374function renderDimensions() {
375    var windowWidth = jQuery(window).width();
376    var windowHeight = jQuery(window).height();
377
378    var documentWidth = jQuery(document).width();
379    var documentHeight = jQuery(document).height();
380
381    jQuery('.stretch').each(function () {
382        var stretchElement = jQuery(this);
383        var baseElement = stretchElement.parents('.brick');
384        if (jQuery(this).parents('.stretch-base').length) {
385            baseElement = stretchElement.parents('.stretch-base');
386        }
387        var stretchPosition = stretchElement.offset();
388        var blockPosition = baseElement.offset();
389
390        /** STRETCH TOP TO TOP BLOCK **/
391        if (stretchElement.hasClass('stretch-top')) {
392            stretchElement.css('top', '0px');
393            stretchPosition = stretchElement.offset();
394            var topDiff = blockPosition.top - stretchPosition.top;
395            if (parseInt(topDiff) < 0) {
396                stretchElement.css('top', parseInt(topDiff) + 'px');
397            }
398        }
399
400        if (stretchElement.hasClass('stretch-top-margin')) {
401            stretchElement.css('top', '0px');
402            stretchPosition = stretchElement.offset();
403            var topDiff = blockPosition.top - stretchPosition.top;
404            if (parseInt(topDiff) < 0) {
405                stretchElement.css('margin-top', parseInt(topDiff) + 'px');
406            }
407        }
408
409        /** STRETCH BOTTOM TO BOTTOM BLOCK **/
410        if (stretchElement.hasClass('stretch-bottom')) {
411            stretchElement.css('bottom', '0px');
412            stretchPosition = stretchElement.offset();
413            var bottomDiff = (stretchPosition.top + stretchElement.height()) - (blockPosition.top + baseElement.height());
414            if (parseInt(bottomDiff) < 0) {
415                stretchElement.css('bottom', parseInt(bottomDiff) + 'px');
416            }
417
418        }
419        /** STRETCH RIGHT TO RIGHT VIEWPORT **/
420        if (stretchElement.hasClass('stretch-right')) {
421            stretchElement.css('right', '0px');
422            stretchPosition = stretchElement.offset();
423            var rightDiff = (stretchPosition.left + stretchElement.width()) 
423- jQuery(window).width();
424            if (parseInt(rightDiff) < 0) {
425                stretchElement.css('right', parseInt(rightDiff) + 'px');
426            }
427        }
428        if (stretchElement.hasClass('stretch-right-margin')) {
429            stretchElement.css('right', '0px');
430            stretchPosition = stretchElement.parent().offset();
431            var rightDiff = Math.floor((stretchPosition.left + stretchElement.parent().width()) - jQuery(window).width());
432            if (parseInt(rightDiff) < 0) {
433                stretchElement.css('margin-right', parseInt(rightDiff) + 'px');
434            }
435        }
436        /** STRETCH LEFT TO LEFT VIEWPORT **/
437        if (stretchElement.hasClass('stretch-left')) {
438            stretchElement.css('left', '0px');
439            stretchPosition = stretchElement.offset();
440            var leftDiff = Math.floor(-stretchPosition.left);
441            if (parseInt(leftDiff) < 0) {
442                stretchElement.css('left', parseInt(leftDiff) + 'px');
443            }
444        }
445    });
446
447}
448
449/** OTHER FUNCTIONS **/
450
451function topMenu() {
452    let heightHeader = jQuery('.header').outerHeight();
453    jQuery('.header-nav').css({
454        'padding-top': heightHeader,
455    });
456}
457
458function liveSearch() {
459    jQuery(".faq-search input[type=\"search\"]").on('keyup', function () {
460        jQuery(this).unhighlight();
461
462        var filter = jQuery(this).val();
463        var totalQuestionsFound = 0;
464        var block = jQuery(this).parents('.brick-in')
465        var faqEmpty = block.find('.faq-empty');
466        if (filter.length != 0) {
467
468            var totalQuestions = 0;
469            var questions = block.find('.item-faq-1');
470            questions.each(function () {
471                if (jQuery(this).text().search(new RegExp(filter, "i")) < 0) {
472                    jQuery(this).removeClass('opened');
473                    jQuery(this).find('.faq-loop-text').hide();
474                    jQuery(this).hide()
475                } else {
476                    totalQuestions++;
477                    jQuery(this).show();
478                    jQuery(this).addClass('opened');
479                    jQuery(this).find('.faq-loop-text').show();
480                    jQuery(this).unhighlight().highlight(filter);
481                }
482            });
483            totalQuestionsFound = totalQuestionsFound + totalQuestions;
484        } else {
485            jQuery(this).parents('.brick-in').find('.item-faq-1').each(function () {
486                jQuery(this).unhighlight();
487                jQuery(this).show();
488            });
489            totalQuestionsFound = 1;
490        }
491        if (totalQuestionsFound == 0) {
492            faqEmpty.show();
493            block.find('.faq-student, .faq-employer, .faq-zigzag').hide();
494        } else {
495            faqEmpty.hide();
496            block.find('.faq-student, .faq-employer, .faq-zigzag').show();
497        }
498    });
499}
500
501function editForm(scope) {
502    let $scope = scope ? jQuery(scope) : jQuery(document);
503
504    if ($scope.length === 0) {
505        $scope = jQuery(document);
506    }
507
508    let checkbox = $scope.find('.ginput_container input.gfield-choice-input, .rnFormWrapper .rnField.rncheckboxField input, .rnFormWrapper .rnField.rnagree-privacy input');
509    checkbox.each(function () {
510        let $input = jQuery(this);
511        let $wrapper = $input.parent('.custom-radio');
512
513        if ($wrapper.length === 0) {
514            $input.wrap('<label class="custom-radio"></label>');
515            $wrapper = $input.parent('.custom-radio');
516        }
517
518        if ($wrapper.find('> .radio-circle').length === 0) {
519            $input.after('<span class="radio-circle"></span>');
520        }
521    });
522
523    $scope.find('.oe_formElement .oe_fileElement span.oe_label, .rnFormWrapper .rnField label[for="cvFile"]').text('Heb je een CV? Zo ja: Upload die dan onderstaand!')
524}
525
526var scrollTop = 0;
527
528jQuery.fn.isInViewport = function () {
529    var elementTop = jQuery(this).offset().top;
530    var elementBottom = elementTop + jQuery(this).outerHeight();
531
532    var viewportTop = jQuery(window).scrollTop();
533    var viewportBottom = viewportTop + jQuery(window).height();
534
535    return elementBottom > viewportTop && elementTop < viewportBottom;
536};
537
538function renderAwards() {
539    if (jQuery('.usps-coin').isInViewport()) {
540        counter();
541    } else {
542        jQuery(window).on('scroll', function () {
543            if (jQuery('.usps-coin').isInViewport()) {
544                counter();
545            }
546        })
547    }
548}
549
550function counter() {
551    jQuery('.count-up').each(function () {
552        var counter = jQuery(this);
553        setTimeout(function () {
554            jQuery({Counter: 0}).animate({Counter: counter.attr('data-count')}, {
555                duration: 1000,
556                easing: 'swing',
557                step: function (now) {
558                    counter.text(Math.ceil(now));
559                }
560            });
561        }, 1000);
562
563        counter.removeClass('count-up');
564    });
565
566}
567
568function breakpointImages() {
569    let windowWidth = jQuery(window).width();
570    let breakpointImg = jQuery('.breakpoint-images');
571
572    breakpointImg.each(function () {
573        let imgAll = jQuery(this).find('.img-show');
574
575        let imgNormal = jQuery(this).find('.img-show-normal');
576        let imgDesktopBig = jQuery(this).find('.img-show-desktop-big');
577        let imgDesktop = jQuery(this).find('.img-show-desktop');
578        let imgLandscape = jQuery(this).find('.img-show-landscape');
579        let imgPortrait = jQuery(this).find('.img-show-portrait');
580        let imgMobile = jQuery(this).find('.img-show-mobile');
581
582        if (windowWidth <= 480 && imgMobile.length) {
583            imgAll.not(imgMobile).hide();
584            imgMobile.show();
585        } else if (windowWidth <= 768 && imgPortrait.length) {
586            imgAll.not(imgPortrait).hide();
587            imgPortrait.show();
588        } else if (windowWidth <= 1024 && imgLandscape.length) {
589            imgAll.not(imgLandscape).hide();
590            imgLandscape.show();
591        } else if (windowWidth <= 1224 && imgDesktop.length) {
592            imgAll.not(imgDesktop).hide();
593            imgDesktop.show();
594        } else if (windowWidth <= 1920 && imgDesktopBig.length) {
595            imgAll.not(imgDesktopBig).hide();
596            imgDesktopBig.show();
597        } else {
598            imgAll.not(imgNormal).hide();
599            imgNormal.show();
600        }
601    });
602}
603
604jQuery('.quickmenu select').on('change', function (e) {
605    window.location.href = e.target.value;
606})
607
608jQuery(document).ready(function () {
609    jQuery('.filter-toggle').on('click', function () {
610        jQuery('body').toggleClass('filter-on');
611    });
612
613    jQuery('.filter-close').on('click', function () {
614        jQuery('body').toggleClass('filter-on');
615    });
616
617    jQuery('.filter-close-button').on('click', function () {
618        jQuery('body').toggleClass('filter-on');
619    });
620
621});
622
623function getGravityFormScrollOffset($form) {
624    var extraOffset = jQuery(window).width() < 768 ? 150 : 200;
625    var headerHeight = (jQuery('header').first().outerHeight() || 0) + extraOffset;
626
627    if (jQuery('body').hasClass('admin-bar')) {
628        headerHeight += 32;
629    }
630
631    return Math.max($form.offset().top - headerHeight, 0);
632}
633
634function scrollGravityFormToTarget($target) {
635    if ($target.length === 0) {
636        return;
637    }
638
639    var targetTop = getGravityFormScrollOffset($target);
640
641    if (window.scrollTo) {
642        window.scrollTo({
643            top: targetTop,
644            behavior: 'smooth'
645        });
646        return;
647    }
648
649    jQuery('html, body').stop().animate({
650        scrollTop: targetTop
651    }, 320);
652}
653
654function animateGravityFormStep(formId) {
655    var $wrapper = jQuery('#gform_wrapper_' + formId);
656    var $form = jQuery('#gform_' + formId);
657
658    if ($wrapper.length === 0 || $form.length === 0) {
659        return;
660    }
661
662    $wrapper.removeClass('gf-page-switching gf-page-enter-active').addClass('gf-page-enter');
663
664    window.requestAnimationFrame(function () {
665        $wrapper.addClass('gf-page-enter-active');
666    });
667
668    window.setTimeout(function () {
669        $wrapper.removeClass('gf-page-enter gf-page-enter-active');
670    }, 320);
671}
672
673jQuery(document).on('click', '.gform_next_button, .gform_previous_button', function () {
674    jQuery(this)
675        .closest('.gform_wrapper')
676        .addClass('gf-page-switching')
677        .attr('data-gf-scroll-pending', '1');
678});
679
680jQuery(document).on('gform_page_loaded', function (event, formId) {
681    var $form = jQuery('#gform_' + formId);
682    var $wrapper = jQuery('#gform_wrapper_' + formId);
683
684    editForm($wrapper.length ? $wrapper : $form);
685    animateGravityFormStep(formId);
686    window.setTimeout(function () {
687        scrollGravityFormToTarget($wrapper.length ? $wrapper : $form);
688    }, 20);
689    $wrapper.removeAttr('data-gf-scroll-pending');
690});
691
692jQuery(document).on('gform_post_render', function (event, formId) {
693    var $wrapper = jQuery('#gform_wrapper_' + formId);
694    var $form = jQuery('#gform_' + formId);
695
696    editForm($wrapper.length ? $wrapper : $form);
697    $wrapper.removeClass('gf-page-switching');
698
699    if ($wrapper.attr('data-gf-scroll-pending') === '1') {
700        window.setTimeout(function () {
701            scrollGravityFormToTarget($wrapper.length ? $wrapper : $form);
702            $wrapper.removeAttr('data-gf-scroll-pending');
703        }, 50);
704    }
705});
706
707jQuery(document).on('gform_confirmation_loaded', function (event, formId) {
708    var $confirmation = jQuery('#gform_confirmation_wrapper_' + formId);
709
710    window.setTimeout(function () {
711        scrollGravityFormToTarget($confirmation);
712    }, 20);
713});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.