/* annasta Woocommerce Product Filters */ var a_w_f = typeof( a_w_f ) === 'undefined' ? {} : a_w_f; var awf_pretty_scrollbars = []; jQuery( document ).ready( function( $ ){ 'use strict'; a_w_f.update_query = function ( $filter, $container, build_badges ) { var taxonomy = $filter.attr( 'data-taxonomy' ); var values = []; var i = -1; if( taxonomy in awf_data.query ) { if( $filter.is( ':checkbox' ) ) { values = awf_data.query[taxonomy].split( ',' ); i = values.indexOf( $filter.val() ); } } if( $container.hasClass( 'awf-active' ) ) { if( $filter.hasClass( 'awf-default' ) ) { values = []; } else { if( i === -1 ) { values.push( $filter.val() ); } } } else { if( values.length > 0 ) { if( i > -1 ) { values.splice( i, 1 ); } } } if( values.length > 0 ) { awf_data.query[taxonomy] = values.join( ',' ); if( $container.hasClass( 'awf-range-filter-container' ) ) { awf_data.query[$filter.attr( 'data-max-name' )] = $filter.attr( 'data-next-value' ); } if( 'product_cat' === taxonomy ) { if( ! ( 'orderby' in awf_data.query ) && ! ( 's' in awf_data.query ) ) { delete awf_data.query['post_type']; } } else if( 's' === taxonomy && ( 'shop_on_frontpage' in awf_data ) ) { awf_data.query['post_type'] = 'product'; } } else { delete awf_data.query[taxonomy]; if( $container.hasClass( 'awf-range-filter-container' ) ) { delete awf_data.query[$filter.attr( 'data-max-name' )]; } if( 's' === taxonomy && ! ( 'orderby' in awf_data.query ) ) { delete awf_data.query['post_type']; } } if( 'sc_page' in awf_data ) { delete awf_data.query['product-page']; } if( build_badges ) { a_w_f.build_active_badges(); } }; a_w_f.build_active_badges = function () { $( '.awf-active-badge' ).remove(); $.each( awf_data.query, function( key, values ) { var $containers = $( '.awf-filters-container.awf-filters-' + key ); if( 0 === $containers.length ) { return true; } var $filter_containers = $containers.find( '.awf-filter-container.awf-active' ); if( 0 === $filter_containers.length ) { return true; } if( $containers.hasClass( 'awf-style-range-slider' ) ) { if( $containers.hasClass( 'awf-taxonomy-range-container' ) ) { var $filter = $( $filter_containers[0] ).find( '.awf-filter' ).first(); if( 0 === $( '.awf-active-badge-' + $filter.attr( 'data-taxonomy' ) ).length ) { awf_create_active_badge( $( $filter_containers[0] ).find( '.awf-filter' ).first(), $( $filter_containers[0] ) ); } } else { $filter_containers = $filter_containers.filter( '.awf-range-slider-container' ); var $filter = $( $filter_containers[0] ).find( '.awf-filter' ).first(); if( 0 === $( '.awf-active-badge-' + $filter.attr( 'data-module' ) ).length ) { awf_create_active_badge( $( $filter_containers[0] ).find( '.awf-filter[name=' + key + ']' ).first(), $( $filter_containers[0] ) ); } } } else if( $( $filter_containers[0] ).hasClass( 'awf-range-filter-container' ) ) { var $filter = $( $filter_containers[0] ).find( '.awf-filter' ).first(); if( 0 === $( '.awf-active-badge-' + $filter.attr( 'data-module' ) ).length ) { awf_create_active_badge( $filter, $( $filter_containers[0] ) ); } } else { if( $filter_containers.hasClass( 'awf-product-search-container' ) ) { awf_create_active_badge( $( $filter_containers[0] ).find( '.awf-filter' ).first(), $( $filter_containers[0] ) ); } else { var slugs = values.split( ',' ); $.each( slugs, function( i, slug ) { var $slug_container = $filter_containers.filter( '.awf-' + key + '-' + slug + '-container' ).first(); if( 0 < $slug_container.length ) { awf_create_active_badge( $slug_container.find( '.awf-filter' ).first(), $slug_container ); } }); } } }); if( 0 < $( '.awf-reset-btn-container' ).first().length ) { if( 0 < $( '.awf-reset-btn-container' ).first().siblings( '.awf-active-badges-container' ).find( '.awf-active-badge' ).length ) { $( '.awf-reset-btn-container' ).show(); } else { $( '.awf-reset-btn-container' ).hide(); } } }; a_w_f.apply_filter = function ( $filter, $preset_wrapper ) { awf_update_url(); if( $preset_wrapper.hasClass( 'awf-url' ) ) { if( true === $filter ) { window.location.reload(); } } else if( $preset_wrapper.hasClass( 'awf-ajax' ) ) { if( '1' === awf_data.redirect_ajax ) { window.location.reload(); } awf_ajax_filter( $filter ); } }; a_w_f.reset_all_filters = function ( excluded_taxonomies ) { excluded_taxonomies.push( 'ppp' ); $.each( awf_data.query, function( taxonomy, value ) { if( $.inArray( taxonomy, excluded_taxonomies) !== -1 ) { return; } var $wrappers = $( '.awf-filters-' + taxonomy ); if( 0 < $wrappers.length ) { var values; if( 's' === taxonomy ) { values = [value]; } else { values = value.split( ',' ); } $.each( values, function( i, v ) { if( $wrappers.hasClass( 'awf-style-range-slider' ) ) { var $wrapper = $wrappers.filter( '.awf-style-range-slider' ).first(); if( taxonomy in awf_data.query ) { awf_reset_filter_value( $wrapper.find( '.awf-filter' ).first(), $wrapper.find( '.awf-filter-container' ).first() ); } } else if( $( $wrappers[0] ).hasClass( 'awf-filters-s' ) ) { awf_reset_filter_value( $( $wrappers[0] ).find( '.awf-filter' ).first(), $( $wrappers[0] ).find( '.awf-filter-container' ).first() ); } else { var name = '.awf-' + taxonomy + '-' + v.replace(/[.,]/g,'-') + '-container'; var $container = $( $wrappers ).find( name ).first(); var $filter = $container.find( '.awf-filter' ).first(); if( 0 === $filter.length ) { return true; } if( $filter[0].hasAttribute( 'data-max-name' ) && ( $filter.attr( 'data-max-name' ) in awf_data.query ) ) { var $range_filter = $wrappers.find( name + " .awf-filter[data-next-value='" + awf_data.query[$filter.attr( 'data-max-name' )] + "']" ).first(); if( 0 !== $range_filter.length ) { awf_reset_filter_value( $range_filter, $range_filter.closest( name ) ); } } else { awf_reset_filter_value( $filter, $container ); } } }); } }); }; a_w_f.build_url = function( query ) { var url; if( 'cat_url' in awf_data && 'product_cat' in query ) { url = awf_data.cat_url.replace( '/awf-insert-product-cats/', '/' + query['product_cat'] + '/' ) delete query['product_cat']; if( ! $.isEmptyObject( query ) ) { url += '?' + decodeURIComponent( $.param( query ) ); } } else { url = awf_data.shop_url; if( ! $.isEmptyObject( query ) ) { url += '?' + decodeURIComponent( $.param( query ) ); } } return url; }; window.onpopstate = function( event ) { if( 'awf_call' in event.state ) { window.location.reload(); } }; if( 'undefined' !== typeof $.blockUI ) { $.blockUI.defaults.overlayCSS = { backgroundColor: '#fff', opacity: 0.5 }; $.blockUI.defaults.css = { border: 'none' }; } if( 'undefined' !== typeof PerfectScrollbar ) { $( '.awf-pretty-scrollbars' ).each( function( i, container ) { awf_pretty_scrollbars.push( new PerfectScrollbar( container, { suppressScrollX: true } ) ); }); } $( '.awf-filter' ).each( function( i, filter ) { awf_set_filter_events( $( filter ) ); }); $( '.awf-url label' ).on( 'click', function() { $( this ).siblings( 'input' ).prop( 'checked', true ); }); $( '.awf-apply-filter-btn' ).on( 'click', function() { a_w_f.apply_filter( true, $( this ).closest( '.awf-preset-wrapper' ) ); }); $( '.awf-collapsible-children .awf-filter-container' ).on( 'click', function() { $( this ).toggleClass( 'awf-collapsed-on' ); $( this ).next( '.awf-children-container' ).toggleClass( 'awf-collapsed' ); var $a_filter = $( this ).find( '.awf-filter' ).first(); if( $a_filter.length > 0 ) { $.each( awf_pretty_scrollbars, function( i, ps ) { if( $( ps.element ).hasClass( 'awf-filters-' + $a_filter.attr( 'data-taxonomy' ) ) ) { ps.update(); } }); } }); $( '.awf-filters-search' ).on( 'change', function() { if ( 0 === $( this ).val().length ) { $( this ).closest( '.awf-filters-container' ).find( '.awf-filter-container' ).not( '.awf-hidden' ).show(); } }); $( '.awf-filters-search' ).on( 'keyup', function() { var filter_containers = $( this ).closest( '.awf-filters-container' ).find( '.awf-filter-container' ).not( '.awf-hidden' ), search = $( this ).val().toLowerCase(); if ( '' === search ) { $( filter_containers ).show(); } else { for ( var i = filter_containers.length; i--; ) { var row = $( filter_containers[i] ); if( row.find( ' > label' ).text().toLowerCase().indexOf( search ) > -1 || row.find( ' > a > label' ).text().toLowerCase().indexOf( search ) > -1 ) { row.show(); } else { row.hide(); } } } }); $( '.awf-range-slider-container' ).each( function( i, el ) { if( i === 0 ) { $( el ).addClass( 'awf-active' ); } awf_build_range_slider( el ); }); awf_register_reset_btns(); a_w_f.build_active_badges(); awf_update_orderby(); function awf_set_filter_events( $filter ) { var $preset_wrapper = $filter.closest( '.awf-preset-wrapper' ); var $filter_container = $filter.closest( '.awf-filter-container' ); if( 'premium' in a_w_f ) { a_w_f.set_premium_filter_events( $filter_container, $filter ); } if( $preset_wrapper.hasClass( 'awf-url' ) && ( $filter.is(':checkbox') || $filter.is(':radio') ) ) { $filter.on( 'click', function() { window.location.href = $( this ).closest( 'a' ).attr( 'href' ); }); } if( $filter_container.hasClass( 'awf-active' ) && $filter_container.closest( 'ul.awf-children-container' ).first().hasClass( 'awf-collapsed' ) ) { $filter_container.parents( 'ul.awf-children-container' ).removeClass( 'awf-collapsed' ).siblings( 'li.awf-parent-container' ).removeClass( 'awf-collapsed-on' ); } if( $filter_container.hasClass( 'awf-product-search-container' ) ) { $filter.on( 'change', function() { awf_product_search_onchange( $filter ); a_w_f.apply_filter( true, $preset_wrapper ); }); $filter.on( 'keydown', function( event ) { if( event.keyCode === 13 ) { awf_product_search_onchange( $filter ); a_w_f.apply_filter( true, $preset_wrapper ); $filter.trigger( 'blur' ); return false; } }); } else { $filter.siblings('label').on( 'touchstart', function() { $filter_container.addClass( 'awf-hover-off' ); }); $filter.on( 'click', function() { awf_filter_onclick( $filter ); }); if( ! $preset_wrapper.hasClass( 'awf-button' ) ) { $filter.on( 'click', function() { a_w_f.apply_filter( $filter, $preset_wrapper ); }); } } } function awf_register_reset_btns() { $( '.awf-preset-wrapper' ).each( function( i, preset_wrapper ) { $( preset_wrapper ).find( '.awf-reset-btn' ).on( 'click', function() { a_w_f.reset_all_filters( [] ); a_w_f.apply_filter( true, $( preset_wrapper ) ); }); }); } function awf_filter_onclick( filter ) { var $filter = $( filter ); var $container = $filter.closest( '.awf-filter-container' ); var taxonomy = $filter.attr( 'data-taxonomy' ); if( $container.hasClass( 'awf-active' ) ) { if( $filter.is( ':radio' ) ) { if( $container.hasClass( 'awf-range-filter-container' ) ) { var $slider_container = $( '.awf-style-range-slider.awf-filters-' + taxonomy + ' .awf-filter-container' ).first(); if( $slider_container.length > 0 ) { awf_reset_filter_value( $filter, $slider_container ); return; } } $( '.awf-single .awf-filters-' + taxonomy + ' .awf-filter-container.awf-active, .awf-range .awf-filters-' + taxonomy + ' .awf-range-filter-container.awf-active' ).removeClass( 'awf-active' ).find( 'input' ).prop( 'checked', false ); $( '.awf-multi .awf-' + taxonomy + '-' + $filter.val().replace(/[.,]/g,'-') + '-container' ).removeClass( 'awf-active' ).find( 'input' ).prop( 'checked', false ); var $default = $( '.awf-filters-' + taxonomy + ' .awf-default' ); if( 0 < $default.length ) { $filter = $default; $container = $filter.closest( '.awf-filter-container' ); $default.prop( 'checked', true ).closest( '.awf-filter-container' ).addClass( 'awf-active' ); } } else { $( '.awf-' + taxonomy + '-' + $filter.val() + '-container' ).removeClass( 'awf-active' ).find( 'input' ).prop( 'checked', false ); } } else { if( $filter.is( ':radio' ) ) { if( $container.hasClass( 'awf-range-filter-container' ) ) { var $range_slider = $( '.awf-style-range-slider.awf-filters-' + taxonomy + ' .awf-filter-container' ).first(); if( $range_slider.length > 0 ) { var min = parseFloat( $filter.val() ); var max = parseFloat( $filter.attr( 'data-next-value' ) ); $range_slider[0].noUiSlider.set( [min, max] ); awf_range_slider_onchange( $range_slider[0], [min, max], $range_slider[0].noUiSlider.options.range.min[0], $range_slider[0].noUiSlider.options.range.max[0] ); return; } } $( '.awf-filters-' + taxonomy + ' .awf-filter-container.awf-active' ).removeClass( 'awf-active' ).find( 'input' ).prop( 'checked', false ); $( '.awf-' + taxonomy + '-' + $filter.val().replace( /[.,]/g, '-' ) + '-container' ).addClass( 'awf-active' ).find( 'input' ).prop( 'checked', true ); } else { $( '.awf-single .awf-filters-' + taxonomy + ' .awf-filter-container.awf-active' ).removeClass( 'awf-active' ); $( '.awf-' + taxonomy + '-' + $filter.val() + '-container' ).addClass( 'awf-active' ).find( 'input' ).prop( 'checked', true ); $( '.awf-multi .awf-' + taxonomy + '-' + $filter.val() + '-container' ).addClass( 'awf-active' ).find( 'input' ).each( function() { awf_uncheck_parents_and_children( this ); }); } } a_w_f.update_query( $filter, $container, true ); } function awf_uncheck_parents_and_children( checkbox ) { $( checkbox ).parents( 'ul' ).prev( 'li.awf-filter-container.awf-active' ).each( function( i, container ) {//$( checkbox ) $( container ).removeClass( 'awf-active' ); $( container ).find( '.awf-filter' ).each( function ( ii, filter ) { $( filter ).prop( 'checked', false ); a_w_f.update_query( $( filter ), $( container ), false ); }); }); $( checkbox ).parents( 'li.awf-filter-container' ).next( 'ul' ).find( '.awf-filter-container.awf-active' ).each( function( i, container ) { $( container ).removeClass( 'awf-active' ); $( container ).find( '.awf-filter' ).each( function ( ii, filter ) { $( filter ).prop( 'checked', false ); a_w_f.update_query( $( filter ), $( container ), false ); }); }); } function awf_product_search_onchange( $searchbox ) { $( '.awf-product-search-container .awf-filter' ).each( function( i, el ) { var $container = $( el ).closest( '.awf-filter-container' ); if( 0 === $( $searchbox ).val().length ) { $container.removeClass( 'awf-active' ); } else { $container.addClass( 'awf-active' ); } if( el === $searchbox[0] ) { a_w_f.update_query( $searchbox, $container, true ); } else { $( el ).val( $( $searchbox ).val() ); } }); } function awf_range_slider_onchange( range_container, values, min, max ) { values[0] = parseFloat( values[0] ); values[1] = parseFloat( values[1] ); var module_container = '.awf-filters-' + $( range_container ).find( '.awf-filter').first().attr( 'name' ); $( module_container + ' .awf-range-slider-container' ).each( function( i, filter_container ) { var $min_filter = $( filter_container ).find( '.awf-range-slider-min' ); var $max_filter = $( filter_container ).find( '.awf-range-slider-max' ); $min_filter.val( values[0] ); $max_filter.val( values[1] ); if( filter_container === range_container ) { if( values[0] === min ) { $min_filter.addClass( 'awf-default' ); } else { $min_filter.removeClass( 'awf-default' ); } if( values[1] === max ) { $max_filter.addClass( 'awf-default' ); } else { $max_filter.removeClass( 'awf-default' ); } $( filter_container ).addClass( 'awf-active' ); a_w_f.update_query( $min_filter, $( range_container ), false ); a_w_f.update_query( $max_filter, $( range_container ), true ); $( '.awf-filters-' + $min_filter.attr( 'data-taxonomy' ) + ' .awf-range-filter-container.awf-active' ).removeClass( 'awf-active' ).find( 'input.awf-filter' ).prop( 'checked', false ); $( '.awf-range-filter-container input[value="' + values[0] + '"][data-next-value="' + values[1] + '"]' ).prop( 'checked', true ).closest( '.awf-filter-container' ).addClass( 'awf-active' ); } else { filter_container.noUiSlider.set( [values[0], values[1]] ); $min_filter.removeClass( 'awf-default' ); $max_filter.removeClass( 'awf-default' ); $( filter_container ).removeClass( 'awf-active' ); } }); } function awf_create_active_badge( $filter, $container ) { if( $filter.hasClass( 'awf-default' ) ) { return; } if( $filter.hasClass( 'awf-no-active-badge' ) ) { return; } var label; var classes = ['awf-active-badge']; if( $filter.hasClass( 'awf-range-slider-value' ) ) { classes.push( 'awf-active-badge-' + $filter.attr( 'data-module' ) ); var values = $container[0].noUiSlider.get(); if( parseFloat( values[0] ) === parseFloat( $container.attr( 'data-min' ) ) && parseFloat( values[1] ) === parseFloat( $container.attr( 'data-max' ) ) ) { return; } label = $container.attr( 'data-label' ) + ' ' + $container.attr( 'data-prefix' ) + values[0] + $container.attr( 'data-postfix' ) + ' - ' + $container.attr( 'data-prefix' ) + values[1] + $container.attr( 'data-postfix' ); } else if( $filter.hasClass( 'awf-taxonomy-range-value' ) ) { if( 'premium' in a_w_f ) { label = a_w_f.create_taxonomy_range_badge( $container ); } } else if( $container.hasClass( 'awf-range-filter-container' ) ) { classes.push( 'awf-active-badge-' + $filter.attr( 'data-module' ) ); label = $filter.siblings( 'label' ).attr( 'title' ); } else if( $container.hasClass( 'awf-product-search-container' ) ) { label = $filter.siblings( 'label' ).text() + ' ' + $filter.val(); } else { label = $filter.siblings( 'label' ).attr( 'title' ); } var badge = $( '
', { class: classes.join( ' ' ) }) .append( $( '' ).on( 'click', function() { awf_reset_filter_value( $filter, $container ); a_w_f.apply_filter( true, $filter.closest( '.awf-preset-wrapper' ) ); }), '' + label + '' ); $( badge ).clone( true ).appendTo( $( '.awf-preset-wrapper > .awf-active-badges-container' ) ); $( badge ).appendTo( $( '.awf-filters-' + $filter.attr( 'data-taxonomy' ) ).siblings( '.awf-active-badges-container' ) ); } function awf_reset_filter_value( $filter, $container ) { if( $container.hasClass( 'awf-product-search-container' ) ) { $filter.val(''); awf_product_search_onchange( $filter ); } else if( $container.hasClass( 'awf-range-slider-container' ) ) { var range_slider = $container[0]; var min = parseFloat( range_slider.noUiSlider.options.range.min[0] ); var max = parseFloat( range_slider.noUiSlider.options.range.max[0] ); range_slider.noUiSlider.set( [min, max] ); awf_range_slider_onchange( range_slider, [min, max], min, max ); } else if( $filter.hasClass( 'awf-taxonomy-range-value' ) ) { if( 'premium' in a_w_f ) { a_w_f.reset_taxonomy_range( $container ); } } else { awf_filter_onclick( $filter ); } } function awf_update_url() { var url = a_w_f.build_url( $.extend( true, {}, awf_data.query ) ); window.history.pushState( {awf_call: true}, '', url ); } function awf_ajax_filter( $filter ) { var taxonomy = $filter instanceof jQuery ? $filter.attr( 'data-taxonomy' ) : ''; var ajax_data = { action: 'awf', awf_front: 1, awf_action: 'filter', awf_query: awf_data.query, }; if( 'sc_page' in awf_data ) { ajax_data.awf_sc_page = awf_data.sc_page; $( '.woocommerce.awf-sc' ).each( function( i, el ) { var sc_data = $.extend( true, {}, ajax_data ); sc_data.awf_sc = {}; $( el ).find( '.awf-sc-var' ).each( function( ii, input ) { sc_data.awf_sc[$( input ).attr( 'name' )] = $( input ).val(); } ); awf_update_products( sc_data, $( el ) ); }); awf_update_counts( taxonomy ); } else { awf_update_products( ajax_data, false ); awf_update_titles(); awf_update_counts( taxonomy ); } } function awf_update_products( ajax_data, $container ) { var $spinner_container = ( false === $container ) ? $( awf_data.products_wrapper ) : $container; $spinner_container.block({ message: '' }); $.ajax({ type: 'get', url: awf_data.ajax_url, dataType: 'html', data: ajax_data, success: function( response ) { if( response ) { if( false === $container ) { $( awf_data.products_wrapper ).html( response ); if( 'cat_url' in awf_data ) { $( 'form.woocommerce-ordering input[name="product_cat"]' ).remove(); } } else { $container.replaceWith( response ); } awf_update_orderby(); $( awf_data.products_wrapper + ' .woocommerce-ordering select.orderby' ).on( 'change', function() { $( this ).closest( 'form' ).submit(); }); $( [document.documentElement, document.body] ).animate( { scrollTop: $( awf_data.products_wrapper ).offset().top - 50 }, 500, 'swing' ); } }, error: function( response ) { console.log( response ); } }); } function awf_update_counts( excluded_taxonomy ) { var callers = []; $( '.awf-preset-wrapper' ).each( function( i, el ) { callers.push( $( el ).attr( 'id' ) ); }); $.ajax({ type: "get", url: awf_data.ajax_url, dataType: "json", data: { action: 'awf', awf_action: 'update_filters', awf_front: 1, awf_query: awf_data.query, awf_exclude_taxonomy: excluded_taxonomy, awf_callers: callers, }, success: function( response ) { if( response ) { $.each( response.counts, function( taxonomy, slugs ) { $.each( slugs, function( slug, count ) { var container = '.awf-' + taxonomy + '-' + slug + '-container'; $( container + ' .awf-filter-count' ).text(count); if( $( container ).hasClass( 'awf-empty' ) && count > 0 ) { $( container ).removeClass( 'awf-empty' ); if( $( container ).hasClass( 'awf-empty-disabled' ) ) { $( container + ' input' ).prop( 'disabled', false ); } else if( $( container ).hasClass( 'awf-empty-hidden' ) ) { $( container ).removeClass( 'awf-hidden' ); } } else if( ( ! $( container ).hasClass( 'awf-empty' ) ) && ( count === 0 ) ) { $( container ).addClass( 'awf-empty' ); if( $( container ).hasClass( 'awf-empty-disabled' ) ) { $( container + ' input' ).prop( 'disabled', true ); } else if( $( container ).hasClass( 'awf-empty-hidden' ) ) { $( container ).addClass( 'awf-hidden' ); } } }); }); awf_update_hrefs(); $.each( awf_pretty_scrollbars, function( i, ps ) { ps.update(); }); } }, error: function( response ) { console.log( response ); } }); } function awf_update_orderby() { if( 0 === $( awf_data.products_wrapper + ' form.woocommerce-ordering input[name="post_type"]' ).length ) { if( 'shop_on_frontpage' in awf_data ) { $( awf_data.products_wrapper + ' form.woocommerce-ordering' ).append( $( '' ) ); } } else { if( 'sc_page' in awf_data ) { $( awf_data.products_wrapper + ' form.woocommerce-ordering input[name="post_type"]' ).remove(); } } if( ( 'sc_page' in awf_data ) && ( 0 === $( awf_data.products_wrapper + ' form.woocommerce-ordering input[name="page_id"]' ).length ) ) { $( awf_data.products_wrapper + ' form.woocommerce-ordering' ).append( $( '' ) ); } } function awf_update_titles() { var last_bc = $( '.woocommerce-breadcrumb' ).contents().last(); if( 0 === last_bc.length ) { return; } last_bc = last_bc[0]; if( last_bc ) { var title_pieces = $( document ).attr( 'title' ); title_pieces = title_pieces.split( ' – ' ); var shop_title = title_pieces.shift(); shop_title = shop_title.split( ': ' ); shop_title = shop_title.shift(); } if( 'product_cat' in awf_data.query ) { var cats = []; $.each( awf_data.query['product_cat'].split( ',' ), function( i, cat ) { cats.push( $( '.awf-product_cat-' + cat + '-container label' ).attr( 'title' ) ); } ); cats = cats.join( ', ' ); $( '.woocommerce-breadcrumb .breadcrumb-separator:last-child' ).show(); $( '.woocommerce-breadcrumb' ).contents().last()[0].textContent = cats; shop_title += ': ' + cats; } else { $( '.woocommerce-breadcrumb .breadcrumb-separator:last-child' ).hide(); $( '.woocommerce-breadcrumb' ).contents().last()[0].textContent = ''; } title_pieces.unshift( shop_title ); $( document ).attr( 'title', title_pieces.join( ' - ' ) ); } function awf_update_hrefs() { $( '.awf-url .awf-filter-wrapper' ).each( function( i, wrapper ) { if( $( wrapper ).hasClass( 'awf-reset-all' ) ) { if( 'premium' in a_w_f ) { a_w_f.update_reset_all_hrefs( $( wrapper ) ); } } else if( $( wrapper ).hasClass( 'awf-single' ) || $( wrapper ).hasClass( 'awf-range' ) ) { $( wrapper ).find( '.awf-filter' ).each( function( ii, filter ) { var query = $.extend( true, {}, awf_data.query ); var taxonomy = $( filter ).attr( 'data-taxonomy' ); if( ! ( taxonomy in query ) ) { query[taxonomy] = ''; } if( $( filter ).hasClass( 'awf-default' ) || $( filter ).val() === query[taxonomy] ) { delete query[taxonomy]; if( $( filter ).is( '[data-max-name]' ) ) { delete query[$( filter ).attr( 'data-max-name' )]; } } else { query[taxonomy] = $( filter ).val(); if( $( filter ).is( '[data-max-name]' ) ) { query[$( filter ).attr( 'data-max-name' )] = $( filter ).attr( 'data-next-value' ); } } $( filter ).closest( 'a' ).attr( 'href', a_w_f.build_url( query ) ); }); } else if( $( wrapper ).hasClass( 'awf-multi' ) ) { $( wrapper ).find( '.awf-filter' ).each( function( ii, filter ) { var query = $.extend( true, {}, awf_data.query ); var taxonomy = $( filter ).attr( 'data-taxonomy' ); var values; if( taxonomy in query ) { values = query[taxonomy].split( ',' ); } else { values = []; } if( $( filter ).is( ':checked' ) ) { values = $.grep( values, function( v ) { return v !== $( filter ).val(); } ); } else { $( filter ).parents( 'ul' ).prev( 'li.awf-filter-container' ).find( '.awf-filter' ).each( function( i, f ) { values = $.grep( values, function( v ) { return v !== $( f ).val(); } ); }); $( filter ).parents( 'li.awf-filter-container' ).next( 'ul' ).find( '.awf-filter' ).each( function( i, f ) { values = $.grep( values, function( v ) { return v !== $( f ).val(); } ); }); values.push( $( filter ).val() ); } if( values.length > 0 ) { query[taxonomy] = values.join( ',' ); } else { delete query[taxonomy]; } $( filter ).closest( 'a' ).attr( 'href', a_w_f.build_url( query ) ); }); } }); } function awf_build_range_slider( range_container ) { var range_values = $( range_container ).attr( 'data-values' ).split( '--' ); $( range_values ).each( function( i, v ) { range_values[i] = parseFloat( v ); }); var min = parseFloat( range_values[0] ); var max = parseFloat( range_values[range_values.length-1] ); noUiSlider.create( range_container, { range: { 'min': [min], 'max': [max] }, start: [parseFloat( $( range_container ).find( '.awf-range-slider-min' ).val() ), parseFloat( $( range_container ).find( '.awf-range-slider-max' ).val() )], step: parseFloat( $( range_container ).attr( 'data-step' ) ), pips: { mode: 'values', values: range_values, density: 5, }, connect: true, tooltips: true, behaviour: 'drag' }); var prefix = $( range_container ).attr( 'data-prefix' ); var postfix = $( range_container ).attr( 'data-postfix' ); $( range_container ).find( '.noUi-value' ).each( function( i, el ) { $( el ).html( prefix + $( el ).html() + postfix ); }); range_container.noUiSlider.on( 'change', function ( values, handle ) { if( $( range_container ).hasClass( 'awf-reset-all' ) && typeof a_w_f.range_slider_reset_all === 'function' ) { a_w_f.range_slider_reset_all( $( range_container ) ); } awf_range_slider_onchange( range_container, values, min, max ); if( ! $( range_container ).hasClass( 'awf-range-btn' ) ) { a_w_f.apply_filter( true, $( range_container ).closest( '.awf-preset-wrapper' ) ); } }); } });