PageSourceSearch

https://equilibre2.com/wp-content/plugins/wp-ultimate-recipe-premi…/core/js/grid.js?ver=2.5.0

js equilibre2.com collected 2026-09-26 15:33:19 UTC 27,536 bytes, 736 lines download raw bytes

1var WPUltimatePostGrid = WPUltimatePostGrid || {};
2
3WPUltimatePostGrid.grids = {};
4
5WPUltimatePostGrid.initGrid = function(container) {
6    var grid_id = container.data('grid');
7
8    var args = {
9        itemSelector: '.wpupg-item',
10        transitionDuration: wpupg_public.animationSpeed,
11        hiddenStyle: wpupg_public.animationHide,
12        visibleStyle: wpupg_public.animationShow
13    };
14
15    if(wpupg_public.rtl) {
16        args.isOriginLeft = false;
17    }
18
19    var layout_mode = container.data('layout-mode');
20    if(layout_mode) {
21        args.layoutMode = layout_mode;
22    }
23
24    if(layout_mode == 'masonry' && container.data('centered')) {
25        args.masonry = {
26            isFitWidth: true
27        };
28    }
29
30    container.isotopewpupg(args);
31
32    container.imagesLoaded( function() {
33        container.isotopewpupg('layout');
34    });
35
36    WPUltimatePostGrid.grids[grid_id] = {
37        args: args,
38        container: container,
39        centered: container.data('centered'),
40        data: window['wpupg_grid_' + container.data('grid-id')],
41        id: container.data('grid-id'),
42        pages: [0],
43        page: 0,
44        filter: '',
45        filters: {},
46        filter_text: false,
47        filter_text_search: '',
48        filter_text_posts: []
49    };
50
51    WPUltimatePostGrid.checkLinks(grid_id);
52    WPUltimatePostGrid.updatePosts(grid_id);
53
54    jQuery(container).on('hover', '.wpupg-item', function(e) {
55        var hovering = e.type == 'mouseenter';
56        WPUltimatePostGrid.hoverGridItem(jQuery(this), hovering);
57    });
58
59    // Check for empty grid
60    if(0 === container.find('.wpupg-item').length) {
61        WPUltimatePostGrid.checkEmpty(container);
62    } else {
63        container.on('arrangeComplete', function() {
64            WPUltimatePostGrid.checkEmpty(container);
65        });
66    }
67};
68
69WPUltimatePostGrid.hoverGridItem = function(grid_item, hovering) {
70    if(hovering) {
71        grid_item.addClass('wpupg-hovering');
72
73        grid_item.find('.wpupg-show-on-hover').each(function() {
74            var item = jQuery(this),
75                effect = item.data('hover-in'),
76                duration = parseInt(item.data('hover-in-duration'));
77
78            if(effect == 'fade') {
79                item.fadeIn(duration);
80            } else if(effect == 'slide') {
81                item.slideDown(duration);
82            } else {
83                item.show();
84            }
85        });
86
87        grid_item.find('.wpupg-hide-on-hover').each(function() {
88            var item = jQuery(this),
89                effect = item.data('hover-out'),
90                duration = parseInt(item.data('hover-out-duration'));
91
92            if(effect == 'fade') {
93                item.fadeOut(duration);
94            } else if(effect == 'slide') {
95                item.slideUp(duration);
96            } else {
97                item.hide();
98            }
99        });
100    } else {
101        grid_item.removeClass('wpupg-hovering');
102
103        grid_item.find('.wpupg-show-on-hover').each(function() {
104            var item = jQuery(this),
105                effect = item.data('hover-out'),
106                duration = parseInt(item.data('hover-out-duration'));
107
108            if(effect == 'fade') {
109                item.fadeOut(duration);
110            } else if(effect == 'slide') {
111                item.slideUp(duration);
112            } else {
113                item.hide();
114            }
115        });
116
117        grid_item.find('.wpupg-hide-on-hover').each(function() {
118            var item = jQuery(this),
119                effect = item.data('hover-in'),
120                duration = parseInt(item.data('hover-in-duration'));
121
122            if(effect == 'fade') {
123                item.fadeIn(duration);
124            } else if(effect == 'slide') {
125                item.slideDown(duration);
126            } else {
127                item.show();
128            }
129        });
130    }
131};
132
133WPUltimatePostGrid.updatePosts = function(grid_id) {
134    var grid = WPUltimatePostGrid.grids[grid_id];
135
136    var posts = [];
137
138    grid.container.find('.wpupg-item').each(function() {
139        var post_id = jQuery(this).data('id');
140        posts.push(post_id);
141    });
142
143    WPUltimatePostGrid.grids[grid_id].posts = posts;
144};
145
146WPUltimatePostGrid.filterGrid = function(grid_id) {
147    var grid = WPUltimatePostGrid.grids[grid_id];
148    var filters = [];
149
150    if(grid.filter_text) {
151        grid.filter = '';
152        var posts = [];
153
154        for(var i=0; i < grid.filter_text_posts.length; i++) {
155            posts.push('#wpupg-container-post-' + grid.filter_text_posts[i]);
156            posts.push('#wpurp-container-recipe-' + grid.filter_text_posts[i]);
157        }
158
159        if(posts.length == 0) {
160            posts.push('no-result');
161        }
162
163        WPUltimatePostGrid.getFilterString(grid_id, '', [posts], 0);
164    } else {
165        // Page filter
166        if(grid.pagination_type == 'pages') {
167            var page = grid.page || 0;
168            filters.push(['.wpupg-page-' + page]);
169        }
170
171        // Taxonomy filters
172        for(var taxonomy in grid.filters) {
173            if(grid.filters.hasOwnProperty(taxonomy)) {
174                var taxonomy_filters = grid.filters[taxonomy];
175
176                var match_one_filters = [];
177                var match_all_filter = '';
178                var filter = '';
179
180                if(taxonomy_filters) {
181                    for(var i = 0; i < taxonomy_filters.length; i++) {
182                        filter = '.wpupg-tax-' + taxonomy + '-' + taxonomy_filters[i];
183
184                        if(grid.multiselect_type == 'match_one') {
185                            match_one_filters.push(filter);
186                        } else {
187                            match_all_filter += filter;
188                        }
189                    }
190                }
191
192                if(grid.multiselect_type == 'match_one') {
193                    if(match_one_filters.length > 0) filters.push(match_one_filters);
194                } else {
195                    if(match_all_filter !== '') filters.push([match_all_filter]);
196                }
197            }
198        }
199
200        grid.filter = '';
201        WPUltimatePostGrid.getFilterString(grid_id, '', filters, 0);
202        if(grid.inverse) {
203            if(grid.pagination_type == 'pages') {
204                var page = grid.page || 0;
205                var filter_without_page = grid.filter.replace('.wpupg-page-' + page, '');
206
207                grid.filter = '.wpupg-page-' + page + ':not(' + filter_without_page + ')';
208            } else {
209                grid.filter = ':not(' + grid.filter + ')';
210            }
211        }
212    }
213
214    jQuery('#wpupg-grid-' + grid_id + '-empty').hide();
215    grid.container.isotopewpupg({ filter: grid.filter });
216    grid.container.trigger('wpupgFiltered');
217    WPUltimatePostGrid.updateDeeplink();
218};
219
220WPUltimatePostGrid.getFilterString = function(grid_id, s, attrs, k) {
221    if(k==attrs.length) {
222        if(WPUltimatePostGrid.grids[grid_id].filter !== '') s = ', ' + s;
223        WPUltimatePostGrid.grids[grid_id].filter += s;
224    } else {
225        for(var i=0; i<attrs[k].length;i++) {
226            WPUltimatePostGrid.getFilterString(grid_id, s+attrs[k][i], attrs, k+1);
227        }
228    }
229};
230
231WPUltimatePostGrid.checkEmpty = function(container) {
232    var grid_id = container.data('grid'),
233        filter = WPUltimatePostGrid.grids[grid_id].filter || '.wpupg-item',
234        visible_items = container.find(filter);
235
236    if(filter !== '' && visible_items.length == 0) {
237        jQuery('#wpupg-grid-' + grid_id + '-empty').slideDown(300);
238    }
239};
240
241WPUltimatePostGrid.updateDeeplink = function() {
242    var link = '';
243
244    for(var grid_id in WPUltimatePostGrid.grids) {
245        if(WPUltimatePostGrid.grids.hasOwnProperty(grid_id)) {
246            var grid = WPUltimatePostGrid.grids[grid_id];
247            var grid_link = '';
248
249
250            if(grid.filter_text) {
251                grid_link += '+s:' + grid.filter_text_search;
252            } else {
253                // Page filter
254                if(grid.page != 0) grid_link += '+p:' + (grid.page+1);
255
256                // Taxonomy filters
257                for(var taxonomy in grid.filters) {
258                    if(grid.filters.hasOwnProperty(taxonomy)) {
259                        var taxonomy_filter = grid.filters[taxonomy];
260
261                        if(taxonomy_filter.length > 0) {
262                            grid_link += '+' + taxonomy + ':' + taxonomy_filter.join(',');
263                        }
264                    }
265                }
266            }
267
268            if(grid_link != '') {
269                if(link != '') link += '#';
270                link += grid_id;
271                link += grid_link;
272            }
273        }
274    }
275
276    WPUltimatePostGrid.replaceDeeplink(link);
277};
278
279/**
280 * Source: http://stackoverflow.com/questions/1397329/how-to-remove-the-hash-from-window-location-with-javascript-without-page-refresh/5298684#5298684
281 */
282WPUltimatePostGrid.replaceDeeplink = function(link) {
283    var scrollV, scrollH, loc = window.location;
284    if ("replaceState" in history) {
285        var hash = link == '' ? '' : '#' + link;
286        history.replaceState("", document.title, loc.pathname + hash + loc.search);
287    } else {
288        // Prevent scrolling by storing the page's current scroll offset
289        scrollV = document.documentElement.scrollTop || document.body.scrollTop;
290        scrollH = document.documentElement.scrollLeft || document.body.scrollLeft;
291
292        loc.hash = link;
293
294        // Restore the scroll offset, should be flicker free
295        document.documentElement.scrollTop = document.body.scrollTop = scrollV;
296        document.documentElement.scrollLeft = document.body.scrollLeft = scrollH;
297    }
298};
299
300WPUltimatePostGrid.preFilterGrid = function() {
301    var link = document.location.hash;
302    link = link.substr(1);
303
304    if(!link) {
305        var link = '';
306
307        for(var grid_id in WPUltimatePostGrid.grids) {
308            if(WPUltimatePostGrid.grids.hasOwnProperty(grid_id)) {
309                var grid = WPUltimatePostGrid.grids[grid_id];
310                var grid_link = '';
311
312                if(grid.filter_data) {
313                    var pre_filter = grid.filter_data['pre_filter'];
314
315                    // Taxonomy filters
316                    for(var taxonomy in pre_filter) {
317                        if(pre_filter.hasOwnProperty(taxonomy)) {
318                            var taxonomy_filter = pre_filter[taxonomy];
319
320                            if(taxonomy_filter.length > 0) {
321                                grid_link += '+' + taxonomy + ':' + taxonomy_filter.join(',');
322                            }
323                        }
324                    }
325                }
326
327                if(grid_link != '') {
328                    if(link != '') link += '#';
329                    link += grid_id;
330                    link += grid_link;
331                }
332            }
333        }
334        
335        WPUltimatePostGrid.replaceDeeplink(link);
336    }
337};
338
339WPUltimatePostGrid.restoreDeeplink = function() {
340    var link = document.location.hash;
341    link = link.substr(1);
342
343    if(link) {
344        // Make sure characters are not URL encoded
345        link = link.replace('%23', '#');
346        link = link.replace('%7C', '|');
347        link = link.replace('%2B', '+');
348        link = link.replace('%3A', ':');
349        link = link.replace('%2C', ',');
350
351        // Backwards compatibility
352        link = link.replace('|', '+');
353
354        var grids = link.split('#');
355
356        for(var i=0; i < grids.length; i++) {
357            var parts = grids[i].split('+');
358            var grid_id = parts[0];
359
360            for(var j=1; j < parts.length; j++) {
361                var filter = parts[j].split(':');
362
363                if(filter[0] == 'p') {
364                    var page = parseInt(filter[1]) - 1;
365                    WPUltimatePostGrid.updatePagination(jQuery('#wpupg-grid-' + grid_id + '-pagination'), page);
366                } else if(filter[0] == 's') {
367                    WPUltimatePostGrid.updateFilter(jQuery('#wpupg-grid-' + grid_id + '-filter'), filter[0], 'text', filter[1]);
368                } else {
369                    var terms = filter[1].split(',');
370                    WPUltimatePostGrid.updateFilter(jQuery('#wpupg-grid-' + grid_id + '-filter'), filter[0], 'terms', terms);
371                }
372            }
373        }
374    }
375};
376
377WPUltimatePostGrid.checkLinks = function(grid_id) {
378    var grid = WPUltimatePostGrid.grids[grid_id];
379    var default_link_type = grid.container.data('link-type');
380    var link_target = grid.container.data('link-target');
381    var link_rel = link_target == 'post' ? '' : ' rel="lightbox"';
382
383    if(default_link_type != 'none') {
384        grid.container.find('.wpupg-item').each(function() {
385            var item = jQuery(this);
386
387            // Remove links from item
388            item.find('a:not(.wpupg-keep-link, .wpurp-recipe-favorite, .wpurp-recipe-add-to-s
388hopping-list, .wpurp-recipe-add-to-meal-plan, .wpurp-recipe-print-button, .wpurp-recipe-grid-link)').each(function() {
389                var link = jQuery(this);
390                if(link.parents('.sharrre').length == 0) {
391                    link.replaceWith(function() { return link.contents(); });
392                }
393            });
394
395            var link = item.data('custom-link') ? item.data('custom-link') : ( link_target == 'post' ? item.data('permalink') : item.data('image') );
396            var link_behaviour = item.data('custom-link-behaviour');
397
398            var link_type = link_behaviour == '_blank' || link_behaviour == '_self' ? link_behaviour : default_link_type;
399
400            // Add link around item
401            if (link_behaviour !== 'none' && link && item.parent('a').length == 0) {
402                item.wrap('<a href="' + link + '" target="' + link_type + '"' + link_rel + ' class="' + wpupg_public.link_class + '"></a>');
403            }
404        });
405    }
406};
407
408WPUltimatePostGrid.updateFilter = function(container, taxonomy, type, terms) {
409    var filter_type = container.data('type');
410    var func = 'updateFilter' + filter_type.charAt(0).toUpperCase() + filter_type.slice(1);
411    if(typeof WPUltimatePostGrid[func] == 'function') {
412        WPUltimatePostGrid[func](container, taxonomy, type, terms);
413    }
414};
415
416WPUltimatePostGrid.updateFilterIsotope = function(container, taxonomy, type, terms) {
417    for(var i = 0; i < terms.length; i++) {
418        container.find('.wpupg-filter-tag-' + terms[i]).click();
419    }
420};
421
422WPUltimatePostGrid.initFilterIsotope = function(container) {
423    var grid_id = container.data('grid');
424
425    WPUltimatePostGrid.grids[grid_id].multiselect = container.data('multiselect');
426    WPUltimatePostGrid.grids[grid_id].multiselect_type = container.data('multiselect-type');
427    WPUltimatePostGrid.grids[grid_id].inverse = container.data('inverse');
428
429    container.find('.wpupg-filter-isotope-term').click(function() {
430        var filter_item = jQuery(this);
431        var taxonomy = filter_item.data('taxonomy');
432        var filter_all = filter_item.data('filter') == undefined;
433        var filter_term = filter_item.data('filter');
434
435        var filters = [];
436
437        if(WPUltimatePostGrid.grids[grid_id].multiselect && !filter_all) {
438            // Make sure "All" is not selected
439            filter_item.siblings('.wpupg-filter-tag-').removeClass('active').trigger('checkActiveFilter');
440
441            filters = WPUltimatePostGrid.grids[grid_id].filters || [];
442
443            if(filters[taxonomy] == undefined) filters[taxonomy] = [];
444
445            var term_index = filters[taxonomy].indexOf(filter_term);
446            if(term_index == -1) {
447                // Term was not select before, add
448                filter_item.addClass('active').trigger('checkActiveFilter');
449                filters[taxonomy].push(filter_term);
450            } else {
451                // Term was already selected, remove
452                filter_item.removeClass('active').trigger('checkActiveFilter');
453                filters[taxonomy].splice(term_index, 1);
454
455                // Set "All" active if no terms left
456                var nbr_terms = 0;
457
458                for(var filter_taxonomy in filters) {
459                    if(filters.hasOwnProperty(filter_taxonomy)) {
460                        var filter_taxonomy_terms = filters[filter_taxonomy];
461
462                        if(filter_taxonomy_terms) {
463                            nbr_terms += filter_taxonomy_terms.length;
464                        }
465                    }
466                }
467
468                if(nbr_terms == 0) {
469                    filter_item.siblings('.wpupg-filter-tag-').addClass('active').trigger('checkActiveFilter');
470                }
471            }
472        } else {
473            filter_item.siblings('.wpupg-filter-isotope-term').removeClass('active').trigger('checkActiveFilter');
474            filter_item.addClass('active').trigger('checkActiveFilter');
475
476                if(!filter_all) {
477                    filters[taxonomy] = [filter_term];
478                }
479        }
480
481        WPUltimatePostGrid.grids[grid_id].filters = filters;
482        WPUltimatePostGrid.filterGrid(grid_id);
483    });
484
485    var filter_type = container.data('filter-type');
486    var filter_items = container.find('.wpupg-filter-item');
487
488    if(filter_type == 'isotope' || filter_type == 'text_isotope') {
489        var margin = container.data('margin-vertical') + 'px ' + container.data('margin-horizontal') + 'px';
490        var padding = container.data('padding-vertical') + 'px ' + container.data('padding-horizontal') + 'px';
491        var border = container.data('border-width') + 'px solid ' + container.data('border-color');
492        var background_color = container.data('background-color');
493        var text_color = container.data('text-color');
494
495        var active_border = container.data('border-width') + 'px solid ' + container.data('active-border-color');
496        var active_background_color = container.data('active-background-color');
497        var active_text_color = container.data('active-text-color');
498
499        var hover_border = container.data('border-width') + 'px solid ' + container.data('hover-border-color');
500        var hover_background_color = container.data('hover-background-color');
501        var hover_text_color = container.data('hover-text-color');
502
503        filter_items.each(function() {
504            var filter_item = jQuery(this);
505
506            filter_item
507                .css('margin', margin)
508                .css('padding', padding)
509                .css('border', border)
510                .css('background-color', background_color)
511                .css('color', text_color)
512                .hover(function() {
513                    if(!filter_item.hasClass('active')) {
514                        filter_item
515                            .css('border', hover_border)
516                            .css('background-color', hover_background_color)
517                            .css('color', hover_text_color);
518                    }
519                }, function() {
520                    if(!filter_item.hasClass('active')) {
521                        filter_item
522                            .css('border', border)
523                            .css('background-color', background_color)
524                            .css('color', text_color);
525                    }
526                })
527                .on('checkActiveFilter', function() {
528                    if(filter_item.hasClass('active')) {
529                        filter_item
530                            .css('border', active_border)
531                            .css('background-color', active_background_color)
532                            .css('color', active_text_color);
533                    } else {
534                        filter_item
535                            .css('border', border)
536                            .css('background-color', background_color)
537                            .css('color', text_color);
538                    }
539                }).trigger('checkActiveFilter');
540        });
541    }
542};
543
544WPUltimatePostGrid.updatePagination = function(container, page) {
545    var type = container.data('type');
546
547    if(type) {
548        var func = 'updatePagination' + type.charAt(0).toUpperCase() + type.slice(1);
549        if(typeof WPUltimatePostGrid[func] == 'function') {
550            WPUltimatePostGrid[func](container, page);
551        }
552    }
553};
554
555WPUltimatePostGrid.updatePaginationPages = function(container, page) {
556    container.find('.wpupg-page-' + page).click();
557};
558
559WPUltimatePostGrid.initPaginationPages = function(container) {
560    var grid_id = container.data('grid');
561
562    container.find('.wpupg-pagination-term').click(function() {
563        var pagination_item = jQuery(this);
564        pagination_item.siblings('.wpupg-pagination-term').removeClass('active').trigger('checkActiveFilter');
565
566        var page = parseInt(pagination_item.addClass('active').trigger('checkActiveFilter').data('page'));
567
568        WPUltimatePostGrid.scrollTo(WPUltimatePostGrid.grids[grid_id].container);
569
570        if(WPUltimatePostGrid.grids[grid_id].pages.indexOf(page) !== -1) {
571            WPUltimatePostGrid.grids[grid_id].page = page;
572            WPUltimatePostGrid.filterGrid(grid_id);
573        } else {
574            // Get new page via AJAX
575            var data = {
576                action: 'wpupg_get_page',
577                security: wpupg_public.nonce,
578                grid: grid_id,
579                page: page
580            };
581
582            pagination_item.addClass('wpupg-spinner');
583            pagination_item.css('color', WPUltimatePostGrid.grids[grid_id].pagination_style.active_background_color);
584
585            // Get recipes through AJAX
586            jQuery.post(wpupg_public.ajax_url, data, function(html) {
587                var posts = jQuery(html).toArray();
588
589                WPUltimatePostGrid.grids[grid_id].page = page;
590                WPUltimatePostGrid.insertPosts(grid_id, posts);
591
592                pagination_item.removeClass('wpupg-spinner');
593                pagination_item.css('color', WPUltimatePostGrid.grids[grid_id].pagination_style.active_text_color);
594
595                WPUltimatePostGrid.grids[grid_id].pages.push(page);
596                WPUltimatePostGrid.updatePosts(grid_id);
597            });
598        }
599    });
600
601    var pagination_items = container.find('.wpupg-pagination-term');
602
603    var margin = container.data('margin-vertical') + 'px ' + container.data('margin-horizontal') + 'px';
604    var padding = container.data('padding-vertical') + 'px ' + container.data('padding-horizontal') + 'px';
605    var border = container.data('border-width') + 'px solid ' + container.data('border-color');
606    var background_color = container.data('background-color');
607    var text_color = container.data('text-color');
608
609    var active_border = container.data('border-width') + 'px solid ' + container.data('active-border-color');
610    var active_background_color = container.data('active-background-color');
611    var active_text_color = container.data('active-text-color');
612
613    var hover_border = container.data('border-width') + 'px solid ' + container.data('hover-border-color');
614    var hover_background_color = container.data('hover-background-color');
615    var hover_text_color = container.data('hover-text-color');
616
617    WPUltimatePostGrid.grids[grid_id].pagination_style = {
618        margin: margin,
619        padding: padding,
620        border: border,
621        background_color: background_color,
622        text_color: text_color,
623        active_border: active_border,
624        active_background_color: active_background_color,
625        active_text_color: active_text_color,
626        hover_border: hover_border,
627        hover_background_color: hover_background_color,
628        hover_text_color: hover_text_color
629    }
630
631    pagination_items.each(function() {
632        var pagination_item = jQuery(this);
633
634        pagination_item
635            .css('margin', margin)
636            .css('padding', padding)
637            .css('border', border)
638            .css('background-color', background_color)
639            .css('color', text_color)
640            .hover(function() {
641                if(!pagination_item.hasClass('active')) {
642                    pagination_item
643                        .css('border', hover_border)
644                        .css('background-color', hover_background_color)
645                        .css('color', hover_text_color);
646                }
647            }, function() {
648                if(!pagination_item.hasClass('active')) {
649                    pagination_item
650                        .css('border', border)
651                        .css('background-color', background_color)
652                        .css('color', text_color);
653                }
654            })
655            .on('checkActiveFilter', function() {
656                if(pagination_item.hasClass('active')) {
657                    pagination_item
658                        .css('border', active_border)
659                        .css('background-color', active_background_color)
660                        .css('color', active_text_color);
661                } else {
662                    pagination_item
663                        .css('border', border)
664                        .css('background-color', background_color)
665                        .css('color', text_color);
666                }
667            }).trigger('checkActiveFilter');
668    });
669};
670
671WPUltimatePostGrid.insertPosts = function(grid_id, posts) {
672    var scrollV = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
673        scrollH = document.documentElement.scrollLeft || document.body.scrollLeft;
674
675    WPUltimatePostGrid.grids[grid_id].container.isotopewpupg('destroy');
676
677    WPUltimatePostGrid.grids[grid_id].container.append(posts);
678    WPUltimatePostGrid.grids[grid_id].container.isotopewpupg(WPUltimatePostGrid.grids[grid_id].args);
679
680    // Restore the scroll offset, should be flicker free
681    jQuery(window).scrollTop(scrollV);
682    document.documentElement.scrollLeft = document.body.scrollLeft = scrollH;
683
684    WPUltimatePostGrid.updatePosts(grid_id);
685    WPUltimatePostGrid.checkLinks(grid_id);
686    WPUltimatePostGrid.filterGrid(grid_id);
687
688    WPUltimatePostGrid.grids[grid_id].container.imagesLoaded( function() {
689        WPUltimatePostGrid.grids[grid_id].container.isotopewpupg('layout');
690        WPUltimatePostGrid.grids[grid_id].loading = false;
691    });
692};
693
694WPUltimatePostGrid.scrollTo = function(target) {
695    var scroll_to = target.offset().top - 50;
696    scroll_to = scroll_to < 0 ? 0 : scroll_to;
697
698    jQuery('html,body').animate({
699        scrollTop: scroll_to
700    }, 500);
701};
702
703jQuery(document).ready(function($) {
704    $('.wpupg-grid').each(function() {
705        WPUltimatePostGrid.initGrid($(this));
706    });
707
708    $('.wpupg-filter').each(function() {
709        var container = $(this);
710        var grid_id = container.data('grid');
711        var type = container.data('type');
712
713        WPUltimatePostGrid.grids[grid_id].filter_type = type;
714        WPUltimatePostGrid.grids[grid_id].filter_data = window['wpupg_filter_' + WPUltimatePostGrid.grids[grid_id].id];
715
716        var func = 'initFilter' + type.charAt(0).toUpperCase() + type.slice(1);
717        if(typeof WPUltimatePostGrid[func] == 'function') {
718            WPUltimatePostGrid[func](container);
719        }
720    });
721
722    $('.wpupg-pagination').each(function() {
723        var container = $(this);
724        var grid_id = container.data('grid');
725        var type = container.data('type');
726
727        WPUltimatePostGrid.grids[grid_id].pagination_type = type;
728
729        var func = 'initPagination' + type.charAt(0).toUpperCase() + type.slice(1);
730        if(typeof WPUltimatePostGrid[func] == 'function') {
731            WPUltimatePostGrid[func](container);
732        }
733    });
734    WPUltimatePostGrid.preFilterGrid();
735    WPUltimatePostGrid.restoreDeeplink();
736});

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.