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