"use strict";
var woof_step_autosubmit=0;
var woof_step_pre_autosubmit={};
function woof_step_filter_html_items(){
var step_filter= jQuery('.woof_step');
if(step_filter.length){
var type =step_filter.data('filter_type');
woof_step_filter_select_fix();
if(type==2){
woof_submit_link_locked=false;
woof_autosubmit=1;
woof_ajax_redraw = 1;
}
woof_step_filter_check_items(type);
if(type==1){
check_next_prev_btn();
}
step_filter.slideDown('100');
woof_reinit_selects();
if(type==1){
jQuery('.woof_step_filter_next').off('click');
jQuery('.woof_step_filter_next').on('click',function(){
woof_submit_link_locked = false;
woof_ajax_redraw = 1;
woof_submit_link(woof_get_submit_link());
});
jQuery('.woof_step_filter_prev').off('click');
jQuery('.woof_step_filter_prev').on('click', function(){
var element = jQuery('.woof_step_filter_current').prev();
if(!element.length){
element=jQuery(this).parents('.woof_step').find('.woof_container.woof_step_hide').last();
}
var current_filter=woof_step_filter_delete_filter_data(element);
jQuery.each(current_filter,function(i,item){
delete woof_current_values[item];
});
woof_submit_link_locked = false;
woof_ajax_redraw = 1;
woof_submit_link(woof_get_submit_link());
});
}
}
}
function woof_step_filter_select_fix(){
var mselect = jQuery('.woof_container_mselect');
var select = jQuery('.woof_container_select');
var select_h = jQuery('.woof_container_select_hierarchy');
if(jQuery(mselect).length){
jQuery.each(jQuery(mselect),function(i,item){
if(jQuery(item).find('select option').length<1){
jQuery(item).remove();
}else if(jQuery(item).find('select option').length==1 && jQuery(item).find('select option').val()==0){
jQuery(item).remove();
}
});
}
if(jQuery(select).length){
jQuery.each(jQuery(select),function(i,item){
if(jQuery(item).find('select option').length<=1){
jQuery(item).remove();
}
});
}
if(jQuery(select_h).length){
jQuery.each(jQuery(select_h),function(i,item){
if(jQuery(item).find('select option').length<=1){
jQuery(item).remove();
}
});
}
}
function check_next_prev_btn(){
var curr_el=jQuery('.woof_step_filter_current:not(".woof_container.woof_turbo_hide")');
jQuery('.woof_step .woof_container_inner input').on('ifChecked', function (event) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_container")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step .woof_container_inner input').on('ifUnchecked', function (event) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_container")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step .woof_container_inner a').on('click', function (event) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_container")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step .price_slider_wrapper .price_slider').on('click', function (event) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_container")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('body').on('change','.woof_step .woof_price_filter_txt', function () {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_step_filter_current")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step .woof_meta_filter_textinput').keyup(function (e) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_step_filter_current")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step .woof_show_sku_search').keyup(function (e) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_step_filter_current")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step .woof_show_text_search').keyup(function (e) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_step_filter_current")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step_filter_current').on('click',function(){
var _this = this;
setTimeout(function(){
if(woof_step_filter_check_state(_this).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
}, 300);
});
jQuery('.woof_step_filter_current [type="checkbox"]').on('change', function (event) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_step_filter_current")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
jQuery('.woof_step_filter_current [type="radio"]').on('change', function (event) {
if(woof_step_filter_check_state(jQuery(this).parents(".woof_step_filter_current")).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
});
if(woof_step_filter_check_state(curr_el).has){
jQuery('.woof_step_filter_next').prop( "disabled", false );
}else{
jQuery('.woof_step_filter_next').prop( "disabled", true );
}
if(jQuery(curr_el).next('.woof_submit_search_form_container').length){
jQuery('.woof_step_filter_next').prop( "disabled", true );
woof_autosubmit=1;
woof_ajax_redraw = 1;
if(jQuery('.woof_step').data('autosubmit')){
woof_ajax_redraw = 0;
}
}else{
woof_autosubmit=0;
}
if(jQuery(curr_el).is(":first-child")){
jQuery('.woof_step_filter_prev').prop( "disabled", true );
}else{
jQuery('.woof_step_filter_prev').prop( "disabled", false );
}
if(!curr_el.length){
var prev_btn = jQuery('.woof_step .woof_step_filter_prev').clone();
var isset_btn=jQuery('.woof_step .woof_submit_search_form_container').find('.woof_step_filter_prev');
if(!isset_btn.length){
prev_btn.prependTo('.woof_step .woof_submit_search_form_container');
}
jQuery('.woof_step_next_back_btn').hide();
//turbo
if(typeof WoofTurboMode!='undefined'){
woof_step_autosubmit=1;
woof_step_filter_submit();
}
//turbo
}else{
jQuery('.woof_step .woof .woof_submit_search_form_container').hide();
jQuery('.woof_step_next_back_btn').show();
jQuery('.woof_step .woof_submit_search_form_container .woof_step_filter_prev').remove();
}
}
function woof_step_filter_check_items(type){
var items=jQuery('.woof_step .woof .woof_container:not(".woof_container.woof_turbo_hide")');
var woof_current_values_temp={};
var hide=false;
var first=0;
//turbo
if(typeof WoofTurboMode!='undefined'){
jQuery(items).removeClass('woof_step_filter_current');
}
jQuery.each(items, function(i,item){
if(type==1){
jQuery(item).addClass('woof_step_hide');
}else if(type==2){
if(i!=0 && hide){
jQuery(item).addClass('woof_step_hide');
}else{
jQuery(item).removeClass('woof_step_hide');
}
}
var stat = woof_step_filter_check_state(item);
if(!stat.has){
hide=true;
first++;
if(first==1){
jQuery(item).addClass('woof_step_filter_current');
jQuery(item).removeClass('woof_step_hide');
}
}
if(!hide && stat.key){
jQuery.each(stat.key,function(i,val){
if(woof_current_values[val]){
woof_current_values_temp[val] = woof_current_values[val];
}
});
if(woof_current_values['page']!=undefined){
woof_current_values_temp['page'] = woof_current_values['page'];
}
if(woof_current_values['paged']!=undefined){
woof_current_values_temp['paged'] = woof_current_values['paged'];
}
if(woof_current_values['orderby']!=undefined){
woof_current_values_temp['orderby'] = woof_current_values['orderby'];
}
if(woof_current_values['order']!=undefined){
woof_current_values_temp['order'] = woof_current_values['order'];
}
}
if(type==2){
if(jQuery('.woof_step_filter_current').next('.woof_submit_search_form_container').length){
jQuery('.woof_step_filter_current').on('click', function(){
woof_step_autosubmit=1;
woof_ajax_redraw = 0;
});
}
//turbo
if(typeof WoofTurboMode!='undefined'){
if(jQuery('.woof_step_filter_current').nextAll(".woof_container:not('.woof_container.woof_turbo_hide')").length==0){
jQuery('.woof_step_filter_current').on('click',function(){
woof_step_autosubmit=1;
woof_ajax_redraw = 1;
woof_step_filter_submit();
});
}
}
}
var curr_el = jQuery('.woof_step_filter_current:not(".woof_container.woof_turbo_hide")');
if(jQuery(curr_el).length==0){
if(jQuery(woof_step_pre_autosubmit).data('css-class')==jQuery(".woof_step.woof_autosubmit").find(".woof_container").last().data('css-class')){
woof_step_autosubmit=1;
woof_step_filter_submit();
}
}else{
woof_step_pre_autosubmit=curr_el
}
if(!hide && i == items.length-1){
if(typeof WoofTurboMode!='undefined' && type==2){
woof_step_autosubmit=1;
}
woof_step_filter_submit();
}
});
woof_current_values=woof_current_values_temp;
woof_step_filter_image();
}
function woof_step_filter_check_items_(){
var items=jQuery('.woof_step .woof .woof_container');
var woof_current_values_temp={};
var hide=false;
var first=0;
jQuery.each(items, function(i,item){
if(i!=0 && hide){
jQuery(item).addClass('woof_step_hide');
}else{
jQuery(item).removeClass('woof_step_hide');
}
var stat = woof_step_filter_check_state(item);
if(!stat.has){
hide=true;
first++;
if(first==1){
jQuery(item).addClass('woof_step_filter_current');
}
}
if(!hide && stat.key){
jQuery.each(stat.key,function(i,val){
if(woof_current_values[val]){
woof_current_values_temp[val] = woof_current_values[val];
}
});
if(woof_current_values['page']!=undefined){
woof_current_values_temp['page'] = woof_current_values['page'];
}
if(woof_current_values['paged']!=undefined){
woof_current_values_temp['paged'] = woof_current_values['paged'];
}
if(woof_current_values['orderby']!=undefined){
woof_current_values_temp['orderby'] = woof_current_values['orderby'];
}
if(woof_current_values['order']!=undefined){
woof_current_values_temp['order'] = woof_current_values['order'];
}
}
if(!hide && i == items.length-1){
woof_step_filter_submit();
}
});
woof_current_values=woof_current_values_temp;
}
function woof_step_filter_check_state(_this){
var stat={
has:false,
key:[],
};
jQuery.each(woof_current_values, function(i,item){
if(i=='min_price'|| i=='max_price'){
if(jQuery(_this).hasClass('woof_price_filter')){
//alert();
stat.has = true;
stat.key = ['min_price','max_price'];
}
}else if(i=='min_rating'|| i=='max_rating'){
if(jQuery(_this).hasClass('woof_by_rating_container')){
stat.has = true;
stat.key = ['min_rating','max_rating'];
}
}else if(jQuery(_this).hasClass(('woof_container_'+i))){
stat.has = true;
stat.key = [i];
if(jQuery(_this).hasClass("woof_container_select_hierarchy")){
if(jQuery(_this).find(".woof_block_html_items select:last").val()==0){
stat.has = false;
stat.key = [];
}
}
}
});
return stat;
}
function woof_step_filter_delete_filter_data(_this){
var key=[];
if(!jQuery(_this).hasClass('woof_container')){
_this=jQuery(_this).prev();
}
jQuery.each(woof_current_values, function(i,item){
if(i=='min_price'|| i=='max_price'){
if(jQuery(_this).hasClass('woof_price_filter')){
key = ['min_price','max_price'];
}
if(jQuery(_this).hasClass('woof_price_filter')){
key = ['min_price','max_price'];
}
}else if(i=='min_rating'|| i=='max_rating'){
if(jQuery(_this).hasClass('woof_by_rating_container')){
key = ['min_rating','max_rating'];
}
}else if(jQuery(_this).hasClass(('woof_container_'+i))){
key = [i];
}
});
return key;
}
function woof_step_filter_submit(){
if(jQuery('.woof_step').data('autosubmit') && woof_step_autosubmit){
if(typeof WoofTurboMode=='undefined'){
jQuery('.woof_submit_search_form_container').hide();
}
woof_submit_link_locked = false;
woof_ajax_redraw = 0;
woof_step_autosubmit=0;
woof_step_pre_autosubmit={};
woof_submit_link_locked = false;
woof_submit_link(woof_get_submit_link());
}else{
woof_ajax_redraw = 1;
jQuery('.woof_step .woof .woof_submit_search_form').on('click', function(){
woof_ajax_redraw = 0;
//turbo
if(typeof WoofTurboMode!='undefined'){
woof_submit_link_locked= false;
woof_submit_link(woof_get_submit_link());
return false;
}
//turbo
})
jQuery('.woof_submit_search_form_container').show();
jQuery('.woof_step .woof .woof_submit_search_form').show();
}
}
function woof_step_filter_image(){
jQuery('.woof_step_filter_image').remove();
var image_input=jQuery("input.woof_step_filter_images");
var image="";
if(image_input.length){
var behavior= jQuery(image_input).data("behavior");
var selector= jQuery(image_input).data("selector");
var images=JSON.parse(atob(jQuery(image_input).val()));
var current_item=jQuery(".woof_step_filter_current");
if(jQuery(current_item).hasClass('woof_price_filter')){
if(typeof images['by_price']!='undefined'){
image=images['by_price'];
}
}else if(typeof images['by_rating']!='undefined'){
if(typeof images['by_rating']!='undefined'){
image=images['by_rating'];
}
}else{
jQuery.each(images,function(key,img){
if(jQuery('.woof_container_'+key).hasClass("woof_step_filter_current")){
image=img;
}
});
}
if("append"==behavior){
jQuery(selector).append(image);
}else{
jQuery(selector).prepend(image);
}
}
}