PageSourceSearch

https://www.latrobecollegeaustralia.edu.au/wp-content/themes/wp-la-trobe-college/js/custom.js?ver=1

js latrobecollegeaustralia.edu.au collected 2026-10-03 22:10:13 UTC 17,125 bytes, 497 lines download raw bytes

1var $ = jQuery.noConflict();
2
3// Open Navigation Menu by click on mobile
4// disabled for UPA
5(function($){
6    /*$('.dropdown-menu .dropdown-toggle').on('click', function(e) {
7        if (!$(this).next().hasClass('show')) {
8            $(this).parents('.dropdown-menu').first().find('.show').removeClass("show");
9        }
10        var $subMenu = $(this).next(".dropdown-menu");
11        if ( $subMenu.hasClass( 'show') ) {
12            $subMenu.removeClass('show');
13        } else {
14            $subMenu.addClass('show');
15        }
16        //$subMenu.toggleClass('show');
17
18        $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) {
19            $('.dropdown-submenu .show').removeClass("show");
20        });
21
22        return false;
23    });*/
24})(jQuery);
25
26// Open background search panel on mobile
27/***
28$('#mobile_site_search_container').on('show.bs.dropdown', function () {
29    $('.mobile-search-overlay').addClass('active');
30    $('body').addClass('no-scroll');
31});
32
33
34// Close background search panel on mobile
35$('#mobile_site_search_container').on('hide.bs.dropdown', function () {
36    $('.mobile-search-overlay').removeClass('active');
37    $('body').removeClass('no-scroll');
38});
39***/
40
41// Toggle up/down arrows on mobile menu
42$('.mobile_nav_item_toggler').on('click', function(event) {
43    var target_element = event.target;
44    var target_element_node = event.target.nodeName;
45    console.log(target_element);
46
47    if(target_element_node == 'SPAN') {
48        var top_level_icons = $('.mobile_nav_item_toggler_icon.level-0').not($(target_element));
49        $(target_element).toggleClass("fa-chevron-down fa-chevron-up");
50    } else if(target_element_node == 'DIV') {
51        var top_level_icons = $('.mobile_nav_item_toggler_icon.level-0').not($(target_element.querySelector('span')));
52        $(target_element.querySelector('span')).toggleClass("fa-chevron-down fa-chevron-up");
53    }
54    if(top_level_icons.hasClass('fa-chevron-up')) {
55        top_level_icons.removeClass('fa-chevron-up');
56        top_level_icons.addClass('fa-chevron-down');
57    }
58});
59
60$(document).ready(function(){
61
62    $('.close-mega-menu').click(function() {
63        $('.navlink.dropdown-toggle').removeClass('show');
64        $('.dropdown-menu.megamenu').removeClass('show');
65    });
66
67    // Change hamburger menu icon
68    $('#ChangeToggle').click(function() {
69        $('#navbar-hamburger').toggleClass('d-none');
70        if($('#navbar-close').hasClass('d-none')) {
71            $('#navbar-close').removeClass('d-none');
72            $('#main_navigation_toggle').addClass('show');
73        } else {
74            $('#navbar-close').addClass('d-none');
75            $('#main_navigation_toggle').removeClass('show');
76        }
77    });
78
79    // Site Search Validation
80    $('.dropdown-menu.dropdown-menu-right').on('click', function(e) {
81        e.stopPropagation();
82    });
83    $('.site-search-form-nav').submit(function(e){
84        $('.site-search-err-nav').addClass('d-none');
85        if($('.site-search-input-nav').val() == '') {
86            e.preventDefault();
87            $('.site-search-err-nav').removeClass('d-none');
88        }
89    });
90    $('.site-search-form').submit(function(e){
91        $('.site-search-err').addClass('d-none');
92        if($('.site-search-input').val() == '') {
93            e.preventDefault();
94            $('.site-search-err').removeClass('d-none');
95        }
96    });
97
98
99    $delayClass = '';
100    $(document).on('mouseenter', '.submenu-button', function () {
101    //$('.nav-item-desktop.dropdown').hover(function() {
102        //$(this).addClass("nav-arrow-active");
103
104
105        var parentclass = $(this).parent();
106
107        $delayClass = setTimeout(function(){
108
109            $(parentclass).find('.dropdown-menu').fadeIn();
110            $(this).addClass("nav-arrow-active");
111        }, 1000);
112
113        //$(parentclass).find('.dropdown-menu').delay(800).fadeIn();
114
115
116
117
118        $this = $(this);
119
120    });
121
122    $(document).on('mouseleave', '.submenu-button', function () {
123    //$('.nav-item-desktop.dropdown').hover(function() {
124
125        $(this).removeClass("nav-arrow-active");
126
127        var parentclass = $(this).parent();
128
129        clearTimeout($delayClass);
130
131        $delayClass = setTimeout(function(){
132            $(parentclass).find('.dropdown-menu').fadeOut();
133        }, 1000);
134
135        //$(parentclass).find('button').removeClass('nav-arrow-active');
136    });
137
138    $('#menu-main-nav > .menu-item').hover(function() {
139        clearTimeout($delayClass);
140        $('#menu-main-nav .menu-item .dropdown-menu').hide();
141
142            $(this).find('.sub-menu').show();
143            $(this).find('.dropdown-menu').addClass("nav-arrow-active");
144
145    },
146    function() { // leave hover
147
148        clearTimeout($delayClass);
149        $('#menu-main-nav .menu-item .dropdown-menu').hide();
150        $delayClass = setTimeout(function(){
151
152            $(this).find('.sub-menu').hide();
153            $(this).find('.dropdown-menu').addClass("nav-arrow-active");
154        }, 1000);
155    });
156
157    $('.sub-menu .menu-item').hover(function() {
158        clearTimeout($delayClass);
159
160        $(this).parent().siblings(".submenu-button").addClass("nav-arrow-active");
161        $(this).parent().show();
162    },
163    function () { // leave hover
164
165        $(this).parent().hide();
166        $(this).parent().siblings(".submenu-button").removeClass("nav-arrow-active");
167    });
168
169    // Add smooth scrolling to all links
170    $(".a-z-content a").on('click', function(event) {
171        if (this.hash !== "") {
172            // Prevent default anchor click behavior
173            event.preventDefault();
174            // Store hash
175            var hash = this.hash;
176            // The optional number (800) specifies the number of milliseconds it takes to 
176scroll to the specified area
177            $('html, body').animate({
178                scrollTop: $(hash).offset().top
179            }, 800, function(){
180                // Add hash (#) to URL when done scrolling (default click behavior)
181                window.location.hash = hash;
182            });
183        } // End if
184    });
185
186
187    // Add card shadow on hover
188    $( '.news-events-social-feeds .media' ).hover(function(){
189        $(this).addClass( 'shadow' );
190
191    }, function(){
192        $(this).removeClass( 'shadow' );
193    });
194
195    //Scroll to top
196    var $window = $(window);
197    var $buttonTop = $('.scroll-top')
198    var scrollTimer;
199    $('.scroll-top').on('click', function () {
200        $('html, body').animate({
201            scrollTop: 0,
202        }, 400);
203    });
204
205    $window.on('scroll', function () {
206        clearTimeout(scrollTimer);
207        scrollTimer = setTimeout(function() {
208            if ($window.scrollTop() > 100) {
209                $buttonTop.addClass('scroll-top-visible');
210            } else {
211                $buttonTop.removeClass('scroll-top-visible');
212            }
213        }, 250);
214    });
215
216    // Navigation accessibility
217    var menuItems = document.querySelectorAll('#menu-main-nav li.dropdown');
218    Array.prototype.forEach.call(menuItems, function (el, i) {
219        var activatingA = el.querySelector('a');
220        var customClass = $(activatingA).attr('id');
221
222        var btn = '<button class="btn-'+customClass+' submenu-button"><span><span class="visuallyhidden">show submenu for ' + activatingA.text + '</span></span></button>';
223        activatingA.insertAdjacentHTML('afterend', btn);
224
225        el.querySelector('button').addEventListener("click", function (event) {
226            var thisElement = (this.className);
227
228            //console.log( $(this).parents().hasClass('active'));
229
230            var parent_active = false;
231            if ( $(this).parents().hasClass('active') ) {
232                parent_active = true;
233            }
234
235
236            //console.log($('.'+thisElement).next().next());
237            //if (this.parentNode.className == "dropdown") {
238
239            var findclassname = "dropdown open";
240
241            if(this.parentNode.className.indexOf('dropdown') != -1 &&
242                this.parentNode.className.indexOf('open') != -1) {
243
244                this.parentNode.className = "dropdown";
245                this.parentNode.querySelector('a').setAttribute('aria-expanded', "true");
246                this.parentNode.querySelector('button').setAttribute('aria-expanded', "true");
247                //this.parentNode.querySelector('ul').setAttribute('class', "dropdown-menu open");
248                this.parentNode.querySelector('ul').setAttribute('aria-expanded', "true");
249                //$('.dropdown ul.dropdown-menu').hide();
250                $('.' + thisElement).next().next().hide();
251
252            } else if (this.parentNode.className.indexOf('dropdown') != -1) {
253                this.parentNode.className = "dropdown  open";
254                this.parentNode.querySelector('a').setAttribute('aria-expanded', "true");
255                this.parentNode.querySelector('button').setAttribute('aria-expanded', "true");
256                //this.parentNode.querySelector('ul').setAttribute('class', "dropdown-menu open");
257                this.parentNode.querySelector('ul').setAttribute('aria-expanded', "true");
258                //$('.dropdown ul.dropdown-menu').show();
259                $('.' + thisElement).next().next().show();
260
261            } else {
262                this.parentNode.className = "dropdown";
263                this.parentNode.querySelector('a').setAttribute('aria-expanded', "false");
264                this.parentNode.querySelector('button').setAttribute('aria-expanded', "false");
265                //this.parentNode.querySelector('ul').setAttribute('class', "dropdown-menu");
266                this.parentNode.querySelector('ul').setAttribute('aria-expanded', "false");
267                //$('.dropdown ul.dropdown-menu').hide();
268                $('.' + thisElement).next().next().hide();
269
270            }
271
272            if (parent_active == true) {
273                $(this).parent().addClass('active');
274            }
275            event.preventDefault();
276        });
277    });
278
279    $(document).on('click', '.submenu-button', function () {
280    //$('.submenu-button').click(function() {
281
282        if ( $(this).hasClass("nav-arrow-active") ) {
283            $(this).removeClass('nav-arrow-active');
284            $(this).siblings('.sub-menu').hide();
285
286        } else {
287            $('.submenu-button').removeClass('nav-arrow-active');
288            $('.sub-menu').hide();
289
290            $(this).addClass('nav-arrow-active');
291            $(this).siblings('.sub-menu').show();
292        }
293    });
294
295
296    var singleMenuItems = document.querySelectorAll('#menu-main-nav li');
297    Array.prototype.forEach.call(singleMenuItems, function (el, i) {
298
299        el.querySelector('a').addEventListener("focus", function (event) {
300
301            //if (this.parentNode.className == "dropdown") {
302            if (this.className.indexOf('dropdown-toggle') == -1 &&
303                this.className.indexOf('dropdown-item') == -1) {
304                $('.dropdown ul.dropdown-menu').hide();
305
306                var listItems = $("#menu-main-nav li");
307                listItems.each(function (i) {
308                    //console.log(idx);
309                    var classname = $(this).attr('class');
310                    var attributeId = $(this).attr('id');
311                    if (classname.indexOf('open') != -1 ) {
312
313                        $('#'+attributeId).removeClass("open");
314                    }
315
316                });
317            }
318
319            event.preventDefault();
320        });
321    });
322
323    var searchMenu = document.querySelectorAll('.header__navbar div.header__menu-global-search-desktop');
324    Array.prototype.forEach.call(searchMenu, function (el, i) {
325        //console.log(el);
326        el.querySelector('button').addEventListener("focus", function (event) {
327
328            $('.dropdown ul.dropdown-menu').hide();
329
330            var listItems = $("#menu-main-nav li");
331            listItems.each(function (i) {
332                //console.log(idx);
333                var classname = $(this).attr('class');
334                var attributeId = $(this).attr('id');
335                if (classname.indexOf('open') != -1) {
336
337                    $('#' + attributeId).removeClass("open");
338                }
339
340            });
341
342            event.preventDefault();
343        });
344    });
345
346    /***
347    // reduced header size (height on scroll)
348    $(document).on("scroll", function(){
349
350        if ($(document).scrollTop() > 80){
351            $(".header__navbar .header-contact .contact-item").addClass("shrink");
352            $(".header__logo.desktop").addClass("shrink");
353        } else {
354            $(".header__navbar .header-contact .contact-item").removeClass("shrink");
355            $(".header__logo.desktop").removeClass("shrink");
356        }
357
358    });***/
359});
360
361$(window).on('load', function(){
362    // Remove Table inline style attribute
363    $('th,tr,td').css('font-family','');
364});
365
366$(".event-select-widget").on('change', function(){
367    var param_value = $(this).val();
368    var param_name = $(this).prop('name');
369    var page_url = $(this).data('page-url');
370    window.location.href = page_url + '?' + param_name + '=' + param_value;
371});
372
373$(".news-select-widget").on('change', function(){
374    var param_value = $(this).val();
375    var param_name = $(this).prop('name');
376    var page_url = $(this).data('page-url');
377    window.location.href = page_url + '?' + param_name + '=' + param_value;
378});
379
380$(".future-event-select-widget").on('change', function(){
381    var param_value = $(this).val();
382    var param_name = $(this).prop('name');
383    var page_url = $(this).data('page-url');
384    window.location.href = page_url + '?' + param_name + '=' + param_value;
385});
386
387$(".events-by-month-select-widget").on('change', function(){
388    var param_value = $(this).val();
389    var param_name = $(this).prop('name');
390    var page_url = $(this).data('page-url');
391    window.location.href = page_url + '?' + param_name + '=' + param_value;
392});
393
394$(".news-by-month-select-widget").on('change', function(){
395    var param_value = $(this).val();
396    var param_name = $(this).prop('name');
397    var page_url = $(this).data('page-url');
398    window.location.href = page_url + '?' + param_name + '=' + param_value;
399});
400
401$(".blog-select-widget").on('change', function(){
402    var param_value = $(this).val();
403    var param_name = $(this).prop('name');
404    var page_url = $(this).data('page-url');
405    console.log(page_url + '?' + param_name + '=' + param_value);
406    window.location.href = page_url + '?' + param_name + '=' + param_value;
407});
408
409/***** Entry Requirements */
410$(".entry-requirements-select").on('change', function(e){
411    e.preventDefault();
412    var component_id = $(this).data('entry-req-id');
413    var option_value = $(this).val();
414
415    $(".entry-requirements-content-item-"+component_id).hide();
416    $("."+component_id+'-'+option_value).show();
417
418});
419/***** End Entry Requirements */
420
421/*** Staff Team ***/
422$(".staff-more").on('click', function(e) {
423
424    var expanded = $(this).text().trim();
425    var btn_id = $(this).attr('more-btn-id');
426    var group_id = $(this).attr('staff-team-group-id');
427
428    if (expanded == 'Show More...') {
429        $('.staff-team-group-' + group_id + ' .staff-more').text('Show More...');
430        $('.' + btn_id).text('Show Less');
431
432    } else {
433        $('.' + btn_id).text('Show More...');
434    }
435
436});
437/*** End Staff Team ***/
438
439/*** Bootstrap Mega Menu ***/
440document.addEventListener("DOMContentLoaded", function(){
441    /////// Prevent closing from click inside dropdown
442    document.querySelectorAll('.dropdown-menu').forEach(function(element){
443        element.addEventListener('click', function (e) {
444            e.stopPropagation();
445        });
446    })
447});
448/*** End Bootstrap Mega Menu ***/
449
450jQuery('.accordion  .card a').on('click', function() {
451
452    // Reference https://wordpress.org/support/topic/header-column-width/
453    var table_wrap = $(this).parent().siblings().find('.supsystic-tables-wrap');
454
455    table_wrap.each(function() {
456        //var fields = table_wrap.attr('id').split('-');
457        var fields = $(this).attr('id').split('-');
458
459        var table_id_fields = fields[2].split('_');
460
461        var table_id = table_id_fields[0];
462
463        window.supsystic.Tables.getTableInstanceById(table_id).fnAdjustColumnSizing();
464    });
465
466
467});
468
469
470/***** Video Iframe load */
471$('.youtube-video').on('click', function () {
472    var wrapper = $(this);
473    var thumbnail = wrapper.children('img');
474    var video_id = wrapper.data('videoId');
475    var video_source = wrapper.data('videoSource');
476    var video_source_url = '';
477    if ( video_source == 'vimeo' ) {
478        video_source_url = 'https://player.vimeo.com/video/' + video_id + '?autoplay=1&rel=0';
479    } else {
480        video_source_url = 'https://www.youtube.com/embed/' + video_id + '?autoplay=1';
481    }
482
483    var embed = document.createElement('iframe');
484    embed.src = video_source_url;
485    embed.title = thumbnail.attr('alt');
486    embed.allow = 'autoplay; fullscreen; picture-in-picture';
487    embed.allowFullscreen = true;
488    embed.width = '100%';
489    embed.height = '100%';
490    embed.rel = 0;
491    wrapper.html('');
492    wrapper.append(embed);
493});
494/***** End Video Iframe load */
495
496/***
497 el.querySelector('button').addEventListener("click", function (event) {*/

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.