/********************************/ // BigStoreWooLib Custom Function /********************************/ (function ($) { var BigStoreWooLib = { init: function (){ this.bindEvents(); }, bindEvents: function (){ var $this = this; $this.listGridView(); $this.OffCanvas(); $this.cartDropdown(); $this.AddtoCartQuanty(); $this.AutoCompleteSearch(); $this.CategoryTabFilter(); $this.ProductSlide(); $this.ProductListSlide(); $this.CategorySlider(); $this.ProductImageTabFilter(); $this.cartopen(); $this.woccomerce_tab(); $this.product_descr_excerpt(); }, woccomerce_tab: function (){ $( document ).ready( function() { if($( '.description_tab' ).hasClass('active')){ $('.woocommerce-Tabs-panel.woocommerce-Tabs-panel--description').css('display','block'); } }); }, listGridView: function (){ var wrapper = $('.thunk-list-grid-switcher'); var class_name = ''; wrapper.find('a').on('click', function (e){ e.preventDefault(); var type = $(this).attr('data-type'); switch (type){ case "list": class_name = "thunk-list-view"; break; case "grid": class_name = "thunk-grid-view"; break; default: class_name = "thunk-grid-view"; break; } if (class_name != ''){ $(this).closest('#shop-product-wrap').attr('class', '').addClass(class_name); $(this).closest('.thunk-list-grid-switcher').find('a').removeClass('selected'); $(this).addClass('selected'); } }); }, OffCanvas: function () { var off_canvas_wrapper = $( '.big-store-off-canvas-sidebar-wrapper'); var opn_shop_offcanvas_filter_close = function(){ $('html').css({ 'overflow': '', 'margin-right': '' }); $('html').removeClass( 'big-store-enabled-overlay' ); }; var trigger_class = 'off-canvas-button'; if( 'undefined' != typeof BigStore_Off_Canvas && '' != BigStore_Off_Canvas.off_canvas_trigger_class ){ trigger_class = BigStore_Off_Canvas.off_canvas_trigger_class; } $(document).on( 'click', '.' + trigger_class, function(e){ e.preventDefault(); var innerWidth = $('html').innerWidth(); $('html').css( 'overflow', 'hidden' ); var hiddenInnerWidth = $('html').innerWidth(); $('html').css( 'margin-right', hiddenInnerWidth - innerWidth ); $('html').addClass( 'big-store-enabled-overlay' ); }); off_canvas_wrapper.on('click', function(e){ if ( e.target === this ) { opn_shop_offcanvas_filter_close(); } }); off_canvas_wrapper.find('.menu-close').on('click', function(e) { opn_shop_offcanvas_filter_close(); }); }, cartDropdown: function (){ /* woo, wc_add_to_cart_params */ if ( typeof wc_add_to_cart_params === 'undefined' ){ return false; } $( document ).on( 'click', '.ajax_add_to_cart', function(e){ // Remove button selector e.preventDefault(); var data1 = { 'action': 'big_store_product_count_update' }; $.post( woocommerce_params.ajax_url, // The AJAX URL data1, // Send our PHP function function(response_data){ $('a.cart-content').html(response_data); $( ".return.wc-backward" ).remove(); $('body').toggleClass('cart-pan-active'); $('.cart-overlay').toggleClass('open'); } ); }); // Ajax remove cart item $( document ).on( 'click', 'a.remove', function(e){ // Remove button selector e.preventDefault(); // AJAX add to cart request var $thisbutton = $( this ); if ( $thisbutton.is( '.remove' ) ){ //Check if the button has a product ID if ( ! $thisbutton.attr( 'data-product_id' ) ){ return true; } } $product_id = $thisbutton.attr( 'data-product_id' ); var data = {'product_id':$product_id, 'action': 'big_store_product_remove' }; $.post( woocommerce_params.ajax_url, // The AJAX URL data, // Send our PHP function function(response){ $('.open-quickcart-dropdown').html(response); var data = { 'action': 'big_store_product_count_update' }; $.post( woocommerce_params.ajax_url, // The AJAX URL data, // Send our PHP function function(response_data){ $('a.cart-content').html(response_data); } ); } ); return false; }); }, AddtoCartQuanty: function (){ $('form.cart').on( 'click', 'button.plus, button.minus', function(){ // Get current quantity values var qty = $( this ).siblings('.quantity').find( '.qty' ); var val = parseFloat(qty.val()) ? parseFloat(qty.val()) : '0'; var max = parseFloat(qty.attr( 'max' )); var min = parseFloat(qty.attr( 'min' )); var step = parseFloat(qty.attr( 'step' )); // Change the value if plus or minus if ( $(this).is( '.plus' ) ) { if ( max && ( max <= val ) ) { qty.val( max ); } else { qty.val( val + step ); } } else { if ( min && ( min >= val ) ) { qty.val( min ); } else if ( val > 1 ) { qty.val( val - step ); } } }); }, AutoCompleteSearch:function(){ var cat =''; $('.search-autocomplete').autocomplete({ classes: { "ui-autocomplete" : "th-wp-auto-search", }, minLength:1, source: function( request, response, term){ var matcher = $.ui.autocomplete.escapeRegex( request.term ); if($("#product_cat").val()){ var cat = $("#product_cat").val(); }else{ var cat = '0'; } $(".search-autocomplete").removeClass("ui-autocomplete-loading"); $(".woocommerce-product-search #search-button").addClass("ui-autocomplete-loading"); $.ajax({ type: 'POST', dataType: 'json', url: bigstore.ajaxUrl, data: { action :'big_store_search_site', 'match':matcher, 'cat':cat, }, success: function(res){ if(res.data.length!== 0){ var oldFn = $.ui.autocomplete.prototype._renderItem; $.ui.autocomplete.prototype._renderItem = function( ul, item){ var re = new RegExp(this.term, "ig") ; var t = item.label.replace(re,"" + this.term + ""); return $( "
  • " ) .data( "item.autocomplete", item ) .append( "
    " + item.imglink + "
    " + t + "" + item.price + "
    " ) .appendTo( ul ); } }else{ $.ui.autocomplete.prototype._renderItem = function( ul, item){ return $( "
  • " ) .data( "item.autocomplete", item ) .append( "
    No Result Found
    " ) .appendTo( ul ); } }; response(res.data.slice(0, 5)); if(res.data.length > 5){ var href = window.location.href; var index = href.indexOf('/wp-admin'); var homeUrl = href.substring(0, index); var serachurl = homeUrl + '?s='+ matcher +'&product_cat='+cat+'&post_type=product'; $(".th-wp-auto-search").append('View all results'); } $(".search-autocomplete").removeClass("ui-autocomplete-loading"); $(".woocommerce-product-search #search-button").removeClass("ui-autocomplete-loading"); }, }); }, response: function(event, ui){ if (ui.content.length == 0){ var noResult = { value:"",label:"",imglink:"",price:"" }; ui.content.push(noResult); } }, }).bind('focus change', function(){ $(this).autocomplete("search"); } ); }, cartopen: function(){ $(document).on('click','a.cart-contents',function(e){ e.preventDefault(); $('body').toggleClass('cart-pan-active'); $('.cart-overlay').toggleClass('open'); }); $('.cart-close-btn').click(function (e){ $('body').removeClass('cart-pan-active'); $('.cart-overlay').removeClass('open'); }); $('body').click(function(evt){ if(evt.target.class == ".open-cart") return; if($(evt.target).closest('.open-cart').length) return; $('body').removeClass('cart-pan-active'); $('.cart-overlay').removeClass('open'); }); }, /***********************/ // Front Page Function /***********************/ CategoryTabFilter:function(){ //product slider if(bigstore.big_store_single_row_slide_cat == true){ var sliderow = false; }else{ var sliderow = true; } // slide autoplay if(bigstore.big_store_cat_slider_optn == true){ var cat_atply = true; }else{ var cat_atply = false; } if(big_store.big_store_rtl==true){ var bgstr_rtl = true; }else{ var bgstr_rtl = false; } var owl = $('.thunk-product-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:5, nav:true, owl2row:sliderow, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply, dots: false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 900:{ items:4, }, 1025:{ items:5, } } }); $('.thunk-product-tab-section #thunk-cat-tab li a:first').addClass('active'); $(document).on('click', '.thunk-product-tab-section #thunk-cat-tab li a', function(e){ $('.thunk-product-tab-section #thunk-cat-tab .tab-content').append('
    '); $(".thunk-product-tab-section .thunk-loadContainer").css("display", "block"); $('.thunk-product-tab-section #thunk-cat-tab li a.active').removeClass("active"); $(this).addClass('active'); var data_term_id = $( this ).attr( 'data-filter' ); $.ajax({ type: 'POST', url: bigstore.ajaxUrl, data: { action :'big_store_cat_filter_ajax', 'data_cat_slug':data_term_id, }, dataType: 'html' }).done( function( response ){ if ( response ){ $('.thunk-product-tab-section #thunk-cat-tab .tab-content').html('
    '); $(".thunk-slide.thunk-product-cat-slide.owl-carousel").append(response); var owl = $('.thunk-product-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:5, nav: true, owl2row:sliderow, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply, dots: false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 900:{ items:4, }, 1025:{ items:5, } } }); $(".thunk-product-tab-section .thunk-loadContainer").css("display", "none"); } } ); e.preventDefault(); }); }, ProductSlide:function(){ if(bigstore.big_store_single_row_prdct_slide == true){ var sliderow_p = false; }else{ var sliderow_p = true; } // slide autoplay if(bigstore.big_store_product_slider_optn == true){ var cat_atply_p = true; }else{ var cat_atply_p = false; } if(big_store.big_store_rtl==true){ var bgstr_rtl = true; }else{ var bgstr_rtl = false; } var owl = $('.thunk-product-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:5, nav:true, owl2row:sliderow_p, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply_p, dots: false, smartSpeed: 1800, autoHeight: false, margin:20, autoplay:cat_atply_p, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 900:{ items:4, }, 1025:{ items:5, } } }); }, ProductListSlide:function(){ if(bigstore.big_store_single_row_prdct_list == true){ var sliderow_l = false; }else{ var sliderow_l = true; } // slide autoplay if(bigstore.big_store_product_list_slide_optn == true){ var cat_atply_l = true; }else{ var cat_atply_l = false; } if(big_store.big_store_rtl==true){ var bgstr_rtl = true; }else{ var bgstr_rtl = false; } var owl = $('.thunk-product-list'); owl.owlCarousel({ rtl:bgstr_rtl, items:3, nav: true, owl2row:sliderow_l, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply_l, dots: false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply_l, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 900:{ items:4, }, 1025:{ items:4, } } }); }, CategorySlider:function(){ // slide autoplay if(bigstore.big_store_category_slider_optn == true){ var cat_atply_c = true; }else{ var cat_atply_c = false; } if(big_store.big_store_rtl==true){ var bgstr_rtl = true; }else{ var bgstr_rtl = false; } var column_no = parseInt(bigstore.big_store_cat_item_no); var owl = $('.thunk-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:10, nav: true, navText: ["", ""], loop:cat_atply_c, dots: false, smartSpeed: 1800, autoHeight: false, margin:15, autoplay:cat_atply_c, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:3, margin:7.5, }, 768:{ items:5, }, 900:{ items:7, }, 1025:{ items:column_no, } } }); }, ProductImageTabFilter:function(){ //product slider if(bigstore.big_store_product_img_sec_single_row_slide == true){ var sliderow = false; }else{ var sliderow = true; } // slide autoplay if(bigstore.big_store_product_img_sec_slider_optn == true){ var cat_atply = true; }else{ var cat_atply = false; } if(big_store.big_store_rtl==true){ var bgstr_rtl = true; }else{ var bgstr_rtl = false; } if (bigstore.big_store_product_img_sec_adimg == ''){ var owl = $('.thunk-product-image-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:5, nav:true, owl2row:sliderow, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply, dots:false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 990:{ items:4, }, 1025:{ items:5, } } }); }else{ var owl = $('.thunk-product-image-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:4, nav:true, owl2row:sliderow, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply, dots:false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 990:{ items:4, }, 1025:{ items:4, } } }); } $('.thunk-product-image-tab-section #thunk-cat-tab li a:first').addClass('active'); $(document).on('click', '.thunk-product-image-tab-section #thunk-cat-tab li a', function(e){ $('.thunk-product-image-tab-section #thunk-cat-tab .tab-content').append('
    '); $(".thunk-product-image-tab-section .thunk-loadContainer").css("display", "block"); $('.thunk-product-image-tab-section #thunk-cat-tab li a.active').removeClass("active"); $(this).addClass('active'); var data_term_id = $( this ).attr( 'data-filter' ); $.ajax({ type: 'POST', url: bigstore.ajaxUrl, data: { action :'big_store_cat_filter_ajax', 'data_cat_slug':data_term_id, }, dataType: 'html' }).done( function( response ){ if ( response ){ $('.thunk-product-image-tab-section #thunk-cat-tab .tab-content').html('
    '); $(".thunk-slide.thunk-product-image-cat-slide.owl-carousel").append(response); if (bigstore.big_store_product_img_sec_adimg == '') { var owl = $('.thunk-product-image-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:5, nav: true, owl2row:sliderow, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply, dots: false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 990:{ items:4, }, 1025:{ items:5, } } }); }else{ var owl = $('.thunk-product-image-cat-slide'); owl.owlCarousel({ rtl:bgstr_rtl, items:4, nav: true, owl2row:sliderow, owl2rowDirection: 'ltr', owl2rowTarget: 'thunk-woo-product-list', navText: ["", ""], loop:cat_atply, dots: false, smartSpeed: 1800, autoHeight: false, margin: 15, autoplay:cat_atply, autoplayHoverPause: true, // Stops autoplay responsive:{ 0:{ items:2, margin:7.5, }, 768:{ items:3, }, 990:{ items:4, }, 1025:{ items:4, } } }); } $(".thunk-product-image-tab-section .thunk-loadContainer").css("display", "none"); } } ); e.preventDefault(); }); }, product_descr_excerpt:function(){ $('.os-product-excerpt *').each(function(){ var truncated = $(this).text().substr(0,160); //Updating with ellipsis if the string was truncated $(this).text(truncated+(truncated.length<160?'':' ..')); $(".os-product-excerpt *").not(":first-child").hide(); }); }, } BigStoreWooLib.init(); })(jQuery);