PluginProbe
WP Ultimate Post Grid / 2.5.0
WP Ultimate Post Grid v2.5.0
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
wp-ultimate-post-grid / js / grid.js

grid.js in WP Ultimate Post Grid 2.5.0, at js/grid.js

736 lines 26.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var WPUltimatePostGrid = WPUltimatePostGrid || {};
2
3 WPUltimatePostGrid.grids = {};
4
5 WPUltimatePostGrid.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
69 WPUltimatePostGrid.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
133 WPUltimatePostGrid.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
146 WPUltimatePostGrid.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
220 WPUltimatePostGrid.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
231 WPUltimatePostGrid.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
241 WPUltimatePostGrid.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 */
282 WPUltimatePostGrid.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
300 WPUltimatePostGrid.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
339 WPUltimatePostGrid.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
377 WPUltimatePostGrid.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-shopping-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
408 WPUltimatePostGrid.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
416 WPUltimatePostGrid.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
422 WPUltimatePostGrid.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
544 WPUltimatePostGrid.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
555 WPUltimatePostGrid.updatePaginationPages = function(container, page) {
556 container.find('.wpupg-page-' + page).click();
557 };
558
559 WPUltimatePostGrid.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
671 WPUltimatePostGrid.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
694 WPUltimatePostGrid.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
703 jQuery(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 });