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.