public function display_shortcode($atts, $content = null)
 {
     //load scripts on this page where the shortcode is called
     wp_enqueue_script($this->plugin_slug . '-plugin-build');
     wp_enqueue_script($this->plugin_slug . '-chosen-script');
     wp_enqueue_script('jquery-ui-datepicker');
     // extract the attributes into variables
     extract(shortcode_atts(array('id' => '', 'show' => 'form'), $atts));
     $returnvar = "";
     //make sure its set
     if ($id != "") {
         if (function_exists('icl_object_id')) {
             $base_form_id = icl_object_id($id, 'search-filter-widget', true, ICL_LANGUAGE_CODE);
         } else {
             $base_form_id = $id;
         }
         $fields = get_post_meta($base_form_id, '_search-filter-fields', true);
         $settings = get_post_meta($base_form_id, '_search-filter-settings', true);
         $addclass = "";
         global $sf_form_data;
         $sf_form_data->init($base_form_id);
         $this->set_defaults();
         if ($show == "form") {
             /* TODO  set auto count somewhere else */
             global $sf_form_data;
             if (isset($settings["enable_auto_count"])) {
                 if ($settings["enable_auto_count"] == 1) {
                     $term_relationships = new Search_Filter_Relationships($this->plugin_slug);
                     $term_relationships->init_relationships();
                     $sf_form_data->set_count_table($term_relationships->get_count_table());
                 }
             }
             //make sure there are results
             if (isset($fields)) {
                 //make sure results are in array format as expected
                 if (is_array($fields)) {
                     $use_ajax = isset($settings['use_ajax_toggle']) ? (bool) $settings['use_ajax_toggle'] : false;
                     $use_history_api = true;
                     $ajax_target = isset($settings['ajax_target']) ? esc_attr($settings['ajax_target']) : '';
                     $results_url = isset($settings['results_url']) ? esc_attr($settings['results_url']) : '';
                     $page_slug = isset($settings['page_slug']) ? esc_attr($settings['page_slug']) : '';
                     $ajax_links_selector = isset($settings['ajax_links_selector']) ? esc_attr($settings['ajax_links_selector']) : '';
                     $ajax_auto_submit = isset($settings['auto_submit']) ? (int) $settings['auto_submit'] : '';
                     $auto_count = isset($settings['enable_auto_count']) ? (int) $settings['enable_auto_count'] : '';
                     $use_results_shortcode = isset($settings['use_results_shortcode']) ? (int) $settings['use_results_shortcode'] : '';
                     /* legacy */
                     $display_results_as = isset($settings['display_results_as']) ? esc_attr($settings['display_results_as']) : 'shortcode';
                     $update_ajax_url = isset($settings['update_ajax_url']) ? (int) $settings['update_ajax_url'] : '';
                     $scroll_to_pos = isset($settings['scroll_to_pos']) ? esc_attr($settings['scroll_to_pos']) : '';
                     $scroll_on_action = isset($settings['scroll_on_action']) ? esc_attr($settings['scroll_on_action']) : '';
                     $custom_scroll_to = isset($settings['custom_scroll_to']) ? esc_html($settings['custom_scroll_to']) : '';
                     /* legacy */
                     if (isset($settings['use_results_shortcode'])) {
                         if ($settings['use_results_shortcode'] == 1) {
                             $display_results_as = "shortcode";
                         } else {
                             $display_results_as = "archive";
                         }
                     }
                     /* end legacy */
                     if (!isset($settings['update_ajax_url'])) {
                         $update_ajax_url = 1;
                     }
                     if ($display_results_as == "shortcode") {
                         //if we're using a shortcode, grab the selector automatically from the id
                         $ajax_target = "#search-filter-results-" . $base_form_id;
                     }
                     $post_types = isset($settings['post_types']) ? $settings['post_types'] : '';
                     //url
                     /*$ajax_url = "";
                     		$start_url = home_url();
                     		$full_url = $this->get_current_URL();
                     		if(substr($full_url, 0, strlen($start_url)) == $start_url)
                     		{
                     			$ajax_url = substr($full_url, strlen($start_url));
                     		}*/
                     $ajax_url = "";
                     if ($display_results_as == "archive") {
                         $ajax_url = $this->get_current_URL();
                     }
                     $form_attr = ' data-sf-form-id="' . $base_form_id . '"';
                     $form_attr .= ' data-use-history-api="' . (int) $use_history_api . '"';
                     $form_attr .= ' data-template-loaded="' . (int) $this->is_template_loaded . '"';
                     $lang_code = "";
                     if (function_exists('icl_object_id')) {
                         $lang_code = ICL_LANGUAGE_CODE;
                     }
                     $form_attr .= ' data-lang-code="' . $lang_code . '"';
                     if ($use_ajax) {
                         $form_attr .= ' data-ajax="' . (int) $use_ajax . '"';
                         if ($ajax_target != "") {
                             $form_attr .= ' data-ajax-target="' . $ajax_target . '"';
                         }
                         if ($ajax_links_selector != "") {
                             $form_attr .= ' data-ajax-links-selector="' . $ajax_links_selector . '"';
                         }
                         if ($ajax_url != "") {
                             $form_attr .= ' data-ajax-url="' . esc_attr($ajax_url) . '"';
                         }
                         /*if($use_results_shortcode!="")
                         		{
                         			$form_attr.=' data-ajax-shortcode="'.$use_results_shortcode.'"';
                         		}*/
                         if ($update_ajax_url != "") {
                             $form_attr .= ' data-update-ajax-url="' . $update_ajax_url . '"';
                         }
                         if ($scroll_to_pos != "") {
                             $form_attr .= ' data-scroll-to-pos="' . $scroll_to_pos . '"';
                             if ($scroll_to_pos == "custom") {
                                 if ($custom_scroll_to != "") {
                                     $form_attr .= ' data-custom-scroll-to="' . $custom_scroll_to . '"';
                                 }
                             }
                         }
                         if ($scroll_on_action != "") {
                             $form_attr .= ' data-scroll-on-action="' . $scroll_on_action . '"';
                         }
                     }
                     if ($results_url != "") {
                         $form_attr .= ' data-results-url="' . $results_url . '"';
                     }
                     if ($display_results_as != "") {
                         $form_attr .= ' data-display-results="' . $display_results_as . '"';
                     }
                     $form_attr .= ' data-auto-update="' . $ajax_auto_submit . '"';
                     if ($use_ajax && $display_results_as == "archive" || !$use_ajax) {
                         if (get_option('permalink_structure')) {
                             if ($page_slug != "") {
                                 $form_attr .= ' data-page-slug="' . $page_slug . '"';
                             }
                         }
                     }
                     if ($auto_count == 1) {
                         $form_attr .= ' data-auto-count="' . esc_attr($auto_count) . '"';
                     }
                     $returnvar .= '<form action="" method="post" class="searchandfilter' . $addclass . '"' . $form_attr . ' id="search-filter-form-' . $base_form_id . '">';
                     $returnvar .= "<ul>";
                     //loop through each field and grab html
                     foreach ($fields as $field) {
                         $returnvar .= $this->get_field($field, $post_types, $base_form_id);
                     }
                     $returnvar .= '<input type="hidden" name="' . SF_FPRE . 'submitted" value="1" />';
                     $returnvar .= '<input type="hidden" name="' . SF_FPRE . 'form_id" value="' . esc_attr($base_form_id) . '" class="sf_form_id" />';
                     if (isset($_GET[SF_FPRE . 'ajax_timestamp'])) {
                         if (is_numeric($_GET[SF_FPRE . 'ajax_timestamp'])) {
                             $timestamp = $_GET[SF_FPRE . 'ajax_timestamp'];
                             $returnvar .= '<input type="hidden" name="' . SF_FPRE . 'ajax_timestamp" value="' . esc_attr($timestamp) . '" class="sf_ajax_timestamp" />';
                         }
                     }
                     $returnvar .= "</ul>";
                     $returnvar .= "</form>";
                 }
             }
         } else {
             if ($show == "results") {
                 /* legacy */
                 if ($sf_form_data->settings('use_results_shortcode') == 1) {
                     $display_results_as = "shortcode";
                 } else {
                     $display_results_as = "archive";
                 }
                 /* end legacy */
                 if ($sf_form_data->settings('display_results_as') != "") {
                     $display_results_as = $sf_form_data->settings('display_results_as');
                 }
                 if ($display_results_as == "shortcode") {
                     $returnvar = $this->display_results->output_results($base_form_id, $settings);
                 } else {
                     if (current_user_can('edit_posts')) {
                         $returnvar = __("<p><strong>Notice:</strong> This Search Form has not been configured to use a shortcode. <a href='" . get_edit_post_link($base_form_id) . "'>Edit settings</a>.</p>", $this->plugin_slug);
                     }
                 }
             }
         }
     }
     return $returnvar;
 }
 function get_counts()
 {
     global $wpdb;
     //var_dump(($_POST));
     $taxterms = array();
     foreach ($_POST as $key => $val) {
         if (strpos($key, SF_TAX_PRE) === 0) {
             $taxonomy_name = sanitize_key(substr($key, strlen(SF_TAX_PRE)));
             foreach ($val as $tt) {
                 if ($tt != 0) {
                     $term_id = intval($tt);
                     $term_obj = get_term($term_id, $taxonomy_name);
                     $taxterms[$taxonomy_name][] = $term_obj->slug;
                 }
             }
         } else {
             if (strpos($key, SF_META_PRE) === 0) {
                 $key = substr($key, strlen(SF_META_PRE));
             }
         }
     }
     $rel_query_args = array();
     $rel_query_args['taxonomies'] = $taxterms;
     $term_relationships = new Search_Filter_Relationships($this->plugin_slug);
     //var_dump($rel_query_args);
     $term_relationships->init_relationships($rel_query_args);
     echo json_encode($term_relationships->get_count_table());
     exit;
 }