PageSourceSearch

https://www.graduate.nu.ac.th/old_web/wp-content/themes/progrisaas/js/scripts.js?ver=20210110

js nu.ac.th collected 2026-09-24 09:12:44 UTC 12,461 bytes, 384 lines download raw bytes

1( function( $ ) {
2    'use strict';
3
4    /* rtl check */
5	function rtl_owl(){
6	if ($('body').hasClass("rtl")) {
7		return true;
8	} else {
9		return false;
10	}};
11
12	function rtl_isotop(){
13        if ($('body').hasClass("rtl")) {
14            return false;
15        } else {
16            return true;
17    }};
18
19	/* --------------------------------------------------
20    * preloader
21    * --------------------------------------------------*/
22	if ( $('#royal_preloader').length ) {
23		var $selector       = $('#royal_preloader'),
24			$width          = $selector.data('width'),
25			$height         = $selector.data('height'),
26			$color          = $selector.data('color'),
27			$bgcolor        = $selector.data('bgcolor'),
28			$logourl        = $selector.data('url');
29		
30		Royal_Preloader.config({
31			mode           : 'logo',
32			logo           : $logourl,
33			logo_size      : [$width, $height],
34			showProgress   : true,
35			showPercentage : true,
36			text_colour: $color,
37			background:  $bgcolor,
38		});        
39	};
40
41    /* --------------------------------------------------
42    * sticky header
43    * --------------------------------------------------*/
44	$('.header-static .is-fixed').parent().append('<div class="header-clone"></div>');
45	$('.header-clone').height($('#site-header .is-fixed').outerHeight());
46	$('.header-static .header-clone').hide();	
47	$(window).on("scroll", function(){
48		var site_header = $('#site-header').outerHeight() + 1;	
49			
50		if ($(window).scrollTop() >= site_header) {	    	
51			$('.site-header .is-fixed').addClass('is-stuck');	
52			$('.header-static .header-clone').show();	
53		}else {
54			$('.site-header .is-fixed').removeClass('is-stuck');		              
55			$('.header-static .header-clone').hide();
56		}
57	});
58
59    /* --------------------------------------------------
60    * mobile menu
61    * --------------------------------------------------*/
62    $('.mmenu_wrapper li:has(ul)').prepend('<span class="arrow"><svg viewBox="0 0 448 448" xmlns="http://www.w3.org/2000/svg"><path d="m272 184c-4.417969 0-8-3.582031-8-8v-176h-80v176c0 4.417969-3.582031 8-8 8h-176v80h176c4.417969 0 8 3.582031 8 8v176h80v-176c0-4.417969 3.582031-8 8-8h176v-80zm0 0"/></svg></span>');
63    $(".mmenu_wrapper .mobile_mainmenu > li span.arrow").on('click',function() {
64        $(this).parent().find("> ul").stop(true, true).slideToggle()
65        $(this).toggleClass( "active" ); 
66    });
67	
68	$( "#mmenu_toggle" ).on('click', function() {
69		$(this).toggleClass( "active" );
70		$(this).parents('.header_mobile').toggleClass( "open" );
71		if ($(this).hasClass( "active" )) {
72			$('.mobile_nav').stop(true, true).slideDown(100);
73		}else{
74			$('.mobile_nav').stop(true, true).slideUp(100);
75		}		
76	});
77
78	/* --------------------------------------------------
79    * gallery post
80    * --------------------------------------------------*/
81	$('.gallery-post').each( function () {
82		var selector = $(this);
83		selector.owlCarousel({
84			rtl: rtl_owl(),
85			loop:true,
86			margin:0,
87			responsiveClass:true,
88			items:1,
89			dots:false,
90			nav:true,
91			navText:['<i class="ot-flaticon-left-arrow"></i>', '<i class="ot-flaticon-right-arrow"></i>']
92		});
93	});
94
95	/* --------------------------------------------------
96    * popup video
97    * --------------------------------------------------*/
98  	var video_popup = $('.video-popup');
99   	if (video_popup.length > 0 ) {
100	   	video_popup.each( function(){
101		   	$(this).lightGallery({
102			   selector: '.btn-play',
103		   	});
104	   	});
105   	};
106
107    /* --------------------------------------------------
108    * back to top
109    * --------------------------------------------------*/
110    if ($('#back-to-top').length) {
111	    var scrollTrigger = 500, // px
112	        backToTop = function () {
113	            var scrollTop = $(window).scrollTop();
114	            if (scrollTop > scrollTrigger) {
115	                $('#back-to-top').addClass('show');
116	            } else {
117	                $('#back-to-top').removeClass('show');
118	            }
119	        };
120	    backToTop();
121	    $(window).on('scroll', function () {
122	        backToTop();
123	    });
124	    $('#back-to-top').on('click', function (e) {
125	        e.preventDefault();
126	        $('html,body').animate({
127	            scrollTop: 0
128	        }, 700);
129	    });	
130	}
131
132	/* --------------------------------------------------
133    * related projects
134    * --------------------------------------------------*/
135    $('.portfolio-related-posts').each( function () {
136        var selector = $(this);
137        selector.find('.owl-carousel').owlCarousel({
138            rtl: rtl_owl(),
139            autoplay: true,
140            loop: false,
141            dotsClass: 'owl-dots ot-custom-dots',
142            dots: false,
143            nav: false,
144            navText:['<i class="ot-flaticon-left-arrow"></i>', '<i class="ot-flaticon-right-arrow"></i>'],
145            responsive : {
146                0 : {
147                    items: 1,
148                    margin: 0,
149                },
150                768 : {
151                    items: 2,
152                    margin: 30,
153                },
154                1024 : {
155                    items: 3,
156                    margin: 30,
157                }
158            }
159        });
160    });
161
162
163    /* Particles */
164    $(window).load( function () {
165        $('.particles-js').each(function () {
166            var s_id = $( this ).data('id'),
167                s_color = $( this ).data('color'),
168                s_color = s_color.replace(/\s/g, ''),
169                e = $('<div class="progrisaas-particles"></div>');
170            $( this ).append(e);    
171            e.attr('id', 'particles-' + s_id );
172
173            var id = 'particles-' + s_id;
174            var color_type = 'random_colors';
175            var color = s_color;
176            var color_line = '#fff';
177            var number = 8;
178            var lines = false;
179            if (color_type == 'random_colors') {
180                color = color.split(',');
181                color_line = color[0]
182            }
183            
184            particlesJS(
185                id, {
186                    "particles":{
187                        "number":{
188                            "value":number,
189                            "density":{
190                                "enable":true,
191                                "value_area":800
192                            }
193                        },
194                        "color":{
195                            "value": color
196                        },
197                        "shape":{
198                            "type":'circle',
199                            "polygon":{
200                                "nb_sides":6
201                            },
202                        },
203                        "opacity":{
204                            "value":1,
205                            "random":true,
206                            "anim":{
207                                "enable":false,
208                                "speed":1,
209                                "opacity_min":1,
210                                "sync":false
211                            }
212                        },
213                        "size":{
214                            "value":5,
215                            "random":true,
216                            "anim":{
217                                "enable":false,
218                                "speed":30,
219                                "size_min": 1,
220                                "sync":false
221                            }
222                        },
223                        "line_linked":{
224                            "enable":false,
225                            "distance":150,
226                            "color":color_line,
227                            "opacity":0,
228                            "width":1
229                        },
230                        "move":{
231                            "enable":true,
232                            "speed":2,
233                            "direction":"none",
234                            "random":false,
235                            "straight":false,
236                            "out_mode":"out",
237                            "bounce":false,
238                            "attract":{
239                                "enable":false,
240                                "rotateX":600,
241                                "rotateY":1200
242                            }
243                        }
244                    },
245                    "interactivity":{
246                        "detect_on":"canvas",
247                        "events":{
248                            "onhover":{
249                                "enable":true,
250                                "mode":'grab'
251                            },
252                            "onclick":{
253                                "enable":true,
254                                "mode":"push"
255                            },
256                            "resize":true
257                        },
258                        "modes":{
259                            "grab":{
260                                "distance":150,
261                                "line_linked":{
262                                    "opacity":1
263                                }
264                            },
265                            "bubble":{
266                                "distance":200,
267                                "size":3.2,
268                                "duration":20,
269                                "opacity":1,
270                                "speed":30
271                            },
272                            "repulse":{
273                                "distance":80,
274                                "duration":0.4
275                            },
276                            "push":{"particles_nb":4},
277                            "remove":{"particles_nb":2}
278                        }
279                    },
280                    "retina_detect":true
281                });
282            var update;
283            update = function() {
284                requestAnimationFrame(update); 
285            }; 
286            requestAnimationFrame(update);
287        });
288    });
289
290
291    /* --------------------------------------------------
292    * filter projects
293    * --------------------------------------------------*/
294	function updateFilter() {
295		$('.project_filters a').each(function() {
296			var data_filter = this.getAttribute('data-filter');
297			var num = $(this)
298				.closest('.project-filter-wrapper')
299				.find('.project-item')
300				.filter(data_filter).length;
301			$(this)
302				.find('.filter-count')
303				.text( num );
304			if ( num != 0 && $(this).hasClass('empty') ) {
305				$(this).removeClass('empty');
306			}
307		});
308	}
309
310    $('.project-filter-wrapper').each( function(){
311		var $container = $(this).find('.projects-grid'); 
312		$container.isotope({ 
313			itemSelector : '.project-item', 
314			animationEngine : 'css',
315			masonry: {
316				columnWidth: '.grid-sizer'
317			},
318			isOriginLeft: rtl_isotop(),
319		});
320
321		var $optionSets  = $(this).find('.project_filters'),
322			$optionLinks = $optionSets.find('a');
323
324		$optionLinks.on('click', function(){
325			var $this = $(this);
326
327			if ( $this.hasClass('selected') ) {
328				return false;
329			}
330			var $optionSet = $this.parents('.project_filters');
331				$optionSet.find('.selected').removeClass('selected');
332				$this.addClass('selected');
333
334			var selector = $(this).attr('data-filter');
335				$container.isotope({ 
336					filter: selector 
337				});
338			return false;
339		});
340		/* count filters */
341		updateFilter();
342	});
343
344	/* load more button */    
345	$('#btn-loadmore').on('click',function(){
346		var btn		= $(this),
347			grid    = $(this).parents('.project-filter-wrapper').find('.projects-grid'),
348			offset  = grid.find('.project-item').length,
349			more    = grid.data('load'),
350			loaded  = $(this).data('loaded'),
351			loading = $(this).data('loading'),
352			cat 	= $(this).data('category'),
353			count   = grid.data('count');
354		$.ajax({
355			url : progrisaas_loadmore_params.ajaxurl, // AJAX handler
356			data : {
357				'action': 'loadmore', // the parameter for admin-ajax.php
358				'ppp'	: more,
359				'cat'	: cat,
360				'offset': offset,
361			},
362			type : 'POST',
363			beforeSend : function ( xhr ) {
364				btn.text(loading).append('<i class="ot-flaticon-refresh fas fa-spin"></i>'); // some type of preloader
365			},
366			success : function( data ){
367				if( data ) {
368					var items = $(data);
369					btn.text(loaded);
370					grid.append(items).isotope('appended', items); // insert new posts
371					updateFilter();
372				} else {
373					btn.hide(); // if no data, HIDE the button as well
374				}
375			}
376		});
377		offset += more;
378		if( count <= offset ){
379			btn.fadeOut(1000);
380		}
381		return false;
382	});
383
384} )( jQuery );

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.