PageSourceSearch

https://www.ecu.edu.lk/wp-content/themes/wp-edith-cowan-sri-lanka/js/custom.js?ver=1

js ecu.edu.lk collected 2026-10-07 07:09:52 UTC 17,126 bytes, 498 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
217    // Navigation accessibility
218    var menuItems = document.querySelectorAll('#menu-main-nav li.dropdown');
219    Array.prototype.forEach.call(menuItems, function (el, i) {
220        var activatingA = el.querySelector('a');
221        var customClass = $(activatingA).attr('id');
222
223        var btn = '<button class="btn-'+customClass+' submenu-button"><span><span class="visuallyhidden">show submenu for ' + activatingA.text + '</span></span></button>';
224        activatingA.insertAdjacentHTML('afterend', btn);
225
226        el.querySelector('button').addEventListener("click", function (event) {
227            var thisElement = (this.className);
228
229            //console.log( $(this).parents().hasClass('active'));
230
231            var parent_active = false;
232            if ( $(this).parents().hasClass('active') ) {
233                parent_active = true;
234            }
235
236
237            //console.log($('.'+thisElement).next().next());
238            //if (this.parentNode.className == "dropdown") {
239
240            var findclassname = "dropdown open";
241
242            if(this.parentNode.className.indexOf('dropdown') != -1 &&
243                this.parentNode.className.indexOf('open') != -1) {
244
245                this.parentNode.className = "dropdown";
246                this.parentNode.querySelector('a').setAttribute('aria-expanded', "true");
247                this.parentNode.querySelector('button').setAttribute('aria-expanded', "true");
248                //this.parentNode.querySelector('ul').setAttribute('class', "dropdown-menu open");
249                this.parentNode.querySelector('ul').setAttribute('aria-expanded', "true");
250                //$('.dropdown ul.dropdown-menu').hide();
251                $('.' + thisElement).next().next().hide();
252
253            } else if (this.parentNode.className.indexOf('dropdown') != -1) {
254                this.parentNode.className = "dropdown  open";
255                this.parentNode.querySelector('a').setAttribute('aria-expanded', "true");
256                this.parentNode.querySelector('button').setAttribute('aria-expanded', "true");
257                //this.parentNode.querySelector('ul').setAttribute('class', "dropdown-menu open");
258                this.parentNode.querySelector('ul').setAttribute('aria-expanded', "true");
259                //$('.dropdown ul.dropdown-menu').show();
260                $('.' + thisElement).next().next().show();
261
262            } else {
263                this.parentNode.className = "dropdown";
264                this.parentNode.querySelector('a').setAttribute('aria-expanded', "false");
265                this.parentNode.querySelector('button').setAttribute('aria-expanded', "false");
266                //this.parentNode.querySelector('ul').setAttribute('class', "dropdown-menu");
267                this.parentNode.querySelector('ul').setAttribute('aria-expanded', "false");
268                //$('.dropdown ul.dropdown-menu').hide();
269                $('.' + thisElement).next().next().hide();
270
271            }
272
273            if (parent_active == true) {
274                $(this).parent().addClass('active');
275            }
276            event.preventDefault();
277        });
278    });
279
280    $(document).on('click', '.submenu-button', function () {
281    //$('.submenu-button').click(function() {
282
283        if ( $(this).hasClass("nav-arrow-active") ) {
284            $(this).removeClass('nav-arrow-active');
285            $(this).siblings('.sub-menu').hide();
286
287        } else {
288            $('.submenu-button').removeClass('nav-arrow-active');
289            $('.sub-menu').hide();
290
291            $(this).addClass('nav-arrow-active');
292            $(this).siblings('.sub-menu').show();
293        }
294    });
295
296
297    var singleMenuItems = document.querySelectorAll('#menu-main-nav li');
298    Array.prototype.forEach.call(singleMenuItems, function (el, i) {
299
300        el.querySelector('a').addEventListener("focus", function (event) {
301
302            //if (this.parentNode.className == "dropdown") {
303            if (this.className.indexOf('dropdown-toggle') == -1 &&
304                this.className.indexOf('dropdown-item') == -1) {
305                $('.dropdown ul.dropdown-menu').hide();
306
307                var listItems = $("#menu-main-nav li");
308                listItems.each(function (i) {
309                    //console.log(idx);
310                    var classname = $(this).attr('class');
311                    var attributeId = $(this).attr('id');
312                    if (classname.indexOf('open') != -1 ) {
313
314                        $('#'+attributeId).removeClass("open");
315                    }
316
317                });
318            }
319
320            event.preventDefault();
321        });
322    });
323
324    var searchMenu = document.querySelectorAll('.header__navbar div.header__menu-global-search-desktop');
325    Array.prototype.forEach.call(searchMenu, function (el, i) {
326        //console.log(el);
327        el.querySelector('button').addEventListener("focus", function (event) {
328
329            $('.dropdown ul.dropdown-menu').hide();
330
331            var listItems = $("#menu-main-nav li");
332            listItems.each(function (i) {
333                //console.log(idx);
334                var classname = $(this).attr('class');
335                var attributeId = $(this).attr('id');
336                if (classname.indexOf('open') != -1) {
337
338                    $('#' + attributeId).removeClass("open");
339                }
340
341            });
342
343            event.preventDefault();
344        });
345    });
346
347    /***
348    // reduced header size (height on scroll)
349    $(document).on("scroll", function(){
350
351        if ($(document).scrollTop() > 80){
352            $(".header__navbar .header-contact .contact-item").addClass("shrink");
353            $(".header__logo.desktop").addClass("shrink");
354        } else {
355            $(".header__navbar .header-contact .contact-item").removeClass("shrink");
356            $(".header__logo.desktop").removeClass("shrink");
357        }
358
359    });***/
360});
361
362$(window).on('load', function(){
363    // Remove Table inline style attribute
364    $('th,tr,td').css('font-family','');
365});
366
367$(".event-select-widget").on('change', function(){
368    var param_value = $(this).val();
369    var param_name = $(this).prop('name');
370    var page_url = $(this).data('page-url');
371    window.location.href = page_url + '?' + param_name + '=' + param_value;
372});
373
374$(".news-select-widget").on('change', function(){
375    var param_value = $(this).val();
376    var param_name = $(this).prop('name');
377    var page_url = $(this).data('page-url');
378    window.location.href = page_url + '?' + param_name + '=' + param_value;
379});
380
381$(".future-event-select-widget").on('change', function(){
382    var param_value = $(this).val();
383    var param_name = $(this).prop('name');
384    var page_url = $(this).data('page-url');
385    window.location.href = page_url + '?' + param_name + '=' + param_value;
386});
387
388$(".events-by-month-select-widget").on('change', function(){
389    var param_value = $(this).val();
390    var param_name = $(this).prop('name');
391    var page_url = $(this).data('page-url');
392    window.location.href = page_url + '?' + param_name + '=' + param_value;
393});
394
395$(".news-by-month-select-widget").on('change', function(){
396    var param_value = $(this).val();
397    var param_name = $(this).prop('name');
398    var page_url = $(this).data('page-url');
399    window.location.href = page_url + '?' + param_name + '=' + param_value;
400});
401
402$(".blog-select-widget").on('change', function(){
403    var param_value = $(this).val();
404    var param_name = $(this).prop('name');
405    var page_url = $(this).data('page-url');
406    console.log(page_url + '?' + param_name + '=' + param_value);
407    window.location.href = page_url + '?' + param_name + '=' + param_value;
408});
409
410/***** Entry Requirements */
411$(".entry-requirements-select").on('change', function(e){
412    e.preventDefault();
413    var component_id = $(this).data('entry-req-id');
414    var option_value = $(this).val();
415
416    $(".entry-requirements-content-item-"+component_id).hide();
417    $("."+component_id+'-'+option_value).show();
418
419});
420/***** End Entry Requirements */
421
422/*** Staff Team ***/
423$(".staff-more").on('click', function(e) {
424
425    var expanded = $(this).text().trim();
426    var btn_id = $(this).attr('more-btn-id');
427    var group_id = $(this).attr('staff-team-group-id');
428
429    if (expanded == 'Show More...') {
430        $('.staff-team-group-' + group_id + ' .staff-more').text('Show More...');
431        $('.' + btn_id).text('Show Less');
432
433    } else {
434        $('.' + btn_id).text('Show More...');
435    }
436
437});
438/*** End Staff Team ***/
439
440/*** Bootstrap Mega Menu ***/
441document.addEventListener("DOMContentLoaded", function(){
442    /////// Prevent closing from click inside dropdown
443    document.querySelectorAll('.dropdown-menu').forEach(function(element){
444        element.addEventListener('click', function (e) {
445            e.stopPropagation();
446        });
447    })
448});
449/*** End Bootstrap Mega Menu ***/
450
451jQuery('.accordion  .card a').on('click', function() {
452
453    // Reference https://wordpress.org/support/topic/header-column-width/
454    var table_wrap = $(this).parent().siblings().find('.supsystic-tables-wrap');
455
456    table_wrap.each(function() {
457        //var fields = table_wrap.attr('id').split('-');
458        var fields = $(this).attr('id').split('-');
459
460        var table_id_fields = fields[2].split('_');
461
462        var table_id = table_id_fields[0];
463
464        window.supsystic.Tables.getTableInstanceById(table_id).fnAdjustColumnSizing();
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/***
498 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.