jQuery(document).on('mouseover', '.bapf_sfilter.bapf_rtnstrs ul li label', function(e) {
    if( jQuery(this).parents('.bapf_rtnstrs').is('.bapf_rtnstrs_asc') ) {
        jQuery(this).parents('li').first().prevAll('li').find('i').removeClass('fa-star-o').removeClass('fa-star').addClass('fa-star');
        jQuery(this).parents('li').first().nextAll('li').find('i').removeClass('fa-star-o').removeClass('fa-star').addClass('fa-star-o');
        jQuery(this).find('i').removeClass('fa-star-o').removeClass('fa-star').addClass('fa-star');
    } else {
        jQuery(this).parents('li').first().nextAll('li').find('i').removeClass('fa-star-o').removeClass('fa-star').addClass('fa-star');
        jQuery(this).parents('li').first().prevAll('li').find('i').removeClass('fa-star-o').removeClass('fa-star').addClass('fa-star-o');
        jQuery(this).find('i').removeClass('fa-star-o').removeClass('fa-star').addClass('fa-star');
    }
});
jQuery(document).on('mouseout', '.bapf_sfilter.bapf_rtnstrs.bapf_rtnstrs_asc ul li label', function(e) {
    if( jQuery(this).parents('.bapf_rtnstrs').is('.bapf_rtnstrs_asc') ) {
        jQuery(this).parents('.bapf_rtnstrs').find('input').next().find('.fa').removeClass('fa-star-o').removeClass('fa-star');
        jQuery(this).parents('.bapf_rtnstrs').find('input:checked').next().find('.fa').addClass('fa-star');
        jQuery(this).parents('.bapf_rtnstrs').find('input').not(':checked').next().find('.fa').addClass('fa-star-o');
    } else {
        jQuery(this).parents('.bapf_rtnstrs').find('input').next().find('.fa').removeClass('fa-star-o').removeClass('fa-star');
        jQuery(this).parents('.bapf_rtnstrs').find('input:checked').next().find('.fa').addClass('fa-star');
        jQuery(this).parents('.bapf_rtnstrs').find('input').not(':checked').next().find('.fa').addClass('fa-star-o');
    }
});

bapf_change_rtnstrs_before = function(this_element, taxonomy, value, $checked) {
    var $this = jQuery(this_element);
    var $parent = $this.parents('.bapf_sfilter');
    if( $parent.is('.bapf_rtnstrs') ) {
        if( $parent.is('.bapf_asradio') ) {
            if( $parent.is('.bapf_rtnstrs_asc') ) {
                var $other_checked = jQuery($this).parents('li').first().next('li').find('input').prop('checked');
                if( $other_checked && ! $checked ) {
                    jQuery($this).prop('checked', true);
                    $checked = true;
                }
            } else {
                var $other_checked = jQuery($this).parents('li').first().prev('li').find('input').prop('checked');
                if( $other_checked && ! $checked ) {
                    jQuery($this).prop('checked', true);
                    $checked = true;
                }
            }
        }
    }
}
bapf_change_rtnstrs = function(this_element, taxonomy, value, $checked) {
    var $this = jQuery(this_element);
    var $parent = $this.parents('.bapf_sfilter');
    if( $parent.is('.bapf_rtnstrs') ) {
        if( $parent.is('.bapf_asradio') ) {
            if( jQuery($this).prop('checked') ) {
                if( $parent.is('.bapf_rtnstrs_asc') ) {
                    jQuery($this).parents('li').first().prevAll('li').find('input').prop('checked', true);
                } else {
                    jQuery($this).parents('li').first().nextAll('li').find('input').prop('checked', true);
                }
            }
        } else {
            if( $parent.is('.bapf_rtnstrs_asc') ) {
                var $other_checked = jQuery($this).parents('li').first().next('li').find('input').prop('checked');
                if( $other_checked && ! $checked ) {
                    jQuery($this).parents('li').first().nextAll('li').find('input').prop('checked', false);
                    jQuery($this).prop('checked', true);
                    $checked = true;
                }
                jQuery($this).parents('li').first().prevAll('li').find('input').prop('checked', $checked);
            } else {
                var $other_checked = jQuery($this).parents('li').first().prev('li').find('input').prop('checked');
                if( $other_checked && ! $checked ) {
                    jQuery($this).parents('li').first().prevAll('li').find('input').prop('checked', false);
                    jQuery($this).prop('checked', true);
                    $checked = true;
                }
                jQuery($this).parents('li').first().nextAll('li').find('input').prop('checked', $checked);
            }
        }
        jQuery($this).parents('.bapf_rtnstrs').find('input:checked').next().find('.fa').addClass('fa-star');
        jQuery($this).parents('.bapf_rtnstrs').find('input').not(':checked').next().find('.fa').addClass('fa-star-o');
    }
    return $this;
}
bapf_grab_single_rtnstrs = function(single_data, element, selected_filters, grab_single) {
    if( jQuery(element).is('.bapf_rtnstrs') ) {
        var values = [];
        if( grab_single ) {
            var $elements = element;
        } else {
            var taxonomy = element.data('taxonomy');
            var $elements = jQuery('.bapf_sfilter[data-taxonomy="'+taxonomy+'"]');
            $elements = braapf_filter_mobile_desktop_filters($elements);
        }
        var checked = $elements.find('input:checked:not(:disabled)');
        if (jQuery(element).is('.bapf_asradio') ) {
            if( checked.length > 0 ) {
                if( jQuery(element).is('.bapf_rtnstrs_asc') ) {
                    var $this = $elements.find('input:checked:not(:disabled)').last();
                    values.push({value:$this.val(), html:$this.data('name')});
                } else {
                    var $this = $elements.find('input:checked:not(:disabled)').first();
                    values.push({value:$this.val(), html:$this.data('name')});
                }
                single_data.values = values;
            }
        } else {
            if( checked.length > 0 ) {
                if( jQuery(element).is('.bapf_rtnstrs_asc') ) {
                    single_data.type = 'rtnstrs_asc';
                } else {
                    single_data.type = 'rtnstrs';
                }
            }
        }
    }
    return single_data;
}
bapf_sfa_taxonomy_rtnstrs = function(taxonomy) {
    if( typeof (taxonomy.type) != 'undefined' && (taxonomy.type == 'rtnstrs' || taxonomy.type == 'rtnstrs_asc') ) {
        if( taxonomy.type == 'rtnstrs_asc' ) {
            element_set = taxonomy.values[taxonomy.values.length - 1];
        } else {
            element_set = taxonomy.values[0];
        }
        taxonomy.values = [element_set];
    }
    return taxonomy;
}
function braapf_unselect_rtnstrs () {
    jQuery(document).off('braapf_unselect', '.bapf_sfilter.bapf_rtnstrs', braapf_unselect_rtnstrs);
    jQuery(this).trigger('braapf_unselect', false);
    jQuery(document).on('braapf_unselect', '.bapf_sfilter.bapf_rtnstrs', braapf_unselect_rtnstrs);
}
function bapf_rtnstrs_filters_init() {
    berocket_add_filter('input_ckbox_changed', bapf_change_rtnstrs_before, 1);
    berocket_add_filter('input_ckbox_changed', bapf_change_rtnstrs, 1000);
    berocket_add_filter('grab_single_filter_default', bapf_grab_single_rtnstrs);
    berocket_add_filter('default_selected_filters_area_single_taxonomy', bapf_sfa_taxonomy_rtnstrs);
}
jQuery(document).on('braapf_unselect', '.bapf_sfilter.bapf_rtnstrs', braapf_unselect_rtnstrs);
if ( typeof(berocket_add_filter) == 'function' ) {
    bapf_rtnstrs_filters_init()
} else {
    jQuery(document).on('berocket_hooks_ready', bapf_rtnstrs_filters_init);
}