var filtering_running = false; var wpforms_search_running = 'No'; var ajax_ctrlr = { last_run: new Date(), srch_str: '', schdl_to_run_state: false, schdl_to_run_delay: 250, search_save_schdl_to_run_delay: 3000, schdl_to_run_cntr: 0, schdl_to_run_hndl: null, search_save_schdl_to_run_hndl: null, schedule_to_run: function() { ajax_ctrlr.schdl_to_run_cntr++; if(ajax_ctrlr.schdl_to_run_cntr % 5 == 0) { ajax_ctrlr.schdl_to_run_delay += 250; ajax_ctrlr.schdl_to_run_reset(); } if( ! ajax_ctrlr.schdl_to_run_state) { return; } let crnt_run = new Date(); if(crnt_run - ajax_ctrlr.last_run > ajax_ctrlr.schdl_to_run_delay) { ajax_ctrlr.schdl_to_run_state = false; ajax_ctrlr.schdl_to_run_cntr = 0; ajax_ctrlr.last_run = new Date(); ewd_ufaq_ajax_reload(); ajax_ctrlr.save_search_schdl_to_run_reset(); } }, schdl_to_run_reset: function () { clearInterval(ajax_ctrlr.schdl_to_run_hndl); ajax_ctrlr.schdl_to_run_hndl = setInterval(ajax_ctrlr.schedule_to_run, ajax_ctrlr.schdl_to_run_delay); }, run_search_ajax: function( elm ) { ajax_ctrlr.clear_field( elm ); let srch_str = jQuery(elm).val(); if( ajax_ctrlr.schdl_to_run_delay > 250 ) { ajax_ctrlr.schdl_to_run_delay = 250; ajax_ctrlr.schdl_to_run_reset(); } if(srch_str != ajax_ctrlr.srch_str) { ajax_ctrlr.srch_str = srch_str; ajax_ctrlr.schdl_to_run_state = true; ajax_ctrlr.last_run = new Date(); } }, save_search_term: function() { var params = {}; params.nonce = typeof ewd_ufaq_php_data != 'undefined' ? ewd_ufaq_php_data.nonce : ''; params.search_term = ajax_ctrlr.srch_str; params.action = 'ewd_ufaq_record_search_term'; var data = jQuery.param( params ); jQuery.post(ajaxurl, data, function(response) {}); }, save_search_schdl_to_run_reset: function() { if ( typeof ewd_ufaq_php_data == 'undefined' || ! ewd_ufaq_php_data.save_search_terms ) { return false; } clearTimeout(ajax_ctrlr.search_save_schdl_to_run_hndl); ajax_ctrlr.search_save_schdl_to_run_hndl = setTimeout(ajax_ctrlr.save_search_term, ajax_ctrlr.search_save_schdl_to_run_delay); }, clear_field: function ( srch_elm ) { let cf = jQuery(srch_elm).parent('.search-field').find('.clear-field').eq(0); if( 0 < jQuery(srch_elm).val().length ) { if( 'hidden' == cf.data('state') ) { cf.data('state', 'visible'); cf.removeClass('slide-out').addClass('slide-in'); } } else { cf.data('state', 'hidden'); cf.removeClass('slide-in').addClass('slide-out'); } } }; jQuery(function(){ //DOM Ready ufaqSetClickHandlers(); UFAQSetAutoCompleteClickHandlers(); UFAQSetRatingHandlers(); UFAQSetExpandCollapseHandlers(); UFAQSetPaginationHandlers(); UFAQWPFormsHandler(); }); function ewd_ufaq_run_effect( display, faq_element ) { var selected_effect = typeof ewd_ufaq_php_data != 'undefined' ? ewd_ufaq_php_data.reveal_effect : 'none'; // most effect types need no options passed by default var options = {}; // some effects have required parameters if ( selected_effect === 'size' ) { options = { to: { width: 200, height: 60 } }; } // run the effect if ( display == 'show' ) { faq_element.find( '.ewd-ufaq-faq-body' ).show( selected_effect, options, 500, ewd_ufaq_toggle_hidden_class( faq_element ) ); } if ( display == 'hide' ) { faq_element.find( '.ewd-ufaq-faq-body' ).hide( selected_effect, options, 500, ewd_ufaq_toggle_hidden_class( faq_element ) ); } }; // callback function to bring a hidden box back function ewd_ufaq_toggle_hidden_class( faq_element ) { setTimeout( function() { faq_element.find( '.ewd-ufaq-faq-body' ).toggleClass( 'ewd-ufaq-hidden' ); }, 500 ); }; function ufaqSetClickHandlers() { jQuery( '.ewd-ufaq-faq-toggle' ).off( 'click' ).on( 'click', function( event ) { jQuery( this ).attr( 'aria-expanded', function ( i, attr ) { return attr == 'true' ? 'false' : 'true' }); event.preventDefault(); faq = jQuery( this ).parent(); if ( faq.find( '.ewd-ufaq-faq-body' ).hasClass( 'ewd-ufaq-hidden' ) ) { EWD_UFAQ_Reveal_FAQ( faq ); if ( typeof ewd_ufaq_php_data != 'undefined' && ewd_ufaq_php_data.faq_scroll ) { jQuery('html, body').animate({scrollTop: jQuery(this).offset().top -80}, 100); } } else { EWD_UFAQ_Hide_FAQ( faq ); } }); jQuery( '.ewd-ufaq-faq-category-title-toggle' ).off( 'click' ).on( 'click', function() { var category = jQuery( this ).parent(); var category_inner = category.find( '.ewd-ufaq-faq-category-inner' ); category_inner.toggleClass( 'ewd-ufaq-faq-category-body-hidden' ); if ( typeof ewd_ufaq_php_data == 'undefined' || ! ewd_ufaq_php_data.category_accordion ) { return; } jQuery( '.ewd-ufaq-faq-category-inner' ).each( function( index, object ) { if ( object != category_inner.get( 0 ) ) { jQuery( this ).addClass( 'ewd-ufaq-faq-category-body-hidden' ); } }); }); jQuery( '.ewd-ufaq-back-to-top-link' ).off( 'click' ).on( 'click', function( event ) { event.preventDefault(); jQuery( 'html, body' ).animate( { scrollTop: jQuery( '#ewd-ufaq-faq-list' ).offset().top -80 }, 100 ); }); jQuery( '.ewd-ufaq-faq-header-link' ).off( 'click' ).on( 'click', function( event ) { event.preventDefault(); var faq_id = jQuery( this ).data( 'postid' ); var faq = jQuery( '#ewd-ufaq-post-' + faq_id ).first(); if ( faq.find( '.ewd-ufaq-faq-body' ).hasClass( 'ewd-ufaq-hidden' ) ) { EWD_UFAQ_Reveal_FAQ( faq ); } jQuery( 'html, body' ).animate( { scrollTop: faq.offset().top - 20 }, 100 ); }); } function UFAQSetAutoCompleteClickHandlers() { jQuery( '.ewd-ufaq-text-auto-complete' ).on( 'keyup', function() { jQuery( '.ewd-ufaq-text-auto-complete' ).autocomplete({ source: typeof ewd_ufaq_php_data != 'undefined' ? ewd_ufaq_php_data.question_titles : '', minLength: 3, appendTo: '#ewd-ufaq-jquery-ajax-search', select: function( event, ui ) { jQuery( this ).val( ui.item.value ); ewd_ufaq_ajax_reload(); } }); jQuery( '.ewd-ufaq-text-auto-complete' ).autocomplete( 'enable' ); }); } function EWD_UFAQ_Reveal_FAQ( faq_element ) { var post_id = faq_element.data( 'post_id' ); var params = {}; params.nonce = typeof ewd_ufaq_php_data != 'undefined' ? ewd_ufaq_php_data.nonce : ''; params.post_id = post_id; params.action = 'ewd_ufaq_record_view'; var data = jQuery.param( params ); jQuery.post(ajaxurl, data, function(response) {}); faq_element.find( '.ewd-ufaq-post-margin-symbol' ).html( faq_element.find( '.ewd-ufaq-post-margin-symbol' ).html().toUpperCase() ); faq_element.find( '.ewd-ufaq-faq-excerpt' ).addClass( 'ewd-ufaq-hidden' ); if ( typeof ewd_ufaq_php_data != 'undefined' && ewd_ufaq_php_data.reveal_effect != 'none' ) { ewd_ufaq_run_effect( 'show', faq_element ); } else { faq_element.find( '.ewd-ufaq-faq-body' ).removeClass( 'ewd-ufaq-hidden' ); } if ( typeof ewd_ufaq_php_data != 'undefined' && ewd_ufaq_php_data.faq_accordion ) { jQuery( '.ewd-ufaq-faq-div' ).each( function() { if ( jQuery( this ).prop( 'id' ) != faq_element.prop( 'id' ) ) { EWD_UFAQ_Hide_FAQ( jQuery(this) ); } else { jQuery( this ).addClass( 'ewd-ufaq-post-active' ); } }); } else { faq_element.addClass( 'ewd-ufaq-post-active' ); } } function EWD_UFAQ_Hide_FAQ( faq_element ) { var post_id = faq_element.data( 'post_id' ); faq_element.find( '.ewd-ufaq-faq-excerpt' ).removeClass( 'ewd-ufaq-hidden' ); if ( typeof ewd_ufaq_php_data != 'undefined' && ewd_ufaq_php_data.reveal_effect != 'none' && ! faq_element.find( '.ewd-ufaq-faq-body' ).hasClass( 'ewd-ufaq-hidden' ) ) { ewd_ufaq_run_effect( 'hide', faq_element ); } else { faq_element.find( '.ewd-ufaq-faq-body' ).addClass( 'ewd-ufaq-hidden' ); } faq_element.removeClass( 'ewd-ufaq-post-active' ); faq_element.find( '.ewd-ufaq-post-margin-symbol' ).html( faq_element.find( '.ewd-ufaq-post-margin-symbol' ).html().toLowerCase() ); } jQuery(document).ready(function() { if( 0 < jQuery( '#ewd-ufaq-jquery-ajax-search .ewd-ufaq-text-input' ).eq(0).length ) { ajax_ctrlr.schdl_to_run_hndl = setInterval(ajax_ctrlr.schedule_to_run, ajax_ctrlr.schdl_to_run_delay); } jQuery( '#ewd-ufaq-ajax-search-submit' ).click( function() { jQuery( '.ewd-ufaq-bottom' ).data( 'current_page', 1 ); let elm = jQuery( '#ewd-ufaq-jquery-ajax-search .ewd-ufaq-text-input' ).eq(0); ajax_ctrlr.run_search_ajax( elm[0] ); }); jQuery( '#ewd-ufaq-jquery-ajax-search' ).on( 'keyup', '.ewd-ufaq-text-input', function() { ajax_ctrlr.run_search_ajax( this ); }); // clear search field jQuery( '#ewd-ufaq-jquery-ajax-search' ).on( 'click', '.clear-field', function() { let elm = jQuery( '#ewd-ufaq-jquery-ajax-search .ewd-ufaq-text-input' ).eq(0); jQuery(elm).val(''); ajax_ctrlr.run_search_ajax( elm ); }); jQuery( '.ewd-ufaq-text-input ' ).on( 'search', function() { ajax_ctrlr.run_search_ajax( this ); }); if ( typeof ewd_ufaq_php_data != 'undefined' && ewd_ufaq_php_data.display_faq > 0 ) { var faq = jQuery( '.ewd-ufaq-faq-div[data-post_id="' + ewd_ufaq_php_data.display_faq + '"]' ); faq.parent().removeClass( 'ewd-ufaq-hidden' ); EWD_UFAQ_Reveal_FAQ( faq ); jQuery('html, body').animate({scrollTop: faq.offset().top -80}, 100); } }); var request_count = 0; function ewd_ufaq_ajax_reload( pagination, append_results, search_string ) { filtering_running = true; var search_string = search_string ? search_string : jQuery( '.ewd-ufaq-text-input' ).val(); var include_cat = jQuery( '#ewd-ufaq-include-category' ).val(); var exclude_cat = jQuery( '#ewd-ufaq-exclude-category' ).val(); var orderby = jQuery( '#ewd-ufaq-orderby' ).val(); var order = jQuery( '#ewd-ufaq-order' ).val(); var post_count = jQuery( '#ewd-ufaq-post-count' ).val(); var current_url = jQuery( '#ewd-ufaq-current-url' ).val(); var show_on_load = jQuery( '#ewd-ufaq-show-on-load' ).val(); if ( search_string == undefined ) { search_string = ''; } if ( pagination == 'Yes' ) { var faqs_only = 'Yes'; var faq_page = jQuery( '.ewd-ufaq-bottom' ).data( 'current_page' ); } else { var retrieving_results = typeof ewd_ufaq_php_data != 'undefined' ? ewd_ufaq_php_data.retrieving_results : 'Retrieving Results'; jQuery( '.ewd-ufaq-faqs' ).html( '