1jQuery( function( $ ) { 2 3 /*-------------------------------------------------------------- 4 Default values 5 --------------------------------------------------------------*/ 6 7 var cats_filtered = 0; 8 var templates_filtered = 0; 9 var orderby_filtered = 0; 10 var tab_cat_filtered = 0; 11 var pagenumber = 1; 12 13 14 /*-------------------------------------------------------------- 15 Get current value 16 --------------------------------------------------------------*/ 17 18 function gpCurrentValue( parent ) { 19 cats_filtered = parent.find( 'select[name="gp-filter-cats"]' ).val(); 20 if ( parent.find( '.gp-template-type' ).length > 0 ) { 21 templates_filtered = parent.find( '.gp-template-type:checked' ).map( function() {return this.value;} ).get().join( ',' ); 22 } 23 orderby_filtered = parent.find( 'select[name="gp-filter-orderby"]' ).val(); 24 pagenumber = 1; 25 } 26 27 28 /*-------------------------------------------------------------- 29 Load posts 30 --------------------------------------------------------------*/ 31 32 function gpLoadPosts( element ) { 33 34 var ajaxLoop = element.find( '.gp-ajax-loop' ); 35 var filterWrapper = element.find( '.gp-filter-wrapper' ); 36 37 // Ajax query 38 $.ajax({ 39 type: 'GET', 40 data: { 41 action: 'ghostpool_ajax_loop_action', 42 ghostpool_ajax_loop_nonce: ghostpool_ajax_loop.nonce, 43 querystring: ghostpool_ajax_loop.querystring, 44 cats_filtered: cats_filtered, 45 templates_filtered: templates_filtered, 46 orderby_filtered: orderby_filtered, 47 tab_cat_filtered: tab_cat_filtered, 48 pagenumber: pagenumber, 49 type: element.data('type'), 50 postid: element.data('postid'), 51 cats: element.data('cats'), 52 hubfields: element.data('hubfields'), 53 pageids: element.data('pageids'), 54 posttypes: element.data('posttypes'), 55 postassociation: element.data('postassociation'), 56 ranking: element.data('ranking'), 57 format: element.data('format'), 58 templates: element.data('templates'), 59 orderby: element.data('orderby'), 60 releasedatefrom: element.data('releasedatefrom'), 61 releasedateto: element.data('releasedateto'), 62 perpage: element.data('perpage'), 63 offset: element.data('offset'), 64 imagesizestandard: element.data('imagesizestandard'), 65 imagesizehub: element.data('imagesizehub'), 66 imagesizereview: element.data('imagesizereview'), 67 imagesizepreview: element.data('imagesizepreview'), 68 contentdisplay: element.data('contentdisplay'), 69 excerptlength: element.data('excerptlength'), 70 metareleasedate: element.data('metareleasedate'), 71 metaauthor: element.data('metaauthor'), 72 metadate: element.data('metadate'), 73 metacommentcount: element.data('metacommentcount'), 74 metaviews: element.data('metaviews'), 75 metalikes: element.data('metalikes'), 76 metafollowers: element.data('metafollowers'), 77 metacats: element.data('metacats'), 78 metatags: element.data('metatags'), 79 metahubfields: element.data('metahubfields'), 80 metasiterating: element.data('metasiterating'), 81 metauserrating: element.data('metauserrating'), 82 readmorelink: element.data('readmorelink'), 83 pagearrows: element.data('pagearrows'), 84 pagination: element.data('pagination'), 85 largeexcerptlength: element.data('largeexcerptlength'), 86 smallexcerptlength: element.data('smallexcerptlength'), 87 largemetareleasedate: element.data('largemetareleasedate'), 88 smallmetareleasedate: element.data('smallmetareleasedate'), 89 largemetaauthor: element.data('largemetaauthor'), 90 smallmetaauthor: element.data('smallmetaauthor'), 91 largemetadate: element.data('largemetadate'), 92 smallmetadate: element.data('smallmetadate'), 93 largemetacommentcount: element.data('largemetacommentcount'), 94 smallmetacommentcount: element.data('smallmetacommentcount'), 95 largemetaviews: element.data('largemetaviews'), 96 smallmetaviews: element.data('smallmetaviews'), 97 largemetalikes: element.data('largemetalikes'), 98 smallmetalikes: element.data('smallmetalikes'), 99 largemetafollowers: element.data('largemetafollowers'), 100 smallmetafollowers: element.data('smallmetafollowers'), 101 largemetacats: element.data('largemetacats'), 102 smallmetacats: element.data('smallmetacats'), 103 largemetatags: element.data('largemetatags'), 104 smallmetatags: element.data('smallmetatags'), 105 largemetahubfields: element.data('largemetahubfields'), 106 smallmetahubfields: element.data('smallmetahubfields'), 107 largemetasiterating: element.data('largemetasiterating'), 108 smallmetasiterating: element.data('smallmetasiterating'), 109 largemetauserating: element.data('largemetauserrating'), 110 smallmetauserrating: element.data('smallmetauserrating'), 111 largereadmorelink: element.data('largereadmorelink'), 112 smallreadmorelink: element.data('smallreadmorelink'), 113 release_date: element.data('release_date'), 114 release_date_from: element.data('release_date_from'), 115 release_date_to: element.data('release_date_to') 116 }, 117 dataType: 'html', 118 url: ghostpool_ajax_loop.ajaxurl, 119 success: function( data ) { 120
121 $( 'section:last-child .gp-post-image' ).promise().done( function() { 122 ajaxLoop.html( data ).removeClass( 'gp-filter-loading' ).find( 'section' ).fadeIn(); 123 element.find( '.gp-standard-pagination' ).hide(); 124 }); 125 126 // Needed for blog masonry positioning of page numbers 127 ajaxLoop.after( $( '.gp-blog-masonry .gp-ajax-pagination.gp-pagination-numbers' ) ); 128 $( '.gp-blog-masonry .gp-ajax-pagination.gp-pagination-numbers:not(:first)' ).remove(); 129 130 // If clicking ajax pagination numbers 131 element.find( '.gp-ajax-pagination.gp-pagination-numbers a' ).click( function() { 132 133 if ( $( this ).hasClass( 'page-numbers' ) ) { 134 var parentElement = $( this ).parent().parent().parent().parent().parent().parent(); 135 } else { 136 var parentElement = $( this ).parent().parent().parent().parent(); 137 } 138 gpCurrentValue( parentElement ); 139 140 // Get page numbers from page links 141 var ajaxPagination = $( this ); 142 143 if ( ajaxPagination.hasClass( 'prev' ) ) { 144 var pagelink = ajaxPagination.attr( 'href' ); 145 if ( pagelink.match( 'pagenumber=2' ) ) { 146 pagenumber = 1; 147 } else { 148 var prev = pagelink.match(/\d+/); 149 pagenumber = prev[0]; 150 } 151 } else if ( ajaxPagination.hasClass( 'next' ) ) { 152 var next = ajaxPagination.attr( 'href' ).match(/\d+/); 153 pagenumber = next[0]; 154 } else { 155 pagenumber = ajaxPagination.text(); 156 } 157 158 gpLoadPosts( element ); 159 160 if ( ! element.is( '.gp-vc-element' ) ) { 161 $( 'html, body' ).animate({ scrollTop : 0 }, 0); 162 } else { 163 $( 'html, body' ).animate({ scrollTop: ( parentElement.offset().top - 200 ) }, 0); 164 } 165 166 return false; 167 }); 168 169 // If clicking ajax pagination arrows 170 element.find( '.gp-ajax-pagination.gp-pagination-arrows a' ).click( function() { 171 172 if ( $( this ).hasClass( 'page-numbers' ) ) { 173 var parentElement = $( this ).parent().parent().parent().parent().parent().parent(); 174 } else { 175 var parentElement = $( this ).parent().parent().parent().parent(); 176 } 177 gpCurrentValue( parentElement ); 178 179 // Get page numbers from page links 180 var ajaxPagination = $( this ); 181 182 pagenumber = ajaxPagination.data( 'pagelink' ); 183 184 gpLoadPosts( element ); 185 186 if ( ! element.is( '.gp-vc-element' ) ) { 187 $( 'html, body' ).animate({ scrollTop : 0 }, 0); 188 } else { 189 $( 'html, body' ).animate({ scrollTop: ( parentElement.offset().top - 200 ) }, 0); 190 } 191 192 return false; 193 }); 194 195 // Load WordPress media players 196 if ( element.find( '.wp-audio-shortcode' ).length > 0 ) { 197 element.find( '.wp-audio-shortcode' ).mediaelementplayer({ 198 alwaysShowControls: true 199 }); 200 } 201 if ( element.find( '.wp-video-shortcode' ).length > 0 ) { 202 element.find( '.wp-video-shortcode' ).mediaelementplayer({ 203 alwaysShowControls: true 204 }); 205 } 206 207 }, 208 error: function( jqXHR, textStatus, errorThrown ) { 209 //alert( jqXHR + " :: " + textStatus + " :: " + errorThrown ); 210 } 211 }); 212 213 // Add loading class 214 ajaxLoop.addClass( 'gp-filter-loading' ); 215 216 return false; 217 218 } 219 220 221 /*-------------------------------------------------------------- 222 Filter options 223 --------------------------------------------------------------*/ 224 225 // If selecting category filter 226 $( 'select[name="gp-filter-cats"]' ).change( function() { 227 var filterCats = $( this ); 228 var parentElement = filterCats.parent().parent().parent(); 229 gpCurrentValue( parentElement ); 230 cats_filtered = filterCats.val(); 231 gpLoadPosts( parentElement ); 232 }); 233 234 // If selecting orderby filter 235 $( 'select[name="gp-filter-orderby"]' ).change( function() { 236 var filterOrderby = $( this ); 237 var parentElement = filterOrderby.parent().parent().parent(); 238 gpCurrentValue( parentElement ); 239 orderby_filtered = filterOrderby.val(); 240 gpLoadPosts( parentElement ); 241 }); 242 243 // Post types 244 /*REMOVE$( 'input[name="post_types[]"]' ).change( function() { 245 var filterPostTypes = $( this ); 246 var parentElement = filterPostTypes.parent().parent(); 247 gpCurrentValue( parentElement ); 248 posttypes_filtered = $( '.gp-post-type:checked' ).map( function() {return this.value;} ).get().join( ',' ); 249 //console.log( templates_filtered ); 250 gpLoadPosts( parentElement ); 251 });*/ 252 253 // Template types 254 $( 'input[name="templates[]"]' ).change( function() { 255 var filterTemplates = $( this ); 256 var parentElement = filterTemplates.parent().parent().parent().parent(); 257 gpCurrentValue( parentElement ); 258 templates_filtered = $( '.gp-template-type:checked' ).map( function() {return this.value;} ).get().join( ',' ); 259 gpLoadPosts( parentElement ); 260 }); 261 262 // If clicking menu categories 263 $( '.gp-menu-tabs:not(.gp-mobile-menu-tabs) li' ).hover( function() { 264 var filterMenuCats = $( this ); 265 var parentElement = filterMenuCats.parent().parent(); 266 gpCurrentValue( parentElement ); 267 tab_cat_filtered = filterMenuCats.attr( 'id' ); 268 $( 'li.gp-selected' ).removeClass( 'gp-selected' ); 269 filterMenuCats.addClass( 'gp-selected' ); 270 gpLoadPosts( parentElement ); 271 }, function() { 272 }); 273 $( '.gp-menu-tabs.gp-mobile-menu-tabs li' ).click( function() { 274 var filterMenuCats = $( this ); 275 var parentElement = filterMenuCats.parent().parent(); 276 gpCurrentValue( parentElement ); 277 tab_cat_filtered = filterMenuCats.attr( 'id' ); 278 $( 'li.gp-selected' ).removeClass( 'gp-selected' ); 279 filterMenuCats.addClass( 'gp-selected' ); 280 gpLoadPosts( parentElement ); 281 return false; 282 }); 283 284 // If clicking original pagination (numbers) 285 $( '#gp-content-wrapper .gp-ajax-loop .gp-pagination ul.page-numbers a' ).click( function() { 286 // Get page numbers from page links 287 var filterPagination = $( this ); 288 var parentElement = filterPagination.parent().parent().parent().parent().parent(); 289 gpCurrentValue( parentElement ); 290 if ( filterPagination.hasClass( 'prev' ) ) { 291 var prev = filterPagination.attr('href').match(/(\d+)\D*$/); 292 pagenumber = prev[0]; 293 } else if ( filterPagination.hasClass( 'next' ) ) { 294 var next = filterPagination.attr( 'href' ).match(/(\d+)\D*$/); 295 pagenumber = next[0]; 296 } else { 297 pagenumber = filterPagination.text(); 298 } 299 gpLoadPosts( parentElement ); 300 if ( ! parentElement.hasClass( 'gp-vc-element' ) ) { 301 $( 'html, body' ).animate({ scrollTop : 0 }, 0); 302 } else { 303 $( 'html, body' ).animate({ scrollTop: ( parentElement.offset().top - 200 ) }, 0); 304 } 305 return false;
306 }); 307 308 // If clicking original pagination (arrows) 309 $( '#gp-content-wrapper .gp-pagination-arrows a' ).click( function() { 310 var filterPagination = $( this ); 311 var parentElement = filterPagination.parent().parent().parent(); 312 gpCurrentValue( parentElement ); 313 pagenumber = filterPagination.data( 'pagelink' ); 314 gpLoadPosts( parentElement ); 315 return false; 316 }); 317 318 // If clicking original menu pagination 319 $( '.gp-nav .gp-ajax-loop .gp-pagination-arrows a' ).click( function() { 320 cats_filtered = 0; 321 orderby_filtered = 0; 322 var filterPagination = $( this ); 323 var parentElement = filterPagination.parent().parent().parent(); 324 pagenumber = filterPagination.data( 'pagelink' ); 325 gpLoadPosts( parentElement ); 326 return false; 327 }); 328 329 330 /*-------------------------------------------------------------- 331 Load scripts within ajax 332 --------------------------------------------------------------*/ 333 334 $( document ).ajaxComplete( function( e, xhr, settings ) { 335 336 // Load Isotope 337 if ( $( '.gp-blog-wrapper' ).hasClass( 'gp-blog-masonry' ) ) { 338 339 var container = $( '.gp-blog-masonry .gp-section-loop-inner' ), 340 element = container; 341 342 // Destroy previous isotope 343 container.isotope( 'destroy' ); 344 container.css( 'opacity', 0 ); 345 346 if ( container.find( 'img' ).length == 0 ) { 347 element = $( '<img />' ); 348 } 349 350 imagesLoaded( element, function( instance ) { 351 352 container.isotope({ 353 itemSelector: 'section', 354 percentPosition: true, 355 masonry: { 356 columnWidth: container.find( 'section' )[0], 357 gutter: '.gp-gutter-size' 358 } 359 }); 360 361 container.animate( { 'opacity': 1 }, 1300 ); 362 $( '.gp-pagination' ).animate( { 'opacity': 1 }, 1300 ); 363 $( '.gp-load-more' ).animate( { 'opacity': 1 }, 1300 ); 364 365 }); 366 367 } 368 369 // Load Advanced Responsive Video Embedder 370 var arve_iframe_btns = document.getElementsByClassName( 'arve-iframe-btn' ); 371 372 for ( var i=0; i < arve_iframe_btns.length; i++ ) { 373 374 arve_iframe_btns[i].onclick = function() { 375 376 var target = document.getElementById( this.getAttribute( 'data-target' ) ); 377 target.setAttribute( 'src', target.getAttribute( 'data-src' ) ); 378 target.className = 'arve-inner'; 379 this.parentNode.removeChild( this ); 380 }; 381 }; 382 383 // Get height of first image 384 $( '.gp-ajax-loop .flex-viewport' ).each( function() { 385 var firstImageHeight = $( this ).find( 'ul.slides li:first-child img' ).css( 'height' ); 386 $( this ).css( 'height', firstImageHeight ); 387 }); 388 389 // Gallery category post slider 390 $( '.gp-blog-wrapper:not(.gp-blog-masonry) .gp-post-format-gallery-slider, .gp-showcase-wrapper .gp-post-format-gallery-slider' ).flexslider( { 391 animation: 'fade', 392 slideshowSpeed: 9999999, 393 animationSpeed: 600, 394 directionNav: true, 395 controlNav: false, 396 pauseOnAction: true, 397 pauseOnHover: false, 398 prevText: '', 399 nextText: '', 400 smoothHeight: true 401 }); 402 403 $( '.gp-blog-masonry .gp-post-format-gallery-slider' ).flexslider( { 404 animation: 'fade', 405 slideshowSpeed: 9999999, 406 animationSpeed: 600, 407 directionNav: true, 408 controlNav: false, 409 pauseOnAction: true, 410 pauseOnHover: false, 411 prevText: '', 412 nextText: '' 413 }); 414 415 }); 416 417});
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.