1jQuery(function($){ 2 "use strict"; 3 var on_touch = !$('body').hasClass('ts_desktop'); 4 5 /** Remove loading from fullwidth row **/ 6 $(document).on('vc-full-width-row-single', function(e, data){ 7 data.el.removeClass('loading'); 8 }); 9 10 /** Mega menu **/ 11 ts_mega_menu_change_state($('body').innerWidth()); 12 $('.widget_nav_menu .menu-item-has-children .sub-menu').before('<span class="ts-menu-drop-icon"></span>'); 13 14 /** Menu on IPAD **/ 15 if( on_touch || $(window).width() < 768 ){ 16 ts_menu_action_on_ipad(); 17 } 18 19 /** Sticky Menu **/ 20 if( typeof upstore_params != 'undefined' && upstore_params.sticky_header == 1 ){ 21 ts_sticky_menu(); 22 } 23 24 /** Device - Resize action **/ 25 $(window).on('resize orientationchange', $.throttle(250, function(){ 26 ts_mega_menu_change_state($('body').innerWidth()); 27 ts_set_cloud_zoom(); 28 })); 29 30 /** Shopping cart on ipad **/ 31 if( on_touch ){ 32 $(document).on('click', '.ts-tiny-cart-wrapper span.drop-icon', function(){ 33 $(this).parent().parent().toggleClass('active'); 34 }); 35 } 36 37 /** Header Currency - Language selector on mobile **/ 38 if( on_touch ){ 39 $('.header-currency a.wcml_selected_currency').on('click', function(){ 40 $('.header-currency').toggleClass('active'); 41 }); 42 $('.header-language a.lang_sel_sel').on('click', function(){ 43 $('.header-language').toggleClass('active'); 44 return false; 45 }); 46 } 47 48 /** To Top button **/ 49 if( $('html').offset().top < 100 ){ 50 $("#to-top").hide().addClass("off"); 51 } 52 $(window).on('scroll', function(){ 53 if( $(this).scrollTop() > 100 ){ 54 $("#to-top").removeClass("off").addClass("on"); 55 } else { 56 $("#to-top").removeClass("on").addClass("off"); 57 } 58 }); 59 $('#to-top .scroll-button').on('click', function(){ 60 $('body,html').animate({ 61 scrollTop: '0px' 62 }, 1000); 63 return false; 64 }); 65 66 /** Quickshop **/ 67 $(document).on('click', 'a.quickshop', function( e ){ 68 e.preventDefault(); 69 70 var product_id = $(this).data('product_id'); 71 if( product_id === undefined ){ 72 return; 73 } 74 75 var container = $('#ts-quickshop-modal'); 76 container.addClass('loading'); 77 container.find('.quickshop-content').html(''); 78 $.ajax({ 79 type : 'POST' 80 ,url : upstore_params.ajax_url 81 ,data : {action : 'upstore_load_quickshop_content', product_id: product_id} 82 ,success : function(response){ 83 container.find('.quickshop-content').html( response ); 84 container.find('img:first').on('load', function(){ 85 var height_content = Math.floor(container.find('.popup-container').height()/2)*2; 86 container.find('.popup-container').css({'height': height_content}); 87 container.find('.summary').css({'max-height': height_content}); 88 container.find('.image-items').removeClass('loading'); 89 }); 90 container.removeClass('loading').addClass('show'); 91 92 container.find('form.variations_form').wc_variation_form(); 93 container.find('form.variations_form .variations select').change(); 94 $('body').trigger('wc_fragments_loaded'); 95 96 container.find('form.variations_form').on('click', '.reset_variations', function(){ 97 $(this).parents('.variations').find('.ts-product-attribute .option').removeClass('selected'); 98 }); 99 100 if( container.find('.image-item').length <= 1 ){ 101 return; 102 } 103 104 container.find('.image-items').owlCarousel({ 105 items: 1 106 ,loop: true 107 ,nav: true 108 ,navText: [,] 109 ,dots: false 110 ,navSpeed: 1000 111 ,rtl: $('body').hasClass('rtl') 112 ,navRewind: false 113 }); 114 } 115 }); 116 }); 117 118 $(document).on('click', '.ts-popup-modal .close, .ts-popup-modal .overlay', function(){ 119 $('.ts-popup-modal').removeClass('show'); 120 }); 121 122 /** Login/Registration popup **/ 123 if( $('#ts-account-modal').length > 0 ){ 124 $('.ts-tiny-account-wrapper .account-control a').on('click', function(e){ 125 e.preventDefault(); 126 $('#ts-account-modal').addClass('show'); 127 }); 128 129 if( $('#ts-account-modal .woocommerce-error').length || $('#ts-account-modal .woocommerce-notices-wrapper .is-error').length ){ 130 $('#ts-account-modal').addClass('show'); 131 } 132 } 133 134 /** Wishlist **/ 135 $(document).on('click', '.add_to_wishlist, .product a.compare:not(.added)', function(){ 136 $(this).addClass('loading'); 137 }); 138 139 $('body').on('added_to_wishlist', function(){ 140 ts_update_tini_wishlist(); 141 $('.add_to_wishlist').removeClass('loading'); 142 $('.yith-wcwl-wishlistaddedbrowse.show, .yith-wcwl-wishlistexistsbrowse.show').parent('.button-in.wishlist').addClass('added'); 143 }); 144 145 $('body').on('removed_from_wishlist added_to_cart', function(){ 146 if( $('.wishlist_table').length ){ 147 ts_update_tini_wishlist(); 148 } 149 }); 150 151 /** Compare **/ 152 $('body').on('yith_woocompare_open_popup', function(){ 153 $('.product a.compare').removeClass('loading'); 154 }); 155
156 /*** Color Swatch ***/ 157 $(document).on('click', '.products .product .color-swatch > div', function(){ 158 $(this).siblings().removeClass('active'); 159 $(this).addClass('active'); 160 /* Change thumbnail */ 161 var image_src = $(this).data('thumb'); 162 $(this).closest('.product').find('figure img:first').attr('src', image_src); 163 /* Change price */ 164 var term_id = $(this).data('term_id'); 165 var variable_prices = $(this).parent().siblings('.variable-prices'); 166 var price_html = variable_prices.find('[data-term_id="'+term_id+'"]').html(); 167 $(this).parent().siblings('.price').html( price_html ).addClass('variation-price'); 168 }); 169 170 /*** Set Cloud Zoom ***/ 171 ts_set_cloud_zoom(); 172 173 if( $('.cloud-zoom, .cloud-zoom-gallery').length > 0 ){ 174 $(document).on('found_variation reset_image', 'form.variations_form', function(){ 175 $('.cloud-zoom, .cloud-zoom-gallery').CloudZoom({}); 176 }); 177 } 178 179 /*** Product Image Lightbox ***/ 180 if( $('body').hasClass('single-product') && typeof PhotoSwipe !== 'undefined' ){ 181 182 $('.images-thumbnails').on('click', '.woocommerce-product-gallery__image a', function( e ){ 183 e.preventDefault(); 184 var items = ts_get_single_product_gallery_items(); 185 var index = $(this).find('img').attr('data-index'); 186 var pswpElement = $( '.pswp' )[0]; 187 var options = { 188 index: parseInt(index) 189 ,shareEl: false 190 ,closeOnScroll: false 191 ,history: false 192 ,hideAnimationDuration: 0 193 ,showAnimationDuration: 0 194 }; 195 var photoswipe = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options ); 196 photoswipe.init(); 197 }); 198 199 } 200 201 function ts_get_single_product_gallery_items(){ 202 var items = []; 203 $('.images-thumbnails .woocommerce-product-gallery__image a').each(function(index, ele){ 204 if( $(ele).parents('.owl-item.cloned').length == 0 ){ 205 var img = $(ele).find('img'); 206 var large_image_src = img.attr( 'data-large_image' ); 207 var large_image_w = img.attr( 'data-large_image_width' ); 208 var large_image_h = img.attr( 'data-large_image_height' ); 209 var item = { 210 src: large_image_src, 211 w: large_image_w, 212 h: large_image_h, 213 title: img.attr( 'title' ) 214 }; 215 items.push( item ); 216 } 217 }); 218 219 if( $('.vertical-thumbnail').length > 0 && items.length > 1 ){ 220 var main_thumbnail = items.pop(); 221 items.unshift( main_thumbnail ); 222 223 $('.images-thumbnails > .thumbnails img').each(function(index, ele){ 224 $(ele).attr('data-index', index + 1); 225 }); 226 } 227 228 return items; 229 } 230 231 /*** Product Stock - Variable Product ***/ 232 function single_variable_product_reset_stock( wrapper ){ 233 var stock_html = wrapper.find('p.availability').data('original'); 234 var classes = wrapper.find('p.availability').data('class'); 235 if( classes == '' ){ 236 classes = 'in-stock'; 237 } 238 wrapper.find('p.availability span').html(stock_html); 239 wrapper.find('p.availability').removeClass('in-stock out-of-stock').addClass(classe
239s); 240 } 241 242 $(document).on('found_variation', 'form.variations_form', function(){ 243 var wrapper = $(this).parents('.summary'); 244 if( wrapper.find('.single_variation .stock').length > 0 ){ 245 var stock_html = wrapper.find('.single_variation .stock').html(); 246 var classes = wrapper.find('.single_variation .stock').hasClass('out-of-stock')?'out-of-stock':'in-stock'; 247 wrapper.find('p.availability span').html(stock_html); 248 wrapper.find('p.availability').removeClass('in-stock out-of-stock').addClass(classes); 249 } 250 else{ 251 single_variable_product_reset_stock( wrapper ); 252 } 253 }); 254 255 $(document).on('reset_image', 'form.variations_form', function(){ 256 var wrapper = $(this).parents('.summary'); 257 single_variable_product_reset_stock( wrapper ); 258 }); 259 260 /*** Hide product attribute if not available ***/ 261 $(document).on('update_variation_values', 'form.variations_form', function(){ 262 if( $(this).find('.ts-product-attribute').length > 0 ){ 263 $(this).find('.ts-product-attribute').each(function(){ 264 var attr = $(this); 265 var values = []; 266 attr.siblings('select').find('option').each(function(){ 267 if( $(this).attr('value') ){ 268 values.push( $(this).attr('value') ); 269 } 270 }); 271 attr.find('.option').removeClass('hidden'); 272 attr.find('.option').each(function(){ 273 if( $.inArray($(this).attr('data-value'), values) == -1 ){ 274 $(this).addClass('hidden'); 275 } 276 }); 277 }); 278 } 279 }); 280 281 /*** Custom Orderby on Product Page ***/ 282 $('form.woocommerce-ordering ul.orderby ul a').on('click', function(e){ 283 e.preventDefault(); 284 if( $(this).hasClass('current') ){ 285 return; 286 } 287 var form = $('form.woocommerce-ordering'); 288 var data = $(this).attr('data-orderby'); 289 form.find('select.orderby').val(data).trigger('change'); 290 }); 291 292 /*** Per page on Product page ***/ 293 $('form.product-per-page-form ul.perpage ul a').on('click', function(e){ 294 e.preventDefault(); 295 if( $(this).hasClass('current') ){ 296 return; 297 } 298 var form = $('form.product-per-page-form'); 299 var data = $(this).attr('data-perpage'); 300 form.find('select.perpage').val(data); 301 form.submit(); 302 }); 303 304 /*** Select2 - Search by Category ***/ 305 if( typeof $.fn.select2 == 'function' ){ 306 $('.ts-search-by-category select.select-category').select2(); 307 308 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; 309 310 $.fn.attrchange = function(callback) { 311 if (MutationObserver) { 312 var options = { 313 subtree: false, 314 attributes: true 315 }; 316 317 var observer = new MutationObserver(function(mutations) { 318 mutations.forEach(function(e) { 319 callback.call(e.target, e.attributeName); 320 }); 321 }); 322 323 return this.each(function() { 324 observer.observe(this, options); 325 }); 326 } 327 } 328 329 $('.ts-header .ts-search-by-category .select2-container').attrchange(function(attrName){ 330 if( attrName == 'class' ){ 331 if( $(this).hasClass('select2-container--open') ){ 332 $('body > .select2-container--open').addClass('category-dropdown'); 333 $('body > .select2-container--open').removeClass('sticky'); 334 } 335 else{ 336 $('body > .select2-container--open').removeClass('category-dropdown'); 337 } 338 } 339 }); 340 } 341 342 /*** Widget toggle ***/ 343 $('.widget-title-wrapper a.block-control').on('click', function(e){ 344 e.preventDefault(); 345 $(this).parent().siblings(':not(script)').slideToggle(400); 346 $(this).toggleClass('active'); 347 }); 348 349 ts_widget_toggle(); 350 if( !on_touch ){ 351 $(window).on('resize', $.throttle(250, function(){ 352 ts_widget_toggle(); 353 })); 354 } 355 356 /* Image Lazy Load */ 357 if( $('img.ts-lazy-load').length ){ 358 $(window).on('scroll ts_lazy_load', function(){ 359 var scroll_top = $(this).scrollTop(); 360 var window_height = $(this).height(); 361 $('img.ts-lazy-load:not(.loaded)').each(function(){ 362 if( $(this).data('src') && $(this).offset().top < scroll_top + window_height + 900 ){ 363 $(this).attr('src', $(this).data('src')).addClass('loaded'); 364 } 365 }); 366 }); 367 368 if( $('img.ts-lazy-load:first').offset().top < $(window).scrollTop() + $(window).height() + 200 ){ 369 $(window).trigger('ts_lazy_load'); 370 } 371 } 372 373 /* WooCommerce Quantity Increment */ 374 $( document ).on( 'click', '.plus, .minus', function() { 375 var $qty = $( this ).closest( '.quantity' ).find( '.qty' ), 376 currentVal = parseFloat( $qty.val() ), 377 max = parseFloat( $qty.attr( 'max' ) ), 378 min = parseFloat( $qty.attr( 'min' ) ), 379 step = $qty.attr( 'step' ); 380 381 if ( ! currentVal || currentVal === '' || currentVal === 'NaN' ) currentVal = 0; 382 if ( max === '' || max === 'NaN' ) max = ''; 383 if ( min === '' || min === 'NaN' ) min = 0; 384 if ( step === 'any' || step === '' || step === undefined || parseFloat( step )
384=== 'NaN' ) step = 1; 385 386 if ( $( this ).is( '.plus' ) ) { 387 if ( max && ( max == currentVal || currentVal > max ) ) { 388 $qty.val( max ); 389 } else { 390 $qty.val( currentVal + parseFloat( step ) ); 391 } 392 } else { 393 if ( min && ( min == currentVal || currentVal < min ) ) { 394 $qty.val( min ); 395 } else if ( currentVal > 0 ) { 396 $qty.val( currentVal - parseFloat( step ) ); 397 } 398 } 399 400 $qty.trigger( 'change' ); 401 }); 402 403 /* Ajax Search */ 404 if( typeof upstore_params != 'undefined' && upstore_params.ajax_search == 1 ){ 405 ts_ajax_search(); 406 } 407 /* Search - Shopping Cart Sidebar */ 408 $(document).on('click', '.search-sidebar-icon .icon, .shopping-cart-wrapper .cart-control', function(e){ 409 $('.ts-floating-sidebar .close').trigger('click'); 410 var is_cart = $(this).is('.cart-control'); 411 if( is_cart ){ 412 if( $('#ts-shopping-cart-sidebar').length > 0 ){ 413 e.preventDefault(); 414 $('#ts-shopping-cart-sidebar').addClass('active'); 415 $('#page').addClass('floating-sidebar-active'); 416 } 417 } 418 else{ 419 $('#ts-search-sidebar').addClass('active'); 420 $('#page').addClass('floating-sidebar-active'); 421 setTimeout(function(){ 422 $('#ts-search-sidebar input[name="s"]').focus(); 423 }, 600); 424 } 425 }); 426 $('.ts-floating-sidebar .overlay, .ts-floating-sidebar .close').on('click', function(){ 427 $('.ts-floating-sidebar').removeClass('active'); 428 $('#page').removeClass('floating-sidebar-active'); 429 $('.top-filter-widget-area-button.show-sidebar a').removeClass('active'); 430 }); 431 if( $('body').hasClass('ts_desktop') && $('.ts-floating-sidebar').length > 0 ){ 432 var is_rtl = $('body').hasClass('rtl'); 433 var scrollbar_width = ts_get_scrollbar_width(); 434 if( !is_rtl ){ 435 $('.ts-floating-sidebar .ts-sidebar-content').css({'right': -scrollbar_width + 'px'}); 436 } 437 else{ 438 $('.ts-floating-sidebar .ts-sidebar-content').css({'left': -scrollbar_width + 'px'}); 439 } 440 } 441 442 /* Add To Cart Effect */ 443 if( !$('body').hasClass('woocommerce-cart') ){ 444 $(document.body).on('adding_to_cart', function( e, $button, data ){ 445 if( wc_add_to_cart_params.cart_redirect_after_add == 'no' ){ 446 if( typeof upstore_params != 'undefined' && upstore_params.add_to_cart_effect == 'show_popup' && typeof $button != 'undefined' ){ 447 var product_id = $button.attr('data-product_id'); 448 var container = $('#ts-add-to-cart-popup-modal'); 449 container.addClass('adding'); 450 $.ajax({ 451 type : 'POST' 452 ,url : upstore_params.ajax_url 453 ,data : {action : 'upstore_load_product_added_to_cart', product_id: product_id} 454 ,success : function(response){ 455 container.find('.add-to-cart-popup-content').html( response ); 456 if( container.hasClass('loading') ){ 457 container.removeClass('loading').addClass('show'); 458 } 459 container.removeClass('adding'); 460 } 461 }); 462 } 463 } 464 }); 465 466 $(document.body).on('added_to_cart', function( e, fragments, cart_hash, $button ){ 467 /* Show Cart Sidebar */ 468 if( typeof upstore_params != 'undefined' && upstore_params.show_cart_after_adding == 1 ){ 469 $('.shopping-cart-wrapper .cart-control').trigger('click'); 470 return; 471 } 472 /* Cart Fly Effect */ 473 if( typeof upstore_params != 'undefined' && typeof $button != 'undefined' ){ 474 if( upstore_params.add_to_cart_effect == 'fly_to_cart' ){ 475 var cart = $('.shopping-cart-wrapper'); 476 if( cart.length == 2 ){ 477 if( $(window).width() > 767 ){ 478 cart = $('.hidden-phone .shopping-cart-wrapper'); 479 } 480 else{ 481 cart = $('.visible-phone.shopping-cart-wrapper'); 482 } 483 } 484 if( typeof cart != 'undefined' ){ 485 var product_img = $button.closest('section.product').find('figure img').eq(0); 486 if( product_img.length == 1 ){ 487 var effect_time = 800; 488 var cart_in_sticky = $('.is-sticky .shopping-cart-wrapper').length; 489 if( cart_in_sticky ){ 490 effect_time = 500; 491 } 492 493 var imgclone_height = product_img.width()?150 * product_img.height() / product_img.width():150; 494 var imgclone_small_height = product_img.width()?75 * product_img.height() / product_img.width():75; 495 496 var imgclone = product_img.clone().offset({top: product_img.offset().top, left: product_img.offset().left})
497 .css({'opacity': '0.6', 'position': 'absolute', 'height': imgclone_height + 'px', 'width': '150px', 'z-index': '99999999'}) 498 .appendTo($('body')) 499 .animate({'top': cart.offset().top + cart.height()/2, 'left': cart.offset().left + cart.width()/2, 'width': 75, 'height': imgclone_small_height}, effect_time, 'linear'); 500 501 if( !cart_in_sticky ){ 502 $('body,html').animate({ 503 scrollTop: '0px' 504 }, effect_time); 505 } 506 507 imgclone.animate({ 508 'width': 0 509 ,'height': 0 510 }, function(){ 511 $(this).detach() 512 }); 513 } 514 } 515 } 516 if( upstore_params.add_to_cart_effect == 'show_popup' ){ 517 var container = $('#ts-add-to-cart-popup-modal'); 518 if( container.hasClass('adding') ){ 519 container.addClass('loading'); 520 } 521 else{ 522 container.addClass('show'); 523 } 524 } 525 } 526 }); 527 } 528 529 /* Disable Ajax Remove Cart Item on Cart and Checkout page */ 530 if( $('body').hasClass('woocommerce-cart') || $('body').hasClass('woocommerce-checkout') ){ 531 $(document.body).off('click', '.remove_from_cart_button'); 532 } 533 534 /* Top Filter Widget Area */ 535 $('.top-filter-widget-area-button a').on('click', function(){ 536 $(this).toggleClass('active'); 537 if( !$(this).parent().hasClass('show-sidebar') ){ 538 $('.top-filter-widget-area').slideToggle(); 539 } 540 else{ 541 $('#ts-top-filter-widget-area-sidebar').toggleClass('active'); 542 $('#page').toggleClass('floating-sidebar-active'); 543 } 544 return false; 545 }); 546 547 /* Single post - Related posts - Gallery slider */ 548 ts_single_related_post_gallery_slider(); 549 550 /* Single Product - Variable Product options */ 551 $(document).on('click', '.variations_form .ts-product-attribute .option a', function(){ 552 var _this = $(this); 553 var val = _this.closest('.option').data('value'); 554 var selector = _this.closest('.ts-product-attribute').siblings('select'); 555 if( selector.length > 0 ){ 556 if( selector.find('option[value="' + val + '"]').length > 0 ){ 557 selector.val(val).change(); 558 _this.closest('.ts-product-attribute').find('.option').removeClass('selected'); 559 _this.closest('.option').addClass('selected'); 560 } 561 } 562 return false; 563 }); 564 565 $('.variations_form').on('click', '.reset_variations', function(){ 566 $(this).closest('.variations').find('.ts-product-attribute .option').removeClass('selected'); 567 }); 568 569 /* Product thumbnails slider */ 570 if( $('.single-product').length > 0 ){ 571 /* Horizontal slider */ 572 var wrapper = $('.single-product .product:not(.vertical-thumbnail) .images-thumbnails .thumbnails-container.loading'); 573 wrapper.find('.product-thumbnails').owlCarousel({ 574 loop: true 575 ,nav: true 576 ,navText: [,] 577 ,dots: false 578 ,navSpeed: 1000 579 ,rtl: $('body').hasClass('rtl') 580 ,margin: 20 581 ,navRewind: false 582 ,autoplay: true 583 ,autoplayHoverPause: true 584 ,autoplaySpeed: 1000 585 ,responsiveBaseElement: wrapper 586 ,responsiveRefreshRate: 1000 587 ,responsive:{0:{items:2},280:{items:3},400:{items:4},520:{items:5},650:{items:6}} 588 ,onInitialized: function(){ 589 wrapper.addClass('loaded').removeClass('loading'); 590 } 591 }); 592 593 /* Vertical slider */ 594 var wrapper = $('.single-product .product.vertical-thumbnail .images-thumbnails .thumbnails-container.loading'); 595 596 if( wrapper.length > 0 && typeof $.fn.carouFredSel == 'function' ){ 597 var items = 3; 598 599 var _slider_data = { 600 items: items 601 ,direction: 'up' 602 ,width: 'auto' 603 ,height: '150px' 604 ,infinite: true 605 ,prev: wrapper.find('.owl-prev') 606 ,next: wrapper.find('.owl-next') 607 ,auto: { 608 play: true 609 ,timeoutDuration: 5000 610 ,duration: 800 611 ,delay: 3000 612 ,items: 1 613 ,pauseOnHover: true 614 } 615 ,scroll: { 616 items: 1 617 } 618 ,swipe: { 619 onTouch: true 620 ,onMouse: true 621 } 622 ,onCreate: function(){ 623 wrapper.addClass('loaded').removeClass('loading'); 624 } 625 }; 626 627 wrapper.find('.product-thumbnails').carouFredSel(_slider_data); 628 629 $(window).on('resize orientationchange', $.debounce( 250, function(){ 630 if( $(window).width() < 500 ){ 631 _slider_data.items = 2; 632 } 633 else{ 634 _slider_data.items = items; 635 } 636 wrapper.find('.product-thumbnails').trigger('configuration', _slider_data); 637 } )); 638 639 $(window).trigger('resize'); 640 } 641 } 642 643 /* Single Product Video */ 644 $('a.ts-product-video-button').on('click', function(e){ 645 e.preventDefault(); 646 var product_id = $(this).data('product_id'); 647 var container = $('#ts-product-video-modal'); 648 if( container.find('.product-video-content').html() ){ 649 container.addClass('show'); 650 } 651 else{ 652 container.addClass('loading'); 653 $.ajax({ 654 type : 'POST' 655 ,url : upstore_params.ajax_url 656 ,data : {action : 'upstore_load_product_video', product_id: product_id} 657 ,success : function(response){ 658 container.find('.product-video-content').html( response ); 659 container.removeClass('loading').addClass('show'); 660 } 661 }); 662 } 663 }); 664 665 /* Single product 360 */ 666 if( typeof $.fn.ThreeSixty == 'function' ){ 667 if( $('.ts-product-360-button').length == 0 ){ 668 setTimeout(function(){ 669 generate_product_360(); 670 }, 200); 671 } 672 673 $('.ts-product-360-button').on('click', function(){ 674 $('#ts-product-360-modal').addClass('loading'); 675 generate_product_360(); 676 return false;
677 }); 678 } 679 680 function generate_product_360(){ 681 if( !$('.ts-product-360').hasClass('loaded') ){ 682 $('.ts-product-360').ThreeSixty({ 683 currentFrame: 1 684 ,imgList: '.threesixty_images' 685 ,imgArray: _ts_product_360_image_array 686 ,totalFrames: _ts_product_360_image_array.length 687 ,endFrame: _ts_product_360_image_array.length 688 ,progress: '.spinner' 689 ,navigation: true 690 ,responsive: true 691 ,onReady: function(){ 692 $('#ts-product-360-modal').removeClass('loading').addClass('show'); 693 $('.ts-product-360').addClass('loaded'); 694 } 695 }); 696 } 697 else{ 698 $('#ts-product-360-modal').removeClass('loading').addClass('show'); 699 } 700 } 701 702 /* Related - Upsell - Crosssell products slider */ 703 $('.single-product .related .products, .single-product .upsells .products, .woocommerce .cross-sells .products').each(function(){ 704 var _this = $(this); 705 if( _this.find('.product').length > 1 ){ 706 _this.owlCarousel({ 707 loop: true 708 ,nav: true 709 ,navText: [,] 710 ,dots: false 711 ,navSpeed: 1000 712 ,rtl: $('body').hasClass('rtl') 713 ,margin: 30 714 ,navRewind: false 715 ,responsiveBaseElement: _this 716 ,responsiveRefreshRate: 1000 717 ,responsive:{0:{items:1},345:{items:2},570:{items:3},871:{items:4},1400:{items:5}} 718 }); 719 } 720 }); 721 722 /* Single product scrolling */ 723 ts_scrolling_fixed($('.product.thumbnail-summary-scrolling > .images-thumbnails'), $('.product > .summary')); 724 725 /* Single product top thumbnail slider */ 726 if( $('.single-product-top-thumbnail-slider').length > 0 ){ 727 setTimeout(function(){ 728 var slider_data = { 729 loop: true 730 ,nav: true 731 ,navText: [,] 732 ,dots: false 733 ,navSpeed: 1000 734 ,center: true 735 ,rtl: $('body').hasClass('rtl') 736 ,margin: 30 737 ,navRewind: false 738 ,autoplay: true 739 ,autoplayHoverPause: true 740 ,responsive:{0:{items:1},768:{items:2}} 741 ,onInitialized: function(){ 742 $('.single-product-top-thumbnail-slider').removeClass('loading'); 743 } 744 }; 745 $(document).trigger('single_product_top_thumbnail_slider_data', slider_data); 746 $('.single-product-top-thumbnail-slider').owlCarousel(slider_data); 747 }, 200); 748 749 if( typeof wc_single_product_params.photoswipe_options != 'undefined' ){ 750 $('.woocommerce-product-gallery__image a img').on('mouseenter', function(){ 751 wc_single_product_params.photoswipe_options.index = parseInt($(this).attr('data-index')); 752 }); 753 } 754 } 755 756 /* Background Video - Youtube Video */ 757 if( typeof $.fn.YTPlayer == 'function' ){ 758 $('.ts-youtube-video-bg').each(function(index, element){ 759 var selector = $(this); 760 var poster = selector.data('poster'); 761 var property = selector.data('property') && typeof selector.data('property') == 'string' ? eval('(' + selector.data('property') + ')') : selector.data('property'); 762 763 if( ! on_touch ) { 764 var player = selector.YTPlayer(); 765 766 player.on('YTPPlay', function(){ 767 selector.removeClass('pausing').addClass('playing'); 768 selector.closest('.vc_row').addClass('playing'); 769 if( poster ){ 770 selector.css({'background-image':''}); 771 selector.find('.mbYTP_wrapper').css({'opacity':1}); 772 } 773 }); 774 775 player.on('YTPPause YTPEnd', function(){ 776 selector.removeClass('playing').addClass('pausing'); 777 selector.closest('.vc_row').removeClass('playing'); 778 if( poster ){ 779 selector.css({'background-image':'url(' + poster + ')'}); 780 selector.find('.mbYTP_wrapper').css({'opacity':0}); 781 } 782 }); 783 784 player.on('YTPChanged', function(){ 785 if( !property.autoPlay && poster ){ 786 selector.css({'background-image':'url(' + poster + ')'}); 787 } 788 }); 789 } 790 else if( poster ) { 791 selector.css({'background-image':'url(' + poster + ')'}); 792 } 793 }); 794 } 795 796 /* Background Video - Hosted Video */ 797 $('.ts-hosted-video-bg').each(function(){ 798 var selector = $(this); 799 var video = selector.find('video'); 800 var video_dom = selector.find('video').get(0); 801 if( video.hasClass('loop') ){ 802 video_dom.loop = true; 803 } 804 if( video.hasClass('muted') ){ 805 video_dom.muted = true; 806 } 807 808 var poster = selector.data('poster'); 809 if( poster ){ 810 selector.css({'background-image':'url(' + poster + ')'}); 811 } 812 813 var control = selector.find('.video-control'); 814 control.on('click', function(){ 815 if( ! selector.hasClass('playing') ){ 816 video_dom.play(); 817 selector.css({'background-image':''}); 818 selector.removeClass('pausing').addClass('playing'); 819 selector.closest('.vc_row').addClass('playing'); 820 } 821 else{ 822 video_dom.pause(); 823 if( poster ){ 824 selector.css({'background-image':'url(' + poster + ')'}); 825 } 826 selector.removeClass('playing').addClass('pausing'); 827 selector.closest('.vc_row').removeClass('playing'); 828 } 829 }); 830 if( ! on_touch ){ 831 selector.addClass('pausing'); 832 if( video.hasClass('autoplay') ){ 833 control.trigger('click'); 834 } 835 } 836 }); 837 838 /* Accordion - scroll to activated tab */ 839 $('.single-product .vc_tta-accordion .vc_tta-panel-heading').on('click', function(){ 840 if( $(this).parents('.vc_tta-panel').hasClass('vc_active') ){ 841 return; 842 } 843 var acc_header = $(this); 844 var header_sticky = 0; 845 if( !on_touch ){ 846 if( $('.is-sticky .header-sticky').length > 0 ){ 847 header_sticky = $('.is-sticky .header-sticky').height(); 848 } 849 else if( typeof upstore_params != 'undefined' && upstore_params.sticky_header == 1 && $('.header-sticky').length > 0 ){ 850 header_sticky = $('.header-sticky').height(); 851 } 852 } 853 setTimeout(function(){ 854 $('body,html').animate({ 855 scrollTop: acc_header.offset().top - acc_header.height() - header_sticky 856 }, 600); 857 }, 600); 858 }); 859 860 if( $('.woocommerce-tabs.accordion-tabs').length > 0 ){
861 $('a.woocommerce-review-link').on('click', function(){ 862 var acc_header = $('#reviews').parents('.vc_tta-panel-body').siblings('.vc_tta-panel-heading'); 863 if( !acc_header.parents('.vc_tta-panel').hasClass('vc_active') ){ 864 setTimeout(function(){ 865 acc_header.trigger('click'); 866 acc_header.find('.vc_tta-panel-title a').trigger('click'); 867 }, 100); 868 } 869 }); 870 } 871 872 /* Single Portfolio Scrolling */ 873 ts_scrolling_fixed($('.single-portfolio.left-thumbnail.gallery .thumbnails'), $('.single-portfolio .entry-content')); 874 875 /* Single Portfolio Lightbox */ 876 if( typeof $.fn.prettyPhoto == 'function' ){ 877 $('.single-portfolio .thumbnails a[rel^="prettyPhoto"]').prettyPhoto({ 878 show_title: false 879 ,deeplinking: false 880 ,social_tools: false 881 }); 882 } 883 884 /* Single Portfolio Gallery */ 885 if( typeof $.fn.isotope == 'function' ){ 886 setTimeout(function(){ 887 $('.single-portfolio.gallery .thumbnails figure').isotope(); 888 }, 200); 889 } 890 891 /* Single Portfolio Slider */ 892 ts_generate_single_portfolio_slider(); 893 894 /* product deals on revolution */ 895 if( $('#block-deals-revolution').length > 0 ){ 896 $('#primary').css('position', 'relative'); 897 $('#block-deals-revolution').show(); 898 } 899}); 900 901/*** Mega menu ***/ 902function ts_mega_menu_change_state(case_size){ 903 if( typeof case_size == 'undefined' ){ 904 var case_size = jQuery('body').innerWidth(); 905 } 906 case_size += ts_get_scrollbar_width(); 907 908 /* Hide Group Meta Header */ 909 if( case_size <= 991 ){ 910 jQuery('.group-meta-header').hide(); 911 jQuery('.ts-header .header-top').removeClass('open'); 912 jQuery('.ts-group-meta-icon-toggle').removeClass('active'); 913 914 jQuery('.ts-group-meta-icon-toggle').off('click'); 915 jQuery('.ts-group-meta-icon-toggle').on('click', function(){ 916 jQuery('.group-meta-header').slideToggle(300); 917 jQuery('.ts-header .header-top').toggleClass('open'); 918 jQuery(this).toggleClass('active'); 919 }); 920 } 921 /* Reset dropdown icon class on Ipad */ 922 jQuery('.ts-menu-drop-icon').removeClass('active'); 923 924 if( case_size > 767 ){ 925 926 var padding_left = 0, container_width = 0; 927 var container = jQuery('.header-sticky > .container'); 928 var container_stretch = jQuery('.header-sticky'); 929 if( container.length <= 0 ){ 930 container = jQuery('.header-sticky'); 931 if( container.length <= 0 ){ 932 return; 933 } 934 container_width = container.outerWidth(); 935 } 936 else{ 937 container_width = container.width(); 938 padding_left = parseInt(container.css('padding-left')); 939 } 940 var container_offset = container.offset(); 941 942 var container_stretch_width = container_stretch.outerWidth(); 943 var container_stretch_offset = container_stretch.offset(); 944 945 setTimeout(function(){ 946 jQuery('.ts-menu nav.main-menu > ul.menu > .ts-megamenu-fullwidth').each(function(index, element){ 947 var current_offset = jQuery(element).offset(); 948 if( jQuery(element).hasClass('ts-megamenu-fullwidth-stretch') ){ 949 var left = current_offset.left - container_stretch_offset.left; 950 jQuery(element).children('ul.sub-menu').css({'width':container_stretch_width+'px','left':-left+'px','right':'auto'}); 951 } 952 else{ 953 var left = current_offset.left - container_offset.left - padding_left; 954 jQuery(element).children('ul.sub-menu').css({'width':container_width+'px','left':-left+'px','right':'auto'}); 955 } 956 }); 957 958 jQuery('.ts-menu nav.main-menu > ul.menu').children('.ts-megamenu-columns-1, .ts-megamenu-columns-2, .ts-megamenu-columns-3, .ts-megamenu-columns-4').each(function(index, element){ 959 jQuery(element).children('ul.sub-menu').css({'max-width':container_width+'px'}); 960 var sub_menu_width = jQuery(element).children('ul.sub-menu').outerWidth(); 961 var item_width = jQuery(element).outerWidth(); 962 jQuery(element).children('ul.sub-menu').css({'left':'-'+(sub_menu_width/2 - item_width/2)+'px','right':'auto'}); 963 964 var container_left = container_offset.left; 965 var container_right = container_left + container_width; 966 var item_left = jQuery(element).offset().left; 967 968 var overflow_left = (sub_menu_width/2 > (item_left + item_width/2 - container_left)); 969 var overflow_right = ((sub_menu_width/2 + item_left + item_width/2) > container_right); 970 if( overflow_left ){ 971 var left = item_left - container_left - padding_left; 972 jQuery(element).children('ul.sub-menu').css({'left':-left+'px','right':'auto'}); 973 } 974 if( overflow_right && !overflow_left ){ 975 var left = item_left - container_left - padding_left; 976 left = left - ( container_width - sub_menu_width ); 977 jQuery(element).children('ul.sub-menu').css({'left':-left+'px','right':'auto'}); 978 } 979 }); 980 981 /* Remove hide class after loading */ 982 jQuery('ul.menu li.menu-item').removeClass('hide'); 983 984 },800); 985 986 } 987 else{ /* Mobile menu action */ 988 jQuery('.ic-mobile-menu-button').off('click'); 989 jQuery('.ic-mobile-menu-button').on('click', function(){ 990 jQuery('#page').addClass('menu-mobile-active'); 991 }); 992 993 jQuery('.ic-mobile-menu-close-button').off('click'); 994 jQuery('.ic-mobile-menu-close-button').on('click', function(){ 995 jQuery('#page').removeClass('menu-mobile-active'); 996 }); 997 998 jQuery('#wpadminbar').css('position', 'fixed'); 999 1000 /* Remove hide class after loading */ 1001 jQuery('ul.menu li.menu-item').removeClass('hide'); 1002 } 1003 1004} 1005 1006function ts_menu_action_on_ipad(){ 1007 /* Vertical Menu Heading */ 1008 jQuery('.vertical-menu-heading').on('click',function(){ 1009 1010 var is_active = jQuery(this).hasClass('active'); 1011 var vertical_menu = jQuery(this).siblings('.vertical-menu'); 1012
1013 jQuery('.ts-menu nav.main-menu .sub-menu').hide(); 1014 jQuery('.ts-menu nav.main-menu li.menu-item').removeClass('active'); 1015 jQuery('.ts-menu nav.main-menu .ts-menu-drop-icon').removeClass('active'); 1016 1017 if( vertical_menu.length > 0 ){ 1018 if( is_active ){ 1019 vertical_menu.fadeOut(250); 1020 jQuery(this).removeClass('active'); 1021 } 1022 else{ 1023 vertical_menu.fadeIn(250); 1024 jQuery(this).addClass('active'); 1025 } 1026 } 1027 }); 1028 1029 /* Vertical Menu Drop Icon */ 1030 jQuery('.vertical-menu-wrapper .ts-menu-drop-icon').on('click', function(){ 1031 1032 var is_active = jQuery(this).hasClass('active'); 1033 var sub_menu = jQuery(this).siblings('.sub-menu'); 1034 1035 jQuery('.ts-menu nav.main-menu .sub-menu').hide(); 1036 jQuery('.ts-menu nav.main-menu .ts-menu-drop-icon').removeClass('active'); 1037 jQuery('.ts-menu nav.main-menu li.menu-item').removeClass('active'); 1038 1039 jQuery('.ts-menu nav.vertical-menu .ts-menu-drop-icon').removeClass('active'); 1040 jQuery('.ts-menu nav.vertical-menu .sub-menu').hide(); 1041 1042 jQuery(this).parents('.sub-menu').show(); 1043 1044 if( sub_menu.length > 0 ){ 1045 if( is_active ){ 1046 sub_menu.fadeOut(250); 1047 jQuery(this).removeClass('active'); 1048 } 1049 else{ 1050 sub_menu.fadeIn(250); 1051 jQuery(this).addClass('active'); 1052 } 1053 jQuery(this).parents('.sub-menu').siblings('.ts-menu-drop-icon').addClass('active'); 1054 } 1055 }); 1056 1057 /* Main Menu Drop Icon */ 1058 jQuery('.ts-menu nav.main-menu .ts-menu-drop-icon').on('click', function(){ 1059 1060 var is_active = jQuery(this).hasClass('active'); 1061 var sub_menu = jQuery(this).siblings('.sub-menu'); 1062 1063 jQuery('.vertical-menu-heading').removeClass('active'); 1064 jQuery('.vertical-menu-wrapper > .vertical-menu').hide(); 1065 jQuery('.ts-menu nav.vertical-menu .ts-menu-drop-icon').removeClass('active'); 1066 jQuery('.ts-menu nav.vertical-menu .sub-menu').hide(); 1067 1068 jQuery('.ts-menu nav.main-menu .ts-menu-drop-icon').removeClass('active'); 1069 jQuery('.ts-menu nav.main-menu li.menu-item').removeClass('active'); 1070 jQuery('.ts-menu nav.main-menu .sub-menu').hide(); 1071 1072 jQuery(this).parents('.sub-menu').show(); 1073 1074 if( sub_menu.length > 0 ){ 1075 if( is_active ){ 1076 sub_menu.fadeOut(250); 1077 jQuery(this).removeClass('active'); 1078 jQuery(this).parent().removeClass('active'); 1079 } 1080 else{ 1081 sub_menu.fadeIn(250); 1082 jQuery(this).addClass('active'); 1083 jQuery(this).parent().addClass('active'); 1084 } 1085 jQuery(this).parents('.sub-menu').siblings('.ts-menu-drop-icon').addClass('active'); 1086 } 1087 }); 1088 1089 /* Mobile Menu Drop Icon */ 1090 jQuery('.ts-menu nav.mobile-menu .sub-menu').hide(); 1091 jQuery('.ts-menu nav.mobile-menu .ts-menu-drop-icon').on('click', function(){ 1092 var is_active = jQuery(this).hasClass('active'); 1093 var sub_menu = jQuery(this).siblings('.sub-menu'); 1094 1095 if( is_active ){ 1096 sub_menu.slideUp(250); 1097 sub_menu.find('.sub-menu').hide(); 1098 sub_menu.find('.ts-menu-drop-icon').removeClass('active'); 1099 } 1100 else{ 1101 sub_menu.slideDown(250); 1102 } 1103 jQuery(this).toggleClass('active'); 1104 }); 1105 1106} 1107 1108/*** End Mega menu ***/ 1109function ts_get_scrollbar_width() { 1110 var $inner = jQuery('<div style="width: 100%; height:200px;">test</div>'), 1111 $outer = jQuery('<div style="width:200px;height:150px; position: absolute; top: 0; left: 0; visibility: hidden; overflow:hidden;"></div>').append($inner), 1112 inner = $inner[0], 1113 outer = $outer[0]; 1114 1115 jQuery('body').append(outer); 1116 var width1 = inner.offsetWidth; 1117 $outer.css('overflow', 'scroll'); 1118 var width2 = outer.clientWidth; 1119 $outer.remove(); 1120 1121 return (width1 - width2); 1122} 1123 1124/*** Sticky Menu ***/ 1125function ts_sticky_menu(){ 1126 if( jQuery(window).width() > 1200 ){ 1127 var top_spacing = 0; 1128 if( jQuery('body').hasClass('logged-in') && jQuery('body').hasClass('admin-bar') && jQuery('#wpadminbar').length > 0 ){ 1129 top_spacing = jQuery('#wpadminbar').height(); 1130 } 1131 var top_begin = jQuery('header.ts-header').height() + 100; 1132 if( jQuery('body').hasClass('display-vertical-menu') && jQuery('nav.vertical-menu').length > 0 ){ 1133 top_begin += jQuery('nav.vertical-menu').height(); 1134 } 1135 1136 setTimeout( function(){ 1137 jQuery('.header-sticky').sticky({ 1138 topSpacing: top_spacing 1139 ,topBegin: top_begin 1140 ,scrollOnTop : function (){ 1141 ts_mega_menu_change_state(); 1142 jQuery('body > .select2-container--open').removeClass('sticky'); 1143 } 1144 ,scrollOnBottom : function (){ 1145 ts_mega_menu_change_state(); 1146 jQuery('body > .select2-container--open').addClass('sticky'); 1147 } 1148 }); 1149 }, 200); 1150 } 1151} 1152 1153/*** Custom Wishlist ***/ 1154function ts_update_tini_wishlist(){ 1155 if( typeof upstore_params == 'undefined' ){ 1156 return; 1157 } 1158 1159 var wishlist_wrapper = jQuery('.my-wishlist-wrapper'); 1160 if( wishlist_wrapper.length == 0 ){ 1161 return; 1162 } 1163 1164 wishlist_wrapper.addClass('loading'); 1165 1166 jQuery.ajax({ 1167 type : 'POST' 1168 ,url : upstore_params.ajax_url 1169 ,data : {action : 'upstore_update_tini_wishlist'} 1170 ,success : function(response){ 1171 var first_icon = wishlist_wrapper.children('i.fa:first'); 1172 wishlist_wrapper.html(response); 1173 if( first_icon.length > 0 ){ 1174 wishlist_wrapper.prepend(first_icon); 1175 } 1176 wishlist_wrapper.removeClass('loading'); 1177 } 1178 }); 1179} 1180 1181/*** End Custom Wishlist***/ 1182 1183/*** Set Cloud Zoom ***/ 1184function ts_set_cloud_zoom(){ 1185 jQuery('.cloud-zoom-wrap .cloud-zoom-big').remove(); 1186 jQuery('.cloud-zoom, .cloud-zoom-gallery').off('click'); 1187 var clz_width = jQuery('.cloud-zoom, .cloud-zoom-gallery').width(); 1188 var clz_img_width = jQuery('.cloud-zoom, .cloud-zoom-gallery').children('img').width(); 1189 var cl_zoom = jQuery('.cloud-zoom, .cloud-zoom-gallery').not('.on_pc'); 1190 var temp = (clz_width-clz_img_width)/2; 1191 if(cl_zoom.length > 0 ){ 1192 cl_zoom.data('zoom',null).siblings('.mousetrap').off().remove(); 1193 cl_zoom.CloudZoom({
1194 adjustX:temp 1195 }); 1196 } 1197} 1198 1199/*** Widget toggle ***/ 1200function ts_widget_toggle(){ 1201 if( typeof upstore_params != 'undefined' && upstore_params.responsive == 0 ){ 1202 return; 1203 } 1204 jQuery('.wpb_widgetised_column .widget-title-wrapper a.block-control, .footer-container .widget-title-wrapper a.block-control, .filter-widget-area > section .widget-title-wrapper a.block-control').remove(); 1205 var window_width = jQuery(window).width(); 1206 window_width += ts_get_scrollbar_width(); 1207 if( window_width >= 768 ){ 1208 jQuery('.widget-title-wrapper a.block-control').removeClass('active').hide(); 1209 jQuery('.widget-title-wrapper a.block-control').parent().siblings(':not(script)').show(); 1210 } 1211 else{ 1212 jQuery('.widget-title-wrapper a.block-control').removeClass('active').show(); 1213 jQuery('.widget-title-wrapper a.block-control').parent().siblings(':not(script)').hide(); 1214 jQuery('.wpb_widgetised_column .widget-title-wrapper, .footer-container .widget-title-wrapper, .filter-widget-area > section .widget-title-wrapper').siblings(':not(script)').show(); 1215 } 1216} 1217
1218/*** Ajax search ***/ 1219function ts_ajax_search(){ 1220 var search_string = ''; 1221 var search_previous_string = ''; 1222 var search_timeout; 1223 var search_delay = 500; 1224 var search_input; 1225 var search_cache_data = {}; 1226 jQuery('body').append('<div id="ts-search-result-container" class="ts-search-result-container"></div>'); 1227 var search_result_container = jQuery('#ts-search-result-container'); 1228 var search_result_container_sidebar = jQuery('#ts-search-sidebar .ts-search-result-container'); 1229 var is_sidebar = false; 1230 1231 jQuery('.ts-header .search-content input[name="s"], #ts-search-sidebar input[name="s"]').on('keyup', function(e){ 1232 is_sidebar = jQuery(this).parents('#ts-search-sidebar').length > 0; 1233 search_input = jQuery(this); 1234 search_result_container.hide(); 1235 1236 search_string = jQuery(this).val().trim(); 1237 if( search_string.length < 2 ){ 1238 search_input.parents('.search-content').removeClass('loading'); 1239 return; 1240 } 1241 1242 if( search_cache_data[search_string] ){ 1243 if( !is_sidebar ){ 1244 search_result_container.html(search_cache_data[search_string]); 1245 search_result_container.show(); 1246 } 1247 else{ 1248 search_result_container_sidebar.html(search_cache_data[search_string]); 1249 } 1250 search_previous_string = ''; 1251 search_input.parents('.search-content').removeClass('loading'); 1252 1253 if( !is_sidebar ){ 1254 search_result_container.find('.view-all-wrapper a').on('click', function(e){ 1255 e.preventDefault(); 1256 search_input.parents('form').submit(); 1257 }); 1258 } 1259 else{ 1260 search_result_container_sidebar.find('.view-all-wrapper a').on('click', function(e){ 1261 e.preventDefault(); 1262 search_input.parents('form').submit(); 1263 }); 1264 } 1265 1266 return; 1267 } 1268 1269 clearTimeout(search_timeout); 1270 search_timeout = setTimeout(function(){ 1271 if( search_string == search_previous_string || search_string.length < 2 ){ 1272 return; 1273 } 1274 1275 search_previous_string = search_string; 1276 1277 search_input.parents('.search-content').addClass('loading'); 1278 1279 /* check category */ 1280 var category = ''; 1281 var select_category = search_input.parents('.search-content').siblings('.select-category'); 1282 if( select_category.length > 0 ){ 1283 category = select_category.find(':selected').val(); 1284 } 1285 1286 jQuery.ajax({ 1287 type : 'POST' 1288 ,url : upstore_params.ajax_url 1289 ,data : {action : 'upstore_ajax_search', search_string: search_string, category: category} 1290 ,error : function(xhr,err){ 1291 search_input.parents('.search-content').removeClass('loading'); 1292 } 1293 ,success : function(response){ 1294 if( response != '' ){ 1295 response = JSON.parse(response); 1296 if( response.search_string == search_string ){ 1297 search_cache_data[search_string] = response.html; 1298 if( !is_sidebar ){ 1299 search_result_container.html(response.html); 1300 var top = search_input.offset().top + search_input.outerHeight(true);
1301 var left = Math.ceil(search_input.offset().left); 1302 var width = search_input.outerWidth(true); 1303 var border_width = parseInt(search_input.parent('.search-content').css('border-left-width')); 1304 left -= border_width; 1305 width += border_width; 1306 if( width < 300 ){ 1307 width = 300; 1308 } 1309 1310 window_width = jQuery(window).width(); /* Overflow window */ 1311 if( (left + width) > window_width ){ 1312 left -= (width - search_input.outerWidth(true)); 1313 } 1314 1315 search_result_container.css({ 1316 'position': 'absolute' 1317 ,'top': top 1318 ,'left': left 1319 ,'width': width 1320 ,'display': 'block' 1321 }); 1322 } 1323 else{ 1324 search_result_container_sidebar.html(response.html); 1325 } 1326 1327 search_input.parents('.search-content').removeClass('loading'); 1328 1329 if( !is_sidebar ){ 1330 search_result_container.find('.view-all-wrapper a').on('click', function(e){ 1331 e.preventDefault(); 1332 search_input.parents('form').submit(); 1333 }); 1334 } 1335 else{ 1336 search_result_container_sidebar.find('.view-all-wrapper a').on('click', function(e){ 1337 e.preventDefault(); 1338 search_input.parents('form').submit(); 1339 }); 1340 } 1341 } 1342 } 1343 else{ 1344 search_input.parents('.search-content').removeClass('loading'); 1345 } 1346 } 1347 }); 1348 }, search_delay); 1349 }); 1350 1351 search_result_container.on('mouseleave', function(){ 1352 search_result_container.hide(); 1353 }); 1354 1355 jQuery('body').on('click', function(){ 1356 search_result_container.hide(); 1357 }); 1358 1359 jQuery('.ts-search-by-category select.select-category').on('change', function(){ 1360 search_previous_string = ''; 1361 search_cache_data = {}; 1362 jQuery(this).parents('.ts-search-by-category').find('.search-content input[name="s"]').trigger('keyup'); 1363 }); 1364} 1365 1366/*** Single post - Related posts - Gallery slider ***/ 1367function ts_single_related_post_gallery_slider(){ 1368 if( jQuery('.single-post figure.gallery, .list-posts .post-item .gallery figure, .ts-blogs-widget .thumbnail.gallery figure').length > 0 ){ 1369 var _this = jQuery('.single-post figure.gallery, .list-posts .post-item .gallery figure, .ts-blogs-widget .thumbnail.gallery figure'); 1370 var slider_data = { 1371 items: 1 1372 ,loop: true 1373 ,nav: false 1374 ,animateIn: 'fadeIn' 1375 ,animateOut: 'fadeOut' 1376 ,navText: [,] 1377 ,navSpeed: 1000 1378 ,rtl: jQuery('body').hasClass('rtl') 1379 ,margin: 10 1380 ,navRewind: false 1381 ,autoplay: true 1382 ,autoplayTimeout: 4000 1383 ,autoplayHoverPause: true 1384 ,autoplaySpeed: false 1385 ,autoHeight: true 1386 ,mouseDrag: false 1387 ,responsive:{0:{items:1}} 1388 ,onInitialized: function(){ 1389 _this.removeClass('loading'); 1390 _this.parent('.gallery').addClass('loaded').removeClass('loading'); 1391 } 1392 }; 1393 _this.each(function(){ 1394 var validate_slider = true; 1395 1396 if( jQuery(this).find('img').length <= 1 ){ 1397 validate_slider = false;
1398 } 1399 1400 if( validate_slider ){ 1401 jQuery(this).owlCarousel(slider_data); 1402 } 1403 else{ 1404 jQuery(this).removeClass('loading'); 1405 jQuery(this).parent('.gallery').removeClass('loading'); 1406 } 1407 }); 1408 } 1409 1410 if( jQuery('.single-post .related-posts.loading').length > 0 ){ 1411 var _this = jQuery('.single-post .related-posts.loading'); 1412 var slider_data = { 1413 loop: true 1414 ,nav: true 1415 ,navText: [,] 1416 ,dots: false 1417 ,navSpeed: 1000 1418 ,rtl: jQuery('body').hasClass('rtl') 1419 ,margin : 30 1420 ,navRewind: false 1421 ,responsiveBaseElement: _this 1422 ,responsiveRefreshRate: 400 1423 ,responsive:{0:{items:1},640:{items:2},1150:{items:3},1400:{items:4}} 1424 ,onInitialized: function(){ 1425 _this.addClass('loaded').removeClass('loading'); 1426 } 1427 }; 1428 _this.find('.content-wrapper .blogs').owlCarousel(slider_data); 1429 } 1430 1431} 1432 1433/*** Single Portfolio Slider ***/ 1434function ts_generate_single_portfolio_slider(){ 1435 if( jQuery('.single-portfolio.slider .thumbnails figure img').length > 1 ){ 1436 var wrapper = jQuery('.single-portfolio.slider'); 1437 var element = jQuery('.single-portfolio.slider .thumbnails figure'); 1438 var center = (wrapper.hasClass('center') || wrapper.hasClass('center-fullwidth')) && wrapper.hasClass('top-thumbnail'); 1439 var items = center?2:1; 1440 element.owlCarousel({ 1441 items: items 1442 ,center: center 1443 ,loop: true 1444 ,nav: true 1445 ,navText: [,] 1446 ,dots: false 1447 ,navSpeed: 1000 1448 ,rtl: jQuery('body').hasClass('rtl') 1449 ,navRewind: false 1450 ,autoplay: true 1451 ,autoplayHoverPause: true 1452 ,onInitialized: function(){ 1453 wrapper.find('.thumbnails').addClass('loaded').removeClass('loading'); 1454 } 1455 }); 1456 } 1457 else{ 1458 jQuery('.single-portfolio.slider .thumbnails').removeClass('loading'); 1459 } 1460} 1461 1462/*** Scrolling Fixed ***/ 1463function ts_scrolling_fixed(scrolling_element, fixed_element){ 1464 if( scrolling_element.length == 0 || fixed_element.length == 0 || jQuery(window).width() < 768 1465 || fixed_element.height() >= scrolling_element.height() ){ 1466 return; 1467 } 1468 1469 var fixed_left = fixed_element.offset().left; 1470 var fixed_width = fixed_element.outerWidth(); 1471 var admin_bar_height = jQuery('#wpadminbar').length > 0?jQuery('#wpadminbar').outerHeight():0; 1472 var window_height = jQuery(window).height(); 1473 1474 jQuery(window).on('scroll', function(){ 1475 var window_scroll_top = jQuery(this).scrollTop(); 1476 var sticky_height = 0; 1477 if( jQuery('.is-sticky .header-sticky').length > 0 ){ 1478 sticky_height = jQuery('.is-sticky .header-sticky').outerHeight(); 1479 } 1480 1481 var fixed_height = fixed_element.height(); 1482 var scrolling_height = scrolling_element.height(); 1483 var scrolling_top = scrolling_element.offset().top; 1484 var start_scroll = fixed_height > window_height?fixed_height - window_height:0; 1485 1486 if( window_scroll_top > scrolling_top + start_scroll ){ 1487 var top = sticky_height + admin_bar_height + 20; 1488 if( start_scroll ){ 1489 top = -start_scroll; 1490 } 1491 if( window_scroll_top + top + fixed_height > scrolling_top + scrolling_height ){ 1492 top = scrolling_height - fixed_height + scrolling_top - window_scroll_top; 1493 } 1494 fixed_element.css({'position': 'fixed', 'left': fixed_left, 'top': top, 'width': fixed_width}); 1495 } 1496 else{ 1497 fixed_element.attr('style', ''); 1498 } 1499 }); 1500}
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.