(function($){'use strict';var xhr;var active=false;var timer;function create_select2_dropdown(select_el){var args={allowClear:btf_localization.allow_clear,syncCssClasses:true,minimumResultsForSearch:1};if(btf_localization.show_description=='1'){args.templateResult=formatResult;args.templateSelection=formatSelection;}
if(btf_localization.language!==''){args.language=btf_localization.language;}
if(btf_localization.rtl=='1'){args.dir='rtl';}
var select2;if(typeof select_el!=='undefined'){if(!$(select_el).hasClass('select2-hidden-accessible')){select2=select_el.select2(args);}}else{select2=$('.beautiful-taxonomy-filters-select').select2(args);}}
function formatResult(term){if(!term.id){return term.text;}
var new_term=term.element.innerHTML;if(term.text.indexOf(":.:")!==-1){new_term=new_term.replace(':.:',' <br><span class="term-description">');new_term=new_term.replace(':-:','</span>');}
var $term=$('<span class="'+term.element.className+'">'+new_term+'</span>');return $term;}
function formatSelection(term){if(!term.id){return term.text;}
if(term.text.indexOf(":.:")===-1){return term.element.innerHTML;}
var new_term=term.text;var re=/(:\.:[\s\S]*?:-:)/;var reg_results=re.exec(new_term);new_term=new_term.replace(reg_results[0],'');var $term=$('<span>'+new_term+'</span>');return $term;}
function conditional_terms_ajax_new(el){if(active){xhr.abort();}
if(timer){clearTimeout(timer);}
timer=setTimeout(function(){form.find('.beautiful-taxonomy-filters-loader').addClass('active');form.find('select.beautiful-taxonomy-filters-select').prop('disabled',true);form.find('.beautiful-taxonomy-filters-button').prop('disabled',true);},800);var form=el.closest('#beautiful-taxonomy-filters-form'),nonce=el.data('nonce'),posttype=$('input[name="post_type"]').val(),selects=[],taxonomies=[];var filtered_taxonomies=[];form.find('select.beautiful-taxonomy-filters-select').each(function(index){var sel=$(this),taxonomy=sel.data('taxonomy'),val=sel.val();if(val===''){val=0;}
selects.push({taxonomy:sel.data('taxonomy'),term:val,});taxonomies.push(sel.data('taxonomy'));if(val){filtered_taxonomies.push(sel.data('taxonomy'));}});active=true;xhr=$.ajax({type:'post',dataType:'json',url:btf_localization.ajaxurl,data:{action:'update_filters_callback',selects:selects,posttype:posttype,nonce:nonce,taxonomies:taxonomies},success:function(response){if(timer){clearTimeout(timer);}
form.find('select.beautiful-taxonomy-filters-select').prop('disabled',false);form.find('.beautiful-taxonomy-filters-loader').removeClass('active');form.find('.beautiful-taxonomy-filters-button').prop('disabled',false);if(Object.keys(response).length>0){$.each(response,function(taxonomy,terms){var select_element=form.find('select.beautiful-taxonomy-filters-select[data-taxonomy="'+taxonomy+'"]');if(1===filtered_taxonomies.length&&taxonomy===filtered_taxonomies[0]){return;}
var options=select_element.find('option').prop('disabled',true);select_element.find('option[value="0"], option[value=""]').prop('disabled',false);for(var i=0;i<terms.length;i++){var term=terms[i];var text=terms[i].term_name;if(btf_localization.show_count==1){text+=' ('+terms[i].term_count+')';}
var option=select_element.find('option[value="'+terms[i].term_id+'"]').prop('disabled',false).text(text);}
if(btf_localization.disable_select2!='1'){select_element.trigger('change.select2');}});}},error:function(){if(timer){clearTimeout(timer);}
form.find('select.beautiful-taxonomy-filters-select').prop('disabled',false);form.find('.beautiful-taxonomy-filters-loader').removeClass('active');form.find('.beautiful-taxonomy-filters-button').prop('disabled',false);},complete:function(){active=false;}});}
function conditional_terms_ajax(el){if(active){xhr.abort();}
if(timer){clearTimeout(timer);}
timer=setTimeout(function(){form.find('.beautiful-taxonomy-filters-loader').addClass('active');form.find('select.beautiful-taxonomy-filters-select').prop('disabled',true);form.find('.beautiful-taxonomy-filters-button').prop('disabled',true);},800);var form=el.closest('#beautiful-taxonomy-filters-form'),nonce=el.data('nonce'),posttype=$('input[name="post_type"]').val(),current_taxonomy=el.data('taxonomy'),selects=[];form.find('select.beautiful-taxonomy-filters-select').each(function(index){var sel=$(this),taxonomy=sel.data('taxonomy'),val=sel.val();if(val===''){val=0;}
selects.push({taxonomy:sel.data('taxonomy'),term:val,});});active=true;xhr=$.ajax({type:'post',dataType:'json',url:btf_localization.ajaxurl,data:{action:'update_filters_callback',selects:selects,posttype:posttype,current_taxonomy:current_taxonomy,nonce:nonce,},success:function(response){if(timer){clearTimeout(timer);}
form.find('select.beautiful-taxonomy-filters-select').prop('disabled',false);form.find('.beautiful-taxonomy-filters-loader').removeClass('active');form.find('.beautiful-taxonomy-filters-button').prop('disabled',false);if(Object.keys(response.taxonomies).length>0){$.each(response.taxonomies,function(taxonomy,terms){var select_element=form.find('select.beautiful-taxonomy-filters-select[data-taxonomy="'+taxonomy+'"]');select_element.find('option').each(function(){var option=$(this),val=option.val(),option_text=option.text();if(val===''||val===0||val=='0'){return true;}
if($.inArray(val,terms)===-1){option.prop('disabled',true);}else{option.prop('disabled',false);}});if(btf_localization.disable_select2!='1'){var select_el=form.find('select.beautiful-taxonomy-filters-select[data-taxonomy="'+taxonomy+'"]');select_el.trigger('change.select2');}});}},error:function(){if(timer){clearTimeout(timer);}
form.find('select.beautiful-taxonomy-filters-select').prop('disabled',false);form.find('.beautiful-taxonomy-filters-loader').removeClass('active');form.find('.beautiful-taxonomy-filters-button').prop('disabled',false);},complete:function(){active=false;}});}
$(document).ready(function(){if(btf_localization.disable_select2!=1){create_select2_dropdown();}
if(btf_localization.conditional_dropdowns==1){var forms=$('.beautiful-taxonomy-filters form, .beautiful-taxonomy-filters-widget form');for(var i=0;i<forms.length;i++){var selects=$(forms[i]).find('.beautiful-taxonomy-filters-select');for(var j=0;j<selects.length;j++){if($(selects[j]).val()!=0){conditional_terms_ajax_new($(selects[j]));break;}}}
$('.beautiful-taxonomy-filters, .beautiful-taxonomy-filters-widget').on('change','.beautiful-taxonomy-filters-select',function(){var el=$(this);conditional_terms_ajax_new(el);});}});})(jQuery);