PageSourceSearch

https://www.ipo.co.il/wp-content/themes/wpstack-child/includes/aja…/ajax_get_events.js?ver=1788902749

js ipo.co.il collected 2026-10-02 05:12:36 UTC 9,793 bytes, 319 lines download raw bytes

1jQuery(window).on('load', function() {
2
3    (function($) {
4
5        function request_events_ajax($events) {
6
7            $ajax_container = $('.ajax-calendar-events');
8            $ajax_container.addClass('loading');
9            $ajax_container.closest('.calendar_area').addClass('section-loading');
10
11            $data = {
12                action: 'ajax_get_events',
13                events: $events,
14            };
15
16            console.log('starting get_events ajax for events:' + $events);
17
18            $.ajax({
19                url: ajax_get_events.ajaxurl,
20                type: "get",
21                dataType: "json",
22                data: $data,
23                success: function(response) {
24
25                    console.log('AJAX success, messages ' + response.message);
26
27                    $ajax_container.html(response.data.content);
28
29                    if (!response.data.count) {
30                        $ajax_container.addClass('no-more-results');
31                    }
32
33                    reveal_events($ajax_container);
34
35                    //$ajax_container.removeClass('loading');
36                    $ajax_container.closest('.calendar_area').removeClass('section-loading');
37
38                },
39                error: function(xhr, ajaxOptions, thrownError) {
40                    console.log('AJAX Failed ' + xhr.status);
41                    console.log(xhr.responseText);
42                    $ajax_container.removeClass('loading');
43                    $ajax_container.closest('.calendar_area').removeClass('section-loading');
44
45                }
46            });
47
48
49        }
50
51
52
53        $('body').on('click', '[data-ajax-trigger][data-events] label', function(e) {
54            console.log('clicked');
55            $events = $(this).closest('[data-ajax-trigger][data-events]').attr('data-events');
56
57            console.log($events);
58            // if ($events)
59            //     request_events_ajax($events);
60
61
62            toggleDaysEvents($events);
63
64        });
65
66        $(document).on('click', '.calendar_area .splide__arrow[disabled] svg', function(e) {
67            //$(document).on('click', '.calendar_area .splide__arrow svg', function(e) {
68
69            // ---- ADDED ----
70            // Check if .splide__list, which is the child of .splide__track is at the edge of the container
71            // If it is, then we need to load the next month
72            /*
73            $parent = $(this).closest('.splide__arrow');
74            $splide_track = $(this).closest('.splide__track');
75            $splide_list = $splide_track.find('.splide__list');
76
77            $splide_list_width = $splide_list.width();
78            $splide_track_width = $splide_track.width();
79
80            //$splide_list_left = $splide_list.position().left;
81            // Find different solution. $splide_list is not defined
82            $splide_list_left = $splide_track.position().left;
83            $splide_list_right = $splide_list_left + $splide_list_width;
84
85            $splide_track_left = $splide_track.position().left;
86            $splide_track_right = $splide_track_left + $splide_track_width;
87
88            console.log('splide_list_left ' + $splide_list_left);
89            console.log('splide_list_right ' + $splide_list_right);
90            console.log('splide_track_left ' + $splide_track_left);
91            console.log('splide_track_right ' + $splide_track_right);
92
93            if ($parent.hasClass('splide__arrow--prev') && $splide_list_left >= $splide_track_left) {
94                e.preventDefault();
95                console.log('prev');
96                $('.calendar_area .ajax-get-month-trigger .prev.trigger').trigger('click');
97                $parent.addClass('load-next');
98
99            } else if ($parent.hasClass('splide__arrow--next') && $splide_list_right <= $splide_track_right) {
100                e.preventDefault();
101                console.log('next');
102                $('.calendar_area .ajax-get-month-trigger .next.trigger').trigger('click');
103                $parent.addClass('load-next');
104
105            }
106
107
108            */
109            // ---- ----- ----
110
111
112            $parent = $(this).closest('.splide__arrow');
113
114            if ($parent.hasClass('splide__arrow--prev') && $parent.hasClass('load-next')) {
115                $('.calendar_area .ajax-get-month-trigger .prev.trigger').trigger('click');
116            } else if ($parent.hasClass('splide__arrow--next') && $parent.hasClass('load-next')) {
117                $('.calendar_area .ajax-get-month-trigger .next.trigger').trigger('click');
118            }
119
120            $parent.addClass('load-next');
121
122        });
123
124    })(jQuery);
125
126});
127
128function toggleDaysEvents($events) {
129
130    console.log('running toggleDaysEvents');
131
132    $ajax_container = $('.ajax-calendar-events');
133    $ajax_container.addClass('loading');
134    $ajax_container.closest('.calendar_area').addClass('section-loading');
135
136    if ($events) {
137
138        // hide .events-no-results
139        $('.calendar_area .events-no-results').hide();
140
141        $i = 1;
142
143        $events = $events.split(',');
144
145        console.log($events);
146
147
148        $ajax_container.find('.loop-calendar-horizontal-event').each(function(k, v) {
149
150
151            //if ($events.indexOf($(this).attr('data-event_id')) == -1) {
152            // If the event is not in the list of events to show, hide it. 
153            // The 'data-event_id' can be ab implode of multiple event ids, so we need to check each one.
154
155            $event_id = $(this).attr('data-event_id');
156            // Check if coma separated list
157            if ($event_id.indexOf(',') != -1) {
158                $event_id = $event_id.split(',');
159            } else {
160                $event_id = [$event_id];
161            }
162
163            $event_id = $event_id.filter(function(e) {
164                return e
165            });
166
167            $show = false;
168
169            $event_id.forEach(function($id) {
170
171                if ($events.indexOf($id) != -1) {
172
173                    $show = true;
174
175                }
176
177            });
178
179            if (!$show) {
180
181                $(this).hide();
182                $(this).removeClass('revealed');
183
184            } else {
185
186                console.log('showing ' + $(this).attr('data-event_id'));
187
188                $(this).show();
189
190
191                var el = this;
192                var speed = 200;
193
194                $c = $i + 1;
195
196                // if(window.innerWidth > 1600){
197                // $ajax_container.removeClass('loading');
198                // $ajax_container.closest('.calendar_area').removeClass('section-loading');
199
200                // remove load-next class from arrows
201                $('.calendar_area .splide__arrow').removeClass('load-next');
202                //    }
203
204                jQuery(el).addClass('revealed');
205                console.log('revealed ' + $i + ' with delay ' + $c * speed);
206
207
208                $i++;
209            }
210
211
212
213
214
215        });
216
217
218
219        // unslick first 
220        if ($('.calendar-slider').hasClass('slick-initialized')) {
221            $('.calendar-slider').slick('unslick');
222        }
223
224        $ajax_container.addClass('loading');
225
226        setTimeout(() => {
227
228            $ajax_container.closest('.calendar_area').addClass('section-loading');
229
230            calendar_slider();
231
232            $('.calendar-slider .loop-calendar-horizontal-event:not(.revealed)').hide();
233
234            $ajax_container.removeClass('loading');
235            $ajax_container.closest('.calendar_area').removeClass('section-loading');
236
237            // remove load-next class from arrows
238            $('.calendar_area .splide__arrow').removeClass('load-next');
239
240        }, 1000);
241
242    } else {
243        console.log('no events');
244
245        // unslick first 
246        if ($('.calendar-slider').hasClass('slick-initialized')) {
247            $('.calendar-slider').slick('unslick');
248        }
249
250        setTimeout(() => {
251
252            // hide all events
253            $ajax_container.find('.loop-calendar-horizontal-event').hide();
254            $ajax_container.find('.loop-calendar-horizontal-event').removeClass('revealed');
255
256            $ajax_container.removeClass('loading');
257            $ajax_container.closest('.calendar_area').removeClass('section-loading');
258
259            // remove load-next class from arrows
260            $('.calendar_area .splide__arrow').removeClass('load-next');
261
262            // show .events-no-results
263            $('.calendar_area .events-no-results').show();
264
265        }, 1000);
266
267    }
268
269
270}
271
272function calendar_slider() {
273
274    console.log('running calendar_slider');
275    $rtl = true;
276    // Check html lang
277    if ($('html').attr('lang') == 'en-US') {
278        $rtl = false;
279    }
280    // Guard against double-init: re-initializing Slick on an already
281    // initialized element skips buildOut() and leaves $slides null, which
282    // throws "initADA: Cannot read properties of null (reading 'add')".
283    if ($('.calendar-slider').hasClass('slick-initialized')) {
284        $('.calendar-slider').slick('unslick');
285    }
286    $('.calendar-slider').not('.slick-initialized').slick({
287        slidesToShow: 1,
288        slidesToScroll: 1,
289        // autoplay: true,
290        autoplaySpeed: 2000,
291        arrows:  true,
292  nav: true,
293    navText: [
294                    '<img src="/wp-content/uploads/2022/09/arrow_right.svg" alt="">',
295                    '<img src="/wp-content/uploads/2022/09/arrow_left.svg" alt="">'
296                ],
297infinite: false,
298        dots: false,
299        rtl: $rtl,
300        slide: '.revealed',
301        variableWidth: true,
302        swipe: true,
303        responsive: [{
304                breakpoint: 990,
305                settings: {
306                    slidesToShow: 2,
307                }
308            },
309            {
310                breakpoint: 600,
311                settings: {
312                    slidesToShow: 1,
313                    variableWidth: false,
314                }
315            }
316        ]
317    });
318
319}

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.