PageSourceSearch

https://meemacademia.com/wp-content/plugins/histudy/assets/js/ajax-filter.js?ver=1791511631

js meemacademia.com collected 2026-10-09 02:09:23 UTC 39,237 bytes, 822 lines download raw bytes

1(function ($) {
2    $(document).ready(() => {
3        $('.filter_reset').on('click', function() {
4            $('.filter-select-option .form-select select').each(function() {
5                $(this).val('').trigger('change'); // Reset to default (first) option
6            });
7        })
8        /**
9         * Load more on elementor
10         */
11        let paged = 1;
12        $('.rbt_course_elementor_load_more_btn').on( 'click', function() {
13            const queryArgs = $('input[name="rbt_query_args_data"]').val();
14            const parsedQuery = JSON.parse(queryArgs);
15            paged++;
16            $.ajax({
17                type: 'post',
18                url: filterAjax.ajaxurl,
19                data: {
20                    action: 'rbt_ajax_load_more_tutor_courses',
21                    nonce: filterAjax.nonce,
22                    parsedQuery,
23                    paged
24                },
25                beforeSend: () => {
26                    $('.rbt_course_elementor_load_more_btn').attr('disabled', true);
27                },
28                success: (response) => {
29                    $('.rbt_course_elementor_load_more_btn').removeAttr('disabled');
30                    const max_page = response?.data?.max_page;
31                    $('.rbt-course-horizontal-list').append(response?.data?.markup);
32                    if( paged + 1 === max_page ) {
33                        $('.rbt_course_elementor_load_more_btn').addClass('d-none');
34                    }
35                },
36                error: (err) => {
37                    console.log(err);
38                }
39            })
40        } );
41        $('#search-input').keyup(function() {
42            var searchTerm = $(this).val();
43    
44            if (searchTerm.length > 3) {
45                setTimeout(function() {
46                    // Perform search using searchTerm
47                }, 1000);
48            }
49        });
50        const parentSearchIdLayoutOne = $('#rbt-course-search-wrapper-layout-1');
51        const parentSearchTitleLayoutOne = $('.rbt-title-style-2');
52        $('.ajax_search_tutor_courses input').on('input keypress', function(e) {
53            const postType = $(this).attr('data-post_type');
54            lastInputTime = new Date().getTime();
55            if (e.which === 13) {
56                e.preventDefault(); // Disable default Enter key behavior
57                return;
58            }
59        
60            setTimeout(function() {
61                const inputValue = e.target.value;
62                var currentTime = new Date().getTime();
63                var timeSinceLastInput = currentTime - lastInputTime;
64        
65                if (timeSinceLastInput >= 1000 || e.type === 'keypress') {
66                    /**
67                     * Handle ajax request
68                     */
69                    $.ajax({
70                        type: 'post',
71                        url: filterAjax.ajaxurl,
72                        data: {
73                            action: 'rbt_ajax_search_tutor_courses',
74                            courseName: inputValue,
75                            postType
76                        },
77                        beforeSend: () => {
78                            parentSearchIdLayoutOne.empty();
79                            parentSearchTitleLayoutOne.text('Loading');
80                            parentSearchIdLayoutOne.append('<img src="https://img.icons8.com/?size=80&id=MzzEkuHLLvrm&format=png" />');
81                        },
82                        success: (response) => {
83                            if(response.length > 0) {
84                                parentSearchIdLayoutOne.empty();
85                                parentSearchTitleLayoutOne.text( filterAjax.searchResultsText + inputValue);
86                                parentSearchIdLayoutOne.append(response);
87                            } else {
88                                parentSearchIdLayoutOne.empty();
89                                parentSearchTitleLayoutOne.text(filterAjax.noResultfound + " " + inputValue);
90                                parentSearchIdLayoutOne.append('<div class="no-result-found"><img src="https://img.freepik.com/free-vector/error-404-concept-landing-page_52683-11371.jpg?size=626&ext=jpg" /></div>');
91                            }
92                        },
93                        error: (response) => {
94                            console.log(response);
95                            parentSearchIdLayoutOne.empty().append('<div class="error-message">An error occurred. Please try again later.</div>');
96                        }
97                    });
98                }
99            }, 1000);
100        });
101        
102        $('input[name="event_cat[]"]').on('change', function() {
103            var selectedValues = [];
104            var per_page = $('input[name="posts_per_page"]').val();
105            if(!per_page) {
106                per_page = 6;
107            }
108            $('input[name="event_cat[]"]:checked').each(function () {
109                selectedValues.push($(this).val());
110            });
111            if(selectedValues.length > 0) {
112                $.ajax({
113                    type: 'post',
114                    url: filterAjax.ajaxurl,
115                    data: {
116                        ids: selectedValues,
117                        per_page,
118                        action: 'rbt_ajax_event_filter_by_category'
119                    },
120                    beforeSend: () => {
121                        $('.rbt-archive-course-event').empty();
122                        for(let i=1;i <= per_page;i++) {
123                            $('.rbt-archive-course-event').append(`
124                                <div class="col-xl-4 col-lg-6 col-md-6 col-12">
125                                    <div class="course-grid-3">
126                                        <div class="rb-tutor-course-card-placeholder">
127                                            <div class="rb-tutor-course-thumbnail animated-placeholder"></div>
128                                            <div class="rb-tutor-course-rating animated-placeholder"></div>
129                                            <div class="rb-tutor-course-title animated-placeholder"></div>
130                                            <div class="rb-tutor-course-meta animated-placeholder"></div>
131                                            <div class="rb-tutor-course-excerpt animated-placeholder"></div>
132                                            <div class="rb-tutor-course-author-meta animated-placeholder"></div>
133                                            <div class="rb-tutor-course-bottom animated-placeholder"></div>
134                                        </div>
135                                    </div>
136                                <div>
137                            `);
138                        }
139                    },
140                    success: (response) => {
141                        $('.rbt-archive-course-event').empty();
142                        $('.rbt-has-pagination').hide();
143                        $('.rbt-archive-course-event').append(response);
144                        $('.rbt-archive-course-event').append();
145                    },
146                    error: (e) => {
147                        console.log(e);
148                    },
149                    complete: (e) => {
150                    }
151                })
152            } else {
153                $.ajax({
154                    type: 'post',
155                    url: filterAjax.ajaxurl,
156                    data: {
157                        action: 'rbt_ajax_rbt_ajax_get_all_events',
158                        per_page,
159                    },
160                    beforeSend: () => {
161                        $('.rbt-archive-course-event').empty();
162                        for(let i=1;i <= per_page;i++) {
163                            $('.rbt-archive-course-event').append(`
164                                <div class="col-xl-4 col-lg-6 col-md-6 col-12">
165                                    <div class="course-grid-3">
166                                        <div class="rb-tutor-course-card-placeholder">
167                                            <div class="rb-tutor-course-thumbnail animated-placeholder"></div>
168                                            <div class="rb-tutor-course-rating animated-placeholder"></div>
169                                            <div class="rb-tutor-course-title animated-placeholder"></div>
170                                            <div class="rb-tutor-course-meta animated-placeholder"></div>
171                                            <div class="rb-tutor-course-excerpt animated-placeholder"></div>
172                                            <div class="rb-tutor-course-author-meta animated-placeholder"></div>
173                                            <div class="rb-tutor-course-bottom animated-placeholder"></div>
174                                        </div>
175                                    </div>
176                                <div>
177                            `);
178                        }
179                    },
180                    success: (response) => {
181                        $('.rbt-archive-course-event').empty();
182                        $('.rbt-has-pagination').show();
183                        $('.rbt-archive-course-event').append(response);
184                    },
185                    error: (e) => {
186                        console.log(e);
187                    },
188                    complete: (e) => {
189                    }
190                })
191            }
192        });
193        $('.ajax-buy-now-product').on('click', function() {
194            const productId = $(this).data('product_id');
195            const redirect = $(this).data('redirect');
196            $.ajax({
197                type: 'post',
198                url: filterAjax.ajaxurl,
199                data: {
200                    action: 'rbt_ajax_product_buy_now',
201                    productId: productId
202                },
203                beforeSend: () => {
204
205                },
206                success: (response) => {
207                    console.log( response )
208                    // Redirect to the cart page
209                    if( productId > 0 ) {
210                        window.location.href = redirect;
211                    }
212                    
213                },
214                complete: () => {
215                },
216                error: () => {
217
218                }
219            })
220        });
221    })
222    function course_ajax_filter(course_data, ppp = 6, offset = 0, pagination = 0, in_default_load) {
223        let column = $('input[name="rainbow_course_card_column_hidden"]').val();
224        const override_ajax_archive = filterAjax.override_ajax_archive;
225        let course_archive = '';
226        if (typeof filter_course_archive !== 'undefined') {
227            course_archive = filter_course_archive;
228            } else {
229            course_archive = '';
230        }
231        const rbt_course_archive_box_layout = $('#rbt_course_archive_box_layout').val();
232
233        $.ajax({
234            type: "post",
235            url: filterAjax.ajaxurl,
236            data: {
237                action: "course_filter",
238                sortby: course_data['sortby'],
239                tags: course_data['tags'],
240                category: course_data['category'],
241                instructor: course_data['instructor'],
242                style: course_data['archive_style'],
243                rating: course_data['rating'],
244                course_taxonomies: course_data['course_taxonomies'],
245                course_taxonomies_tags: course_data['course_taxonomies_tags'],
246                difficulty: course_data['difficulty'],
247                rbt_course_archive_box_layout,
248                price: course_data['price'],
249                ppp: ppp,
250                offset: offset,
251                column,
252                search: course_data['search'],
253                course_archive
254            },
255            beforeSend: function () {
256                $('.load_more_button .load_more_btn').addClass('disabled');
257                if( course_data['load_more'] == false ) {
258                    $('.course_grid_archive').empty();
259                } else {
260                    if( override_ajax_archive == 1 ) {
261                        $('.course_grid_archive').empty();
262                    }
263                }
264                for(let i=1;i <= 6;i++) {
265                    $('.course_grid_archive').append(`
266                        <div class="course-grid-${column}">
267                            <div class="rb-tutor-course-card-placeholder">
268                                <div class="rb-tutor-course-thumbnail animated-placeholder"></div>
269                                <div class="rb-tutor-course-rating animated-placeholder"></div>
270                                <div class="rb-tutor-course-title animated-placeholder"></div>
271                                <div class="rb-tutor-course-meta animated-placeholder"></div>
272                                <div class="rb-tutor-course-excerpt animated-placeholder"></div>
273                                <div class="rb-tutor-course-author-meta animated-placeholder"></div>
274                                <div class="rb-tutor-course-bottom animated-placeholder"></div>
275                            </div>
276                        </div>
277                    `);
278                }
279            },
280            success: function (response) {
281    
282                $('.load_more_button .load_more_btn').removeClass('disabled');
283                if( course_data['load_more'] == false ) {
284                    $('.course_grid_archive').empty();
285                } else {
286                    if( override_ajax_archive == 1 ) {
287                        $('.course_grid_archive').empty();
288                    }
289                }
290                if (pagination == 1) {
291                    var res_data = "";
292                    var res_data = res_data.concat(response);
293                    $('.course_grid_archive').append(response);
294                    var currentURL = new URL(window.location.href);
295                    if (currentURL.searchParams.has('view') && currentURL.searchParams.get('view') === 'list') {
296                        $('.rbt-course-grid-column').removeClass('active-grid-view');
297                        $('.rbt-course-grid-column').addClass('active-list-view');
298                        $('.rbt-card').addClass('card-list-2');
299                    }
300                } else {
301                    $('.course_grid_archive').append(response);
302                    var currentURL = new URL(window.location.href);
303                    if (currentURL.searchParams.has('view') && currentURL.searchParams.get('view') === 'list') {
304                        $('.rbt-course-grid-column').removeClass('active-grid-view');
305                        $('.rbt-course-grid-column').addClass('active-list-view');
306                        $('.rbt-card').addClass('card-list-2');
307                    }
308                }
309                var total_course = $('.ajax_course_count').val();
310                var ajax_course_from = $('.ajax_course_from').val();
311                var ajax_course_to = $('.ajax_course_to').val();
312                if(parseInt(ajax_course_to) >= parseInt(total_course)) {
313                    ajax_course_to = parseInt(total_course);
314                }
315                $('.rbt-course-archive-count-from').html(ajax_course_from);
316                $('.rbt-course-archive-count-to').html(ajax_course_to);
317                $('.rbt-course-archive-count').html(total_course);
318                var offset_var_count = ppp + offset;
319                if (offset_var_count < total_course) {
320                    $('.load_more_btn').show();
321                    $('.load_more_button').show();
322                } else {
323                    $('.load_more_btn').hide();
324                    $('.load_more_button').hide();
325                }
326
327                // Selected filter block
328                try {
329                    var select_list = "";
330                    var select_element = {};
331                    for (const [key, value] of Object.entries(course_data)) {
332                        if (Array.isArray(value) && value.length == 0 && ($(`.selected_${key}`).length > 0)) {
333                            $(`.selected_${key}`).remove();
334                        }
335
336                        if (value && (key !== "archive_style") && (key !== "filter")) {
337                            if (key in select_element) {
338                                delete thisIsObject(key);
339                            }
340                            if ((Array.isArray(value) && (value.length !== 0)) || (value.length !== 0)) {
341                                select_element[key] = value;
342                            }
343                            
344                        }
345                    }
346
347                    if ($('#author_username_data').length > 0) {
348                        let authorData = $('#author_username_data').val();
349                    
350                        // Check if authorData is empty
351                        if (!authorData || authorData.trim() === '') {
352                            // Initialize authorData as an array with 'test' if it's empty
353                            authorData = JSON.stringify(['test']);
354                        } else {
355                            // Ensure authorData is a valid JSON string
356                            try {
357                                var usernames = JSON.parse(authorData);
358                            } catch (e) {
359                                console.error('Error parsing JSON data:', e);
360                                // Handle JSON parsing error if needed
361                                var usernames = [];
362                            }
363                        }
364                    }
365
366                    for (var [filtered_key, filtered_value] of Object.entries(select_element)) {
367                        if ($(`.selected_${filtered_key}`).length > 0) {
368                            if (Array.isArray(filtered_value)) {
369                                $(`.selected_${filtered_key}`).remove();
370                                filtered_value.map(e => {
371                          
372                                    if ($(`.selected_${filtered_key}.${e}`).length <= 0) {
373                                        if(filtered_key == 'instructor' && $('#author_username_data').length > 0 ) {
374                                            usernames.forEach(function(username, index) {
375                                                e = username;
376                                                
377                                                let itemToAdd= `<li class="selected_${filtered_key} ${e}" data-key="${e}">${e} </li>`;
378
379                                                if (!select_list.includes(itemToAdd)) {
380                                                    select_list = select_list.concat(itemToAdd);
381                                                }
382                                            });
383                                        } else {
384                                            select_list = select_list.concat(`<li class="selected_${filtered_key} ${e}" data-key="${e}">${e} </li>`);
385                                        }
386                                    }
387                                });
388
389                            } else {
390                                if(filtered_key == 'rating') {
391                                    if( filtered_value > 0 ) {
392                                        filtered_value = filtered_value + " Star";
393                                    } else {
394                                        filtered_value = "Not Rated";
395                                    }
396                                }
397                                else if(filtered_value == 'ASC') {
398                                    filtered_value = "Oldest";
399                                }
400                                else if(filtered_value == 'DESC') {
401                                    filtered_value = "Latest";
402                                }
403                                else if(filtered_key == 'instructor' && $('#author_username_data').length > 0 )  {
404                                    usernames.forEach(function(username, index) {
405                                        filtered_value = username;
406                                       $(`.selected_${filtered_key}`).html(`${filtered_value} `);
407                                    });
408                                }
409                               
410                                $(`.selected_${filtered_key}`).html(`${filtered_value} `);
411                                
412                            }
413
414                        } else {
415                            
416                           
417                            
418                            if( filtered_key == 'load_more') {
419                                filtered_value = 'Appned';
420                            } else if(filtered_key == 'rating') {
421                                if( filtered_value > 0 ) {
422                                    filtered_value = filtered_value + " Star";
423                                } else {
424                                    filtered_value = "Not Rated";
425                                }
426                                
427                            } else if(filtered_value == 'ASC') {
428                                filtered_value = "Oldest";
429                            }
430                            else if(filtered_value == 'DESC') {
431                                filtered_value = "Latest";
432                            }
433                            else if(filtered_key == 'instructor' && $('#author_username_data').length > 0 ) {
434                               
435                                usernames.forEach(function(username, index) {
436                                    filtered_value = username;
437                                    let itemToAdd = `<li class="selected_${filtered_key} ${filtered_value}" data-key="${filtered_value}">${filtered_value}</li>`;
438                                    console.log(select_list);
439                                    let i = 0;
440                                    if (!select_list.includes(itemToAdd)) {
441                                        select_list = select_list.concat(itemToAdd);
442                                        i++;
443                                    }
444                                   
445                                    
446                                });
447                            }
448
449                            if ((filtered_key != 'instructor' && filtered_value !== "desc" && filtered_key != "course_taxonomies") && (filtered_key != "course_taxonomies_tags" && filtered_key  && filtered_key != 'load_more')) {
450                                select_list = select_list.concat(`<li class="selected_${filtered_key} ${filtered_value}" data-key="${filtered_value}">${filtered_value} </li>`);
451                            }
452                        }
453                    }
454
455                    $('.selected_course_filters ul').append(select_list);
456
457                    // Now check if there are any <li> elements and add the "Reset Filter" button if necessary
458                    if ($('.selected_course_filters ul li').length > 0 && ($('button.filter_reset').length <= 0)) {
459                        $('.selected_course_filters ul').last().prepend("<button class='btn filter_reset'>Reset Filter</button>");
460                    }
461
462                    if ($('.selected_course_filters ul li').length <= 0) {
463                        $('button.filter_reset').remove();
464                    }
465
466                } catch (e) {
467                   console.log(e);
468                }
469                        // Function to reset dropdowns
470            function resetDropdowns() {
471                $('.dropdown-toggle').each(function() {
472                    // Update text inside filter-option-inner-inner
473                    var $inner = $(this).find('.filter-option-inner-inner');
474                    var currentText = $inner.text().trim();
475                    
476                    // Check current text and update accordingly
477                    if (currentText === 'Latest' || currentText === 'Oldest') {
478                        $inner.text('Default');
479                        $(this).attr('title', 'Default'); // Update title attribute
480                    } else if (currentText === 'Free' || currentText === 'Paid') {
481                        $inner.text('All');
482                        $(this).attr('title', 'All'); // Update title attribute
483                    } 
484                });
485            }
486            function resetDropdowns2() {
487                $('.dropdown.bootstrap-select.show-tick.form-select .dropdown-toggle').each(function() {
488                    // Find the inner text element
489                    var $inner = $(this).find('.filter-option-inner-inner');
490                    $inner.text('Nothing selected');
491                    $(this).attr('title', 'Nothing selected');
492                    
493                });
494            }
495                // Bind resetDropdowns function to the Reset Filter button
496                var timeoutID;
497
498                $(document).on('click', 'button.filter_reset', function() {
499                
500                    // Clear any existing timeout
501                    if (timeoutID) {
502                        clearTimeout(timeoutID);
503                    }
504                
505                    // Set a new timeout
506                    timeoutID = setTimeout(function() {
507                        resetDropdowns();
508                        resetDropdowns2();
509                        $('.rbt-sidebar-list-wrapper.categories-list-check input[type="checkbox"]').prop('checked', false);
510
511                    // Uncheck all radio buttons in rating and price lists
512                    $('.rbt-sidebar-list-wrapper.rating-list-check input[type="radio"]').prop('checked', false);
513
514                    // Uncheck all radio buttons in difficulty levels and features lists
515                    $('.rbt-sidebar-list-wrapper.lavels-list-check input[type="radio"]').prop('checked', false);
516                    $('.rbt-sidebar-list-wrapper.features-list-check input[type="radio"]').prop('checked', false);
517                    $('.rbt-sidebar-list-wrapper.instructor-list-check input[type="radio"]').prop('checked', false);
518
519                    // Reset price radio buttons - check only the first one
520                    $('.rbt-sidebar-list-wrapper.prices-list-check input[type="radio"]').each(function(index) {
521                        $(this).prop('checked', index === 0); // Check only the first item
522                    });
523                    }, 300);
524                });
525
526                
527                /**
528                 * Show warning if success is false
529                 */
530                if( response?.data?.markup.length > 0 ) {
531                    const markup = response?.data?.markup;
532                    const isCourse_not_Found = $(markup).hasClass('rainbow-course-not-found-error');
533                    console.log(isCourse_not_Found);
534                    if( isCourse_not_Found ) {
535                        $('.rbt-course-archive-count-from').html(0);
536                        $('.rbt-course-archive-count-to').html(0);
537                        $('.rbt-course-archive-count').html(0);
538                    }
539                    $('.course_grid_archive').empty();
540                    $('.course_grid_archive').html(markup);
541                }
542               
543            },
544            error: function (response) {
545                console.log(response)
546            },
547            complete: function () {
548                $('.rb-tutor-course-card-placeholder').closest('.course-grid-' + column).hide();
549            }
550        })
551
552    }
553
554
555    var ppp = 6;
556    var g_offset = 6;
557    var flag = 1;
558    var pagination = 1;
559
560    $(document).ready(function () {
561        const course_data = {};
562        course_data['sortby'] = "";
563        course_data['category'] = [];
564        course_data['tags'] = [];
565        course_data['load_more'] = false;
566        course_data['rating'] = [];
567        course_data['instructor'] = [];
568        course_data['archive_style'] = $('.archive_style').val();
569        course_data['course_taxonomies'] = $('.archive_course_taxonomy').val();
570        course_data['course_taxonomies_tags'] = $('.archive_course_taxonomy_tags').val();
571        course_data['difficulty'] = "";
572        course_data['filter'] = false;
573        course_data['price'] = "";
574        course_data['search'] = "";
575        $('ul.rbt-sidebar-list-wrapper.rating-list-check label').on('click', function() {
576            $(".rbt-single-widget.rbt-single-rating-widget-padding.rbt-widget-rating").slideUp();
577        })
578        $('.form-check-input').click(function () {
579            g_offset = 6;
580            if ($(this).attr('data-var') == "sortby") {
581                if ($(this).is(":checked")) {
582                    course_data['sortby'] = $(this).attr('data-id');
583                } else {
584                    course_data['sortby'] = "";
585                }
586
587            } else if ($(this).attr('data-var') == "category") {
588                if ($(this).is(":checked")) {
589                    course_data['category'].push($(this).attr('data-id'));
590                } else {
591                    for (var i = 0; i < course_data['category'].length; i++) {
592                        if (course_data['category'][i] === $(this).attr('data-id')) {
593
594                            course_data['category'].splice (i, 1);
595                        }
596                    }
597                }
598            }else if ($(this).attr('data-var') == "price") {
599                if ($(this).is(":checked")) {
600                    course_data['price'] = $(this).attr('data-id');
601                } else {
602                    course_data['price'] = "";
603                }
604            }else if ($(this).attr('data-var') == "tags") {
605                if ($(this).is(":checked")) {
606                    course_data['tags'].push($(this).attr('data-id'));
607                } else {
608                    for (var i = 0; i < course_data['tags'].length; i++) {
609                        if (course_data['tags'][i] === $(this).attr('data-id')) {
610
611                            course_data['tags'].splice(i, 1);
612                        }
613                    }
614                }
615            } else if ($(this).attr('data-var') == "instructor") {
616                if ($(this).is(":checked")) {
617                    course_data['instructor'].push($(this).attr('data-id'));
618                } else {
619                    for (var i = 0; i < course_data['instructor'].length; i++) {
620                        if (course_data['instructor'][i] === $(this).attr('data-id')) {
621                            course_data['instructor'].splice(i, 1);
622                        }
623                    }
624                }
625            }
626
627            else if ($(this).attr('data-var') == "difficulty") {
628                if ($(this).is(":checked")) {
629                    course_data['difficulty'] = $(this).attr('data-id');
630                } else {
631                    course_data['difficulty'] = "";
632                }
633
634            }
635            course_data['filter'] = true;
636            $('.course_grid_archive').empty();
637            course_ajax_filter(course_data);
638        });
639
640        
641        //Style 2
642        $('.form-select, .rbt-list input').on('change', function(e) {
643            g_offset = 6;
644            if($(this).attr('data-var') === 'sortby'){
645                course_data['sortby'] = $(e.target).val()
646            }
647            if($(this).attr('data-var') === 'sortrating'){
648                course_data['rating'] = $(e.target).val();
649            }
650            if ($(this).attr('data-var') === 'category') {
651                course_data['category'] = $(this).val();
652            }
653            if($(this).attr('data-var') === 'instructor'){
654                course_data['instructor'] = $(this).val();
655            }
656            if($(this).attr('data-var') === 'price'){
657                course_data['price'] = $(e.target).val()
658            }
659            if($(this).attr('data-var') === 'difficulty'){
660                course_data['difficulty'] =  $(e.target).val();
661            }
662            course_data['filter'] = true;
663            course_data['load_more'] = false;
664            course_ajax_filter(course_data);
665        });
666        $('.rbt-portfolio-filter li button').on( 'click', function() {
667                $('.course_grid_archive').empty();
668                $('.load_more_btn').addClass('d-none');
669                course_data['category'] = [];
670                course_data['category'].push($(this).data('cat_slug'));
671                course_data['load_more'] = false
672                course_ajax_filter(course_data);
673        } );
674
675        //Search Filter
676        $('.rbt-banner-course-filter-search').on('submit', function(e){
677            e.preventDefault();
678            if($('.course_search_input').val().length > 0){
679                course_data['search'] = $('.course_search_input').val();
680                course_data['filter'] = true;
681                course_data['load_more'] = false
682                $('.course_grid_archive').empty();
683                course_ajax_filter(course_data);
684            } else {
685                alert('Please insert value first');
686            }
687        });
688
689        $(document).on('click', ".filter_reset", function () {
690            course_data['load_more'] = false
691            $('.course_grid_archive').empty();
692            Object.keys(course_data).map(e => {
693                if (Array.isArray(course_data[e])) {
694                    course_data[e] = [];
695                } else if (e != "archive_style") {
696                    course_data[e] = "";
697                }
698            });
699
700            $(this).parents('.course_archive_page_identifier').find('.filter_panel').slideToggle();
701
702            $(".filter_panel_common .form-check-input").each(function (i) {
703                this.checked = false;
704            });
705
706            $('.selected_course_filters ul').empty();
707            course_ajax_filter(course_data);
708
709        });
710
711        $(".load_more_btn").click(function () {
712            // Check if the 'view' parameter exists and is set to 'list'
713            course_data['load_more'] = true;
714            course_ajax_filter(course_data, ppp, g_offset, pagination);
715            if (flag == 1) {
716                g_offset += ppp;
717            }
718        });
719
720        if ($('.course_archive_page_identifier').length) {
721            course_data['sortby'] = tutor_course_objects.default_course_order;
722            course_data['load_more'] = false;
723            course_ajax_filter(course_data);
724        }
725    });
726
727
728    // rtl ajax
729
730    jQuery(document).ready(function($) {
731        // Click event for .demo-rtl button (Set value to 1)
732        $('.demo-rtl').on('click', function() {
733            // Set the RTL value to 1
734            var rtlValue = 1;
735            
736            // AJAX call
737            $.ajax({
738                url: filterAjax.ajaxurl,
739                type: 'POST',
740                data: {
741                    action: 'histudy_set_rtl_cookie', 
742                    rtl_enable: rtlValue // Pass the RTL value
743                },
744                success: function(response) {
745                    if (response.success) {
746                       
747                        var rtlValue = response.data.rtl_enable;
748                       
749                        if (rtlValue === '1') {
750                            $('#main-rtl-style-css').remove();
751
752                            // Prevent caching issues with timestamp
753                            var timestamp = new Date().getTime();
754
755                            // Dynamically load RTL stylesheet
756                            $('head').append('<link id="main-rtl-style-cssfarid" rel="stylesheet" href="http://histudy-new.local/wp-content/themes/histudy/assets/css/rtl.css?v=' + timestamp + '" type="text/css" />');
757                            console.log('RTL style loaded.');
758                        }
759                        setRtlCookie(rtlValue);
760                    } else {
761                        console.error(response.data.message); // Log error message
762                    }
763                },
764                error: function(xhr, status, error) {
765                    console.error('AJAX error:', error);
766                }
767            });
768        });
769    
770        // Click event for .demo-lrt button (Set value to 0)
771        $('.demo-lrt').on('click', function() {
772            // Set the RTL value to 0
773            var rtlValue = 0;
774            
775            // AJAX call
776            $.ajax({
777                url: filterAjax.ajaxurl,
778                type: 'POST',
779                data: {
780                    action: 'histudy_set_rtl_cookie',
781                    rtl_enable: rtlValue
782                },
783                success: function(response) {
784                    console.log(response)
785                    if (response.success) {
786                       
787                        var rtlValue = response.data.rtl_enable;
788                       
789                        if (rtlValue === '1') {
790                            // Dynamically load RTL stylesheet
791                            $('head').append('<link id="histudy-rtl-css-dynamic" rel="stylesheet" href="http://histudy-new.local/wp-content/themes/histudy/assets/css/rtl.css" type="text/css" />');
792                            console.log('RTL style loaded.');
793                        }
794                        setRtlCookie(rtlValue);
795                    } else {
796                        console.error(response.data.message); // Log error message
797                    }
798                },
799                error: function(xhr, status, error) {
800                    console.error('AJAX error:', error);
801                }
802            });
803        });
804    
805        // Function to set the RTL cookie using JavaScript
806        function setRtlCookie(rtl_value) {
807            document.cookie = "rtl_enable=" + rtl_value + "; path=/; max-age=86400"; // Set for 24 hours
808            updateLayoutBasedOnRtl(rtl_value);
809        }
810    
811        // Update the layout based on the RTL value
812        function updateLayoutBasedOnRtl(rtl_value) {
813            if (rtl_value === '1') {
814                document.body.setAttribute('dir', 'rtl');
815            } else {
816                document.body.setAttribute('dir', 'ltr');
817            }
818        }
819    });
820
821
822})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.