function sfhiv_draw_taxonomy_query_menu($tax_name, $query, $args = array())
{
    if (!is_object_in_taxonomy($query->query_vars['post_type'], $tax_name)) {
        return;
    }
    if (!isset($args['include'])) {
        $query = sfhiv_remove_url_vars_from_query($query, array($tax_name));
        $query = sfhiv_unpage_query($query);
        $categories = sfhiv_get_taxonomy_in($query, $tax_name, 'ids');
        $args['include'] = implode(",", $categories);
        if (!isset($args['min_display'])) {
            $args['min_display'] = 2;
        }
        if (count($categories) < $args['min_display']) {
            return;
        }
    }
    if (!isset($args['base_link'])) {
        if (is_page() && mini_archive_on_page(get_the_ID())) {
            $args['base_link'] = get_permalink();
        } else {
            $args['base_link'] = get_post_type_archive_link($query->query_vars['post_type']);
        }
    }
    if (!isset($args['title_li'])) {
        $taxonomies = get_taxonomies(array('name' => $tax_name), 'objects');
        foreach ($taxonomies as $taxonomy) {
            $args['title_li'] = $taxonomy->label;
        }
    }
    $args = array_merge(array('taxonomy' => $tax_name, 'show_all_link' => true), $args);
    sfhiv_draw_taxonomy_menu($args);
}
function sfhiv_service_archive_draw_menu($query = false, $args = array())
{
    if (!$query || !in_array($query->query_vars['post_type'], array("sfhiv_service", "sfhiv_service_hour"))) {
        return;
    }
    $new_query = sfhiv_remove_url_vars_from_query($query, array('sfhiv_service_category'));
    $tax_term_ids = sfhiv_get_term_ids_in_query($new_query);
    $base_url = preg_replace('/page\\/(\\d+)\\//i', '', $_SERVER['REQUEST_URI']);
    // strip out page var if in url
    if (isset($args['id'])) {
        $base_url .= "#" . $args['id'];
    }
    echo '<section class="filters collapsable">';
    sfhiv_draw_taxonomy_query_menu('sfhiv_service_category', $query, array('title_li' => false, 'all_taxonomy_name' => 'All Services', 'extra_classes' => 'filter additive', 'base_link' => $base_url, 'exclude_cats' => $tax_term_ids, 'walker' => new SFHIV_Category_Walker_Filter()));
    sfhiv_draw_taxonomy_query_menu('sfhiv_day_of_week_taxonomy', $query, array('title_li' => false, 'all_taxonomy_name' => 'Any Day', 'extra_classes' => 'filter', 'base_link' => $base_url));
    sfhiv_draw_taxonomy_query_menu('sfhiv_population_category', $query, array('title_li' => false, 'all_taxonomy_name' => "All Populations", 'extra_classes' => 'filter population', 'base_link' => $base_url));
    echo '<i class="button"></i>';
    echo '</section>';
}