PageSourceSearch

https://www.chi.is/wp-content/plugins/mage-eventpress/assets/helper/mp_style/mpwem_global.js?ver=5.7.0

js chi.is collected 2026-09-24 11:11:04 UTC 49,534 bytes, 1,069 lines download raw bytes

1//======================================================Price Format==============//
2function mpwem_price_format(price) {
3    if (typeof price === 'string') {
4        price = Number(price);
5    }
6    price = price.toFixed(mpwem_num_of_decimal);
7    let total_part = price.toString().split(".");
8    total_part[0] = total_part[0].replace(/\B(?=(\d{3})+(?!\d))/g, mpwem_currency_thousands_separator);
9    price = total_part.join(mpwem_currency_decimal);
10    let price_text = '';
11    if (mpwem_currency_position === 'right') {
12        price_text = price + mpwem_currency_symbol;
13    } else if (mpwem_currency_position === 'right_space') {
14        price_text = price + ' ' + mpwem_currency_symbol;
15    } else if (mpwem_currency_position === 'left') {
16        price_text = mpwem_currency_symbol + price;
17    } else {
18        price_text = mpwem_currency_symbol + ' ' + price;
19    }
20    return price_text;
21}
22//=======================================================Loader==============//
23function mpwem_loader(target) {
24    if (target.find('div[class*="dLoader"]').length < 1) {
25        target.addClass('pRelative').append('<div class="dLoader"><span class="fas fa-spinner fa-pulse"></span></div>');
26    }
27}
28function mpwem_loader_xs(target) {
29    if (target.find('div[class*="dLoader"]').length < 1) {
30        target.addClass('pRelative').append('<div class="dLoader_xs"><span class="fas fa-spinner fa-pulse"></span></div>');
31    }
32}
33function mpwem_loader_spin(target) {
34    target.css('position', 'relative');
35    target.append('<div class="spinner_loading"><div class="icon_loader"><span class="fas fa-spinner fa-pulse"></span></div></div>');
36}
37function mpwem_loader_spin_xs(target) {
38    target.css('position', 'relative');
39    target.append('<div class="spinner_loading"><div class="icon_loader_xs"><span class="fas fa-spinner fa-pulse"></span></div></div>');
40}
41function mpwem_loader_spin_remove(target) {
42    target.find('.spinner_loading').remove();
43}
44function mpwem_loader_simple(target) {
45    if (target.find('div[class*="simpleSpinner"]').length < 1) {
46        target.addClass('pRelative').append('<div class="simpleSpinner"><span class="fas fa-spinner fa-pulse"></span></div>');
47    }
48}
49function mpwem_loader_simple_remove(target = jQuery('body')) {
50    target.removeClass('noScroll');
51    target.removeClass('pRelative').find('div[class*="simpleSpinner"]').remove();
52}
53function mpwem_loader_body() {
54    let body = jQuery('body');
55    if (body.find('div[class*="dLoader"]').length < 1) {
56        body.addClass('noScroll').append('<div class="dLoader _p_fixed"><span class="fas fa-spinner fa-pulse"></span></div>');
57    }
58}
59function mpwem_loader_body_xs() {
60    let body = jQuery('body');
61    if (body.find('div[class*="dLoader"]').length < 1) {
62        body.addClass('noScroll').append('<div class="dLoader_xs _p_fixed"><span class="fas fa-spinner fa-pulse"></span></div>');
63    }
64}
65function mpwem_loader_circle(target) {
66    if (target.find('div[class*="dLoader"]').length < 1) {
67        target.addClass('pRelative').append('<div class="dLoader border_spin_loader"><span class="circle"></span></div>');
68    }
69}
70function mpwem_loader_circle_xs_circle(target) {
71    if (target.find('div[class*="dLoader"]').length < 1) {
72        target.addClass('pRelative').append('<div class="dLoader_xs border_spin_loader"><span class="circle"></span></div>');
73    }
74}
75function mpwem_loader_remove(target = jQuery('body')) {
76    target.removeClass('noScroll');
77    target.removeClass('pRelative').find('div[class*="dLoader"]').remove();
78}
79function mpwem_loader_placeholder(target) {
80    target.addClass('mpwem_loader_placeholder');
81}
82function mpwem_loader_placeholder_remove(target) {
83    target.each(function () {
84        target.removeClass('mpwem_loader_placeholder');
85    })
86}
87function mpwem_mark_slider_areas_ready() {
88    jQuery('.mpwem_slider_area.is-loading').each(function () {
89        var $area = jQuery(this);
90        $area.find('.sliderAllItem [data-bg-image], .sliderShowcase [data-bg-image], .post_thumb img').each(function () {
91            var $el = jQuery(this);
92            if ($el.is('img')) {
93                return;
94            }
95            var bg_url = $el.data('bg-image');
96            if (!bg_url) {
97                return;
98            }
99            if ($el.css('background-image') === 'none' || !$el.css('background-image')) {
100                $el.css({
101                    'background-image': 'url("' + bg_url + '")',
102                    'background-size': 'cover',
103                    'background-position': 'center center',
104                    'background-repeat': 'no-repeat'
105                });
106            }
107        });
108        var $sliderAll = $area.find('.sliderAllItem').first();
109        if ($sliderAll.length && typeof mpwem_slider_resize === 'function') {
110            mpwem_slider_resize($sliderAll);
111        }
112        $area.removeClass('is-loading').addClass('is-ready').attr('data-slider-ready', '1');
113    });
114}
115//======================================================Page Scroll==============//
116function mpwem_page_scroll_to(target) {
117    jQuery('html, body').animate({
118        scrollTop: target.offset().top -= 150
119    }, 1000);
120}
121//====================================================Load Date picker==============//
122// Shared picker options used by both the public ticket-booking page
123// (mpwem_script.js reads window.mpwemDateData) and the admin popup
124// (this file). The data is emitted as <script>window.mpwemDateData =
125// {...}</script> inline by MPWEM_Global_Function::enqueue_date_picker()
126// on every popup AJAX render, so opening popup A then popup B always
127// reuses popup B's restrictions.
128function mpwem_date_picker_options() {
129    var data = (typeof window.mpwemDateData !== 'undefined') ? window.mpwemDateData : null;
130    var availableDates = (data && Array.isArray(data.availableDates)) ? data.availableDates : [];
131    var opts = {
132        dateFormat: mpwem_date_format,
133        //showButtonPanel: true,
134        minDate: new Date(),
135        autoSize: true,
136        changeMonth: true,
137        changeYear: true,
138        yearRange: '1900:' + (new Date().getFullYear() + 10), // from 1900 to 10 years ahead
139        onSelect: function (dateString, data) {
140            var date = data.selectedYear + '-' + ('0' + (parseInt(data.selectedMonth) + 1)).slice(-2) + '-' + ('0' + parseInt(data.selectedDay)).slice(-2);
141            jQuery(this).closest('label').find('input[type="hidden"]').val(date).trigger('change');
142        },
143    };
144    if (data && data.minDate && typeof data.minDate.year === 'number') {
145        opts.minDate = new window.Date(data.minDate.year, data.minDate.month, data.minDate.day);
146    }
147    if (data && data.maxDate && typeof data.maxDate.year === 'number') {
148        opts.maxDate = new window.Date(data.maxDate.year, data.maxDate.month, data.maxDate.day);
149    }
150    if (availableDates.length > 0) {
151        opts.beforeShowDay = function (date) {
152            var d = date.getDate();
153            var m = date.getMonth() + 1;
154            var y = date.getFullYear();
155            var dmy = d + '-' + m + '-' + y;
156            if (jQuery.inArray(dmy, availableDates) !== -1) {
157                return [true, "", "Available"];
158            }
159            return [false, "", "Unavailable"];
160        };
161    }
162    return opts;
163}
164function mpwem_load_date_picker(parent = jQuery('.mpwem_style')) {
165    parent.find(".date_type.hasDatepicker").each(function () {
166        jQuery(this).removeClass('hasDatepicker').attr('id', '').removeData('datepicker').unbind();
167    }).promise().done(function () {
168        parent.find(".date_type").datepicker({
169            dateFormat: mpwem_date_format,
170            //showButtonPanel: true,
171            autoSize: true,
172            changeMonth: true,
173            changeYear: true,
174            yearRange: '1900:' + (new Date().getFullYear() + 10), // from 1900 to 10 years ahead
175            onSelect: function (dateString, data) {
176                let date = data.selectedYear + '-' + ('0' + (parseInt(data.selectedMonth) + 1)).slice(-2) + '-' + ('0' + parseInt(data.selectedDay)).slice(-2);
177                jQuery(this).closest('label').find('input[type="hidden"]').val(date).trigger('change');
178            },
179        });
180        // parent.find("#mep_load_date_picker").datepicker({
181        //     dateFormat: mpwem_date_format,
182        //     //showButtonPanel: true,
183        //     autoSize: true,
184        //     changeMonth: true,
185        //     changeYear: true,
186        //     yearRange: '1900:' + (new Date().getFullYear() + 10), // from 1900 to 10 years ahead
187        //     onSelect: function (dateString, data) {
188        //         let date = data.selectedYear + '-' + ('0' + (parseInt(data.selectedMonth) + 1)).slice(-2) + '-' + ('0' + parseInt(data.selectedDay)).slice(-2);
189        //         jQuery(this).closest('label').find('input[type="hidden"]').val(date).trigger('change');
190        //     },
191        // });
192    });
193    parent.find(".new-date_type.hasDatepicker").each(function () {
194        jQuery(this).removeClass('hasDatepicker').attr('id', '').removeData('datepicker').unbind();
195    }).promise().done(function () {
196        parent.find(".new-date_type").datepicker(mpwem_date_picker_options());
197    });
198    parent.find(".new-particular-date_type.hasDatepicker").each(function () {
199        jQuery(this).removeClass('hasDatepicker').attr('id', '').removeData('datepicker').unbind();
200    }).promise().done(function () {
201        parent.find(".new-particular-date_type").datepicker({
202            dateFormat: mpwem_date_format,
203            //showButtonPanel: true,
204            minDate: new Date(),
205            autoSize: true,
206            changeMonth: true,
207            changeYear: true,
208            yearRange: '1900:' + (new Date().getFullYear() + 10), // from 1900 to 10 years ahead
209            onSelect: function (dateString, data) {
210                let date = data.selectedYear + '-' + ('0' + (parseInt(data.selectedMonth) + 1)).slice(-2) + '-' + ('0' + parseInt(data.selectedDay)).slice(-2);
211                jQuery(this).closest('label').find('input[type="hidden"]').val(date).trigger('change');
212            },
213        });
214    });
215    parent.find(".new-date_type-new.hasDatepicker").each(function () {
216        jQuery(this).removeClass('hasDatepicker').attr('id', '').removeData('datepicker').unbind();
217    }).promise().done(function () {
218        parent.find(".new-date_type-new").datepicker({
219            dateFormat: mpwem_date_format,
220            //showButtonPanel: true,
221            //minDate: new Date(),
222            autoSize: true,
223            changeMonth: true,
224            changeYear: true,
225            yearRange: '1900:' + (new Date().getFullYear() + 10), // from 1900 to 10 years ahead
226            onSelect: function (dateString, data) {
227                let date = data.selectedYear + '-' + ('0' + (parseInt(data.selectedMonth) + 1)).slice(-2) + '-' + ('0' + parseInt(data.selectedDay)).slice(-2);
228                jQuery(this).closest('label').find('input[type="hidden"]').val(date).trigger('change');
229            },
230        });
231    });
232}
233//========================================================Alert==============//
234function mpwem_alert($this, attr = 'alert') {
235    alert($this.data(attr));
236}
237//=====================================================Load initial=================//
238(function ($) {
239    "use strict";
240    $(document).ready(function () {
241        mpwem_load_date_picker();
242        $("div.mpwem_style .date_type").on("keydown", function (e) {
243            e.preventDefault();
244        });
245        $("div.mpwem_style .mpwem_date_reset").on("click", function () {
246            let parent = $(this).closest('label');
247            parent.find('input').val('');
248            parent.find('.date_type.hasDatepicker').datepicker('setDate', null);
249        });
250    });
251}(jQuery));
252//====================================================================Load Bg Image=================//
253function mpwem_load_bg_image() {
254    jQuery('body').find('div.mpwem_style [data-bg-image]:visible').each(function () {
255        let target = jQuery(this);
256        if (target.closest('.sliderAllItem').length === 0) {
257            let width = target.outerWidth();
258            let height = target.outerHeight();
259            if (target.css('background-image') === 'none' || width === 0 || height === 0) {
260                let bg_url = target.data('bg-image');
261                if (!bg_url || bg_url.width === 0 || bg_url.width === 'undefined') {
262                    bg_url = mpwem_empty_image_url;
263                }
264                mpwem_resize_bg_image_area(target, bg_url);
265                target.css('background-image', 'url("' + bg_url + '")').promise().done(function () {
266                    mpwem_loader_remove(jQuery(this));
267                });
268            }
269        }
270    });
271    jQuery('body').find('div.mpwem_style .sliderAllItem').each(function () {
272        let target = jQuery(this);
273        mpwem_slider_resize(target)
274    });
275    return true;
276}
277function mpwem_slider_resize(target) {
278    let all_height = [];
279    let totalHeight = 0;
280    let imgCount = 0;
281    let main_div_width = target.innerWidth();
282    //console.log(main_div_width);
283    let item_count = target.find('.sliderItem').length;
284    target.find('[data-bg-image]').each(function () {
285        let width = jQuery(this).outerWidth();
286        let height = jQuery(this).outerHeight();
287        // if (jQuery(this).css('background-image') === 'none' || width === 0 || height === 0) {
288        let bg_url = jQuery(this).data('bg-image');
289        if (!bg_url || bg_url.width === 0 || bg_url.width === 'undefined') {
290            bg_url = mpwem_empty_image_url;
291        }
292        let imgWidth = jQuery(this).data('width');
293        let imgHeight = jQuery(this).data('height');
294        all_height.push(imgHeight);
295        totalHeight = totalHeight + (imgHeight * main_div_width) / imgWidth;
296        imgCount++;
297        if (imgCount === item_count) {
298            let slider_height_type = target.closest('.superSlider').find('input[name="slider_height_type"]').val();
299            let height_content = totalHeight / imgCount;
300            if (slider_height_type === 'min') {
301                height_content = Math.min(...all_height);
302                target.find('.sliderItem').css({"min-height": height_content});
303                target.find('.sliderItem').css({"max-height": height_content});
304            } else if (slider_height_type === 'max') {
305                height_content = Math.max(...all_height);
306                target.find('.sliderItem').css({"min-height": height_content});
307                target.find('.sliderItem').css({"max-height": height_content});
308            } else {
309                target.find('.sliderItem').css({"min-height": height_content});
310                target.find('.sliderItem').css({"max-height": height_content});
311            }
312            target.css({"max-height": height_content});
313            target.siblings('.sliderShowcase').css({"max-height": height_content});
314        }
315        jQuery(this).css('background-image', 'url("' + bg_url + '")').promise().done(function () {
316            mpwem_loader_remove(jQuery(this));
317        });
318        // }
319    });
320}
321function mpwem_resize_bg_image_area(target, bg_url) {
322    let tmpImg = new Image();
323    tmpImg.src = bg_url;
324    jQuery(tmpImg).one('load', function () {
325        let imgWidth = tmpImg.width;
326        let imgHeight = tmpImg.height;
327        let height = target.outerWidth() * imgHeight / imgWidth;
328        target.css({"min-height": height});
329    });
330}
331(function ($) {
332    let bg_image_load = false;
333    $(document).ready(function () {
334        $('body').find('div.mpwem_style [data-bg-image]').each(function () {
335            mpwem_loader($(this));
336        });
337        // Apply classic placeholder shimmer on slider frames until images resolve.
338        $('.mpwem_slider_area.is-loading.mpwem_style').each(function () {
339            mpwem_loader_placeholder($(this));
340        });
341        $(window).on('load', function () {
342            load_initial();
343            setTimeout(mpwem_mark_slider_areas_ready, 80);
344        });
345        if (!bg_image_load) {
346            load_initial();
347            $(document).scroll(function () {
348                load_initial();
349            });
350        }
351        // Never leave the slider skeleton stuck if image init is delayed.
352        setTimeout(mpwem_mark_slider_areas_ready, 2800);
353    });
354    $(document).on('click', 'div.mpwem_style [data-href]', function () {
355        let href = $(this).data('href');
356        if (href) {
357            let blank = $(this).data('blank');
358            if (blank) {
359                window.open(href, '_blank');
360            } else {
361                window.location.href = href;
362            }
363        }
364    });
365    $(window).on('load , resize', function () {
366        $('body').find('div.mpwem_style [data-bg-image]:visible').each(function () {
367            let target = $(this);
368            if (target.closest('.sliderAllItem').length === 0) {
369                let bg_url = target.data('bg-image');
370                if (!bg_url || bg_url.width === 0 || bg_url.width === 'undefined') {
371                    bg_url = mpwem_empty_image_url;
372                }
373                mpwem_resize_bg_image_area(target, bg_url);
374            }
375        });
376        jQuery('body').find('div.mpwem_style .sliderAllItem:visible').each(function () {
377            let target = jQuery(this);
378            mpwem_slider_resize(target)
379        });
380    });
381    function load_initial() {
382        if (!bg_image_load) {
383            if (mpwem_load_bg_image()) {
384                bg_image_load = true;
385                mpwem_loader_placeholder_remove($('.mpwem_style.mpwem_loader_placeholder'));
386            }
387        }
388    }
389}(jQuery));
390//=============================================================================Change icon and text=================//
391function mpwem_content_icon_change(currentTarget) {
392    let openIcon = currentTarget.data('open-icon');
393    let closeIcon = currentTarget.data('close-icon');
394    if (openIcon || closeIcon) {
395        currentTarget.find('[data-icon]').toggleClass(closeIcon).toggleClass(openIcon);
396    }
397}
398function mpwem_content_text_change(currentTarget) {
399    let openText = currentTarget.data('open-text');
400    openText = openText ? openText.toString() : '';
401    let closeText = currentTarget.data('close-text');
402    closeText = closeText ? closeText : '';
403    if (openText || closeText) {
404        let text = currentTarget.find('[data-text]').html();
405        text = text ? text.toString() : ''
406        if (text !== openText) {
407            currentTarget.find('[data-text]').html(openText);
408        } else {
409            currentTarget.find('[data-text]').html(closeText);
410        }
411    }
412}
413function mpwem_content_class_change(currentTarget) {
414    let clsName = currentTarget.data('add-class');
415    if (clsName) {
416        if (currentTarget.find('[data-class]').length > 0) {
417            currentTarget.find('[data-class]').toggleClass(clsName);
418        } else {
419            currentTarget.toggleClass(clsName);
420        }
421    }
422}
423function mpwem_content_input_value_change(currentTarget) {
424    currentTarget.find('[data-value]').each(function () {
425        let value = jQuery(this).val();
426        if (value) {
427            jQuery(this).val('');
428        } else {
429            jQuery(this).val(jQuery(this).data('value'));
430        }
431        jQuery(this).trigger('change');
432    });
433}
434function mpwem_all_content_change($this) {
435    mpwem_load_bg_image();
436    mpwem_content_class_change($this);
437    mpwem_content_icon_change($this);
438    mpwem_content_text_change($this);
439    mpwem_content_input_value_change($this);
440}
441(function ($) {
442    "use strict";
443    $(document).on('click', '.mpwem_load_more_text_area [data-read]', function (e) {
444        e.stopPropagation();
445        let parent = $(this).closest('.mpwem_load_more_text_area');
446        let open_text = parent.find('[data-read-open]').html();
447        let close_text = parent.find('[data-read-close]').html();
448        parent.find('[data-read-close]').html(open_text);
449        parent.find('[data-read-open]').html(close_text);
450        mpwem_content_text_change($(this));
451    });
452    $(document).on('click', 'div.mpwem_style [data-all-change]', function () {
453        mpwem_all_content_change($(this));
454    });
455    $(document).on('click', 'div.mpwem_style [data-icon-change]', function () {
456        mpwem_content_icon_change($(this));
457    });
458    $(document).on('click', 'div.mpwem_style [data-text-change]', function () {
459        mpwem_content_text_change($(this));
460    });
461    $(document).on('click', 'div.mpwem_style [data-class-change]', function () {
462        mpwem_content_class_change($(this));
463    });
464    $(document).on('click', 'div.mpwem_style [data-value-change]', function () {
465        mpwem_content_input_value_change($(this));
466    });
467    $(document).on('keyup change', '.mpwem_style [data-input-text]', function () {
468        let input_value = $(this).val();
469        let input_id = $(this).data('input-text');
470        $("[data-input-change='" + input_id + "']").each(function () {
471            $(this).html(input_value);
472        });
473    });
474    $(document).on('keyup change', '.mpwem_style [data-target-same-input]', function () {
475        let input_value = $(this).val();
476        let input_id = $(this).data('target-same-input');
477        $("[data-same-input='" + input_id + "']").each(function () {
478            $(this).val(input_value);
479        });
480    });
481}(jQuery));
482//==============================================================================Input use as select================//
483(function ($) {
484    "use strict";
485    $(document).on("click", "div.mpwem_style .mpwem_input_select .mpwem_input_select_list li", function (e) {
486        e.preventDefault();
487        let current = $(this);
488        let parent = $(this).closest('.mpwem_input_select');
489        let value = current.data('value');
490        let text = current.html();
491        parent.find('.mpwem_input_select_list').slideUp(250);
492        if (parent.find('input[type="hidden"]').length > 0) {
493            parent.find('input.formControl').val(text);
494            parent.find('input[type="hidden"]').val(value).trigger('mpwem_change');
495        } else {
496            parent.find('input.formControl').val(value).trigger('mpwem_change');
497        }
498    });
499    $(document).on({
500        keyup: function () {
501            let input = $(this).val().toLowerCase();
502            $(this).closest('.mpwem_input_select').find('.mpwem_input_select_list li').each(function () {
503                let input_length = input.length;
504                $(this).toggle($(this).attr('data-value').toLowerCase().substring(0, input_length) === input);
505            });
506            $(this).closest('.mpwem_input_select').find('.mpwem_input_select_list').slideDown(200);
507        },
508        click: function () {
509            $('body').find('.mpwem_input_select .mpwem_input_select_list').slideUp(250);
510            let input = $(this).val().toLowerCase();
511            $(this).closest('.mpwem_input_select').find('.mpwem_input_select_list li').each(function () {
512                let data = $(this).attr('data-value').toLowerCase();
513                if (!input || input === data) {
514                    $(this).slideDown('fast');
515                }
516            });
517            $(this).closest('.mpwem_input_select').find('.mpwem_input_select_list').slideDown(250);
518        }
519    }, 'div.mpwem_style .mpwem_input_select input.formControl');
520}(jQuery));
521//============================================================================Sticky================//
522function mpwem_sticky_management() {
523    if (jQuery('.mpwem_style .mpwem_sticky_area').length > 0) {
524        window.onscroll = function () {
525            jQuery('.mpwem_style .mpwem_sticky_area').each(function () {
526                let current = jQuery(this);
527                let target_scroll = current.find('.mpwem_sticky_area');
528                let parent = current.closest('.mpwem_sticky_section');
529                let target_content = parent.find('.mpwem_sticky_depend_area');
530                let scroll_top = jQuery(window).scrollTop();
531                let content_top = target_content.offset().top;
532                let scroll_height = target_content.innerHeight() - current.innerHeight();
533                if (jQuery('body').outerWidth() > 800) {
534                    console.log(target_content.innerHeight() + ' - ' + current.innerHeight() + ' = ' + scroll_height);
535                    console.log(scroll_top + ' + ' + scroll_height + ' = ' + scroll_top + scroll_height);
536                    //console.log(content_top);
537                    //console.log(scroll_top+scroll_height);
538                    if (scroll_top > content_top + scroll_height - 100) {
539                        if (!current.hasClass('stickyFixed')) {
540                            current.removeClass('mpSticky').addClass('stickyFixed');
541                        }
542                    } else if (scroll_top > content_top - 100) {
543                        if (!current.hasClass('mpSticky')) {
544                            current.addClass('mpSticky').removeClass('stickyFixed');
545                        }
546                    } else {
547                        current.removeClass('mpSticky').removeClass('stickyFixed');
548                    }
549                } else {
550                    current.removeClass('mpSticky').removeClass('stickyFixed');
551                }
552            });
553        };
554    }
555}
556(function ($) {
557    "use strict";
558    $(document).ready(function () {
559        mpwem_sticky_management();
560    });
561}(jQuery));
562//============================================================================Tabs================//
563(function ($) {
564    "use strict";
565    function active_next_tab(parent, targetTab) {
566        parent.height(parent.height());
567        let tabsContent = parent.find('.tabsContentNext:first');
568        let target_tabContent = tabsContent.children('[data-tabs-next="' + targetTab + '"]');
569        let index = target_tabContent.index() + 1;
570        let num_of_tab = parent.find('.tabListsNext:first').children('[data-tabs-target-next]').length;
571        let i = 1;
572        for (i; i <= num_of_tab; i++) {
573            let target_tab = parent.find('.tabListsNext:first').children('[data-tabs-target-next]:nth-child(' + i + ')');
574            if (i <= index) {
575                target_tab.addClass('active');
576            } else {
577                target_tab.removeClass('active');
578            }
579            if (i === index - 1) {
580                mpwem_all_content_change(target_tab);
581            }
582        }
583        if (index < 2 && num_of_tab > index) {
584            parent.find('.nextTab_next').slideDown('fast');
585            parent.find('.nextTab_prev').slideUp('fast');
586        } else if (num_of_tab === index) {
587            parent.find('.nextTab_next').slideUp('fast');
588            parent.find('.nextTab_prev').slideDown('fast');
589        } else {
590            parent.find('.nextTab_next').slideDown('fast');
591            parent.find('.nextTab_prev').slideDown('fast');
592        }
593        target_tabContent.slideDown(350);
594        tabsContent.children('[data-tabs-next].active').slideUp(350).removeClass('active').promise().done(function () {
595            target_tabContent.addClass('active').promise().done(function () {
596                mpwem_page_scroll_to(tabsContent);
597                parent.height('auto').promise().done(function () {
598                    mpwem_load_bg_image();
599                    mpwem_sticky_management();
600                    mpwem_loader_remove(parent);
601                });
602            });
603        });
604    }
605    $(document).on('click', '.mpwem_style .tabs_next .nextTab_prev_link', function () {
606        let parent = $(this).closest('.tabs_next');
607        if (parent.find('[data-tabs-target-next].active').length > 1) {
608            parent.find('.nextTab_prev').trigger('click');
609        }
610    });
611    $(document).on('click', '.mpwem_style .tabs_next .nextTab_next', function () {
612        let parent = $(this).closest('.tabs_next');
613        let target = parent.find('.tabListsNext:first');
614        let num_of_tab = target.children('[data-tabs-target-next].active').length + 1;
615        let targetTab = target.children('[data-tabs-target-next]:nth-child(' + num_of_tab + ')').data('tabs-target-next');
616        active_next_tab(parent, targetTab);
617    });
618    $(document).on('click', '.mpwem_style .tabs_next .nextTab_prev', function () {
619        let parent = $(this).closest('.tabs_next');
620        let target = parent.find('.tabListsNext:first');
621        let num_of_tab = target.children('[data-tabs-target-next].active').length - 1;
622        let targetTab = target.children('[data-tabs-target-next]:nth-child(' + num_of_tab + ')').data('tabs-target-next');
623        active_next_tab(parent, targetTab);
624    });
625    $(document).ready(function () {
626        $('.mpwem_style .mpTabs').each(function () {
627            let tabLists = $(this).find('.tabLists:first');
628            let activeTab = tabLists.find('[data-tabs-target].active');
629            let targetTab = activeTab.length > 0 ? activeTab : tabLists.find('[data-tabs-target]').first();
630            targetTab.trigger('click');
631        });
632        $('.mpwem_style .tabs_next').each(function () {
633            let parent = $(this);
634            if (parent.find('[data-tabs-target-next].active').length < 1) {
635                mpwem_loader(parent);
636                let tabLists = parent.find('.tabListsNext:first');
637                let targetTab = tabLists.find('[data-tabs-target-next]').first().data('tabs-target-next')
638                active_next_tab(parent, targetTab);
639            }
640        });
641    });
642    $(document).on('click', '.mpwem_style [data-tabs-target]', function () {
643        if (!$(this).hasClass('active')) {
644            let tabsTarget = $(this).data('tabs-target');
645            let parent = $(this).closest('.mpTabs');
646            parent.height(parent.height());
647            let tabLists = $(this).closest('.tabLists');
648            let tabsContent = parent.find('.tabsContent:first');
649            tabLists.find('[data-tabs-target].active').each(function () {
650                $(this).removeClass('active').promise().done(function () {
651                    mpwem_all_content_change($(this))
652                });
653            });
654            $(this).addClass('active').promise().done(function () {
655                mpwem_all_content_change($(this))
656            });
657            tabsContent.children('[data-tabs="' + tabsTarget + '"]').slideDown(350);
658            tabsContent.children('[data-tabs].active').slideUp(350).removeClass('active').promise().done(function () {
659                tabsContent.children('[data-tabs="' + tabsTarget + '"]').addClass('active').promise().done(function () {
660                    //mpwem_loader_remove(tabsContent);
661                    mpwem_load_bg_image();
662                    parent.height('auto');
663                });
664            });
665        }
666    });
667}(jQuery));
668//======================================================================Collapse=================//
669(function ($) {
670    "use strict";
671    $(document).on('click', '.mpwem_style [data-collapse-target]', function () {
672        let currentTarget = $(this);
673        let target_id = currentTarget.data('collapse-target');
674        let close_id = currentTarget.data('close-target');
675        let target = $('[data-collapse="' + target_id + '"]');
676        if (target_close(close_id, target_id) && collapse_close_inside(currentTarget) && target_collapse(target, currentTarget)) {
677            mpwem_all_content_change(currentTarget);
678        }
679    });
680    $(document).on('change', '.mpwem_style select[data-collapse-target]', function () {
681        let currentTarget = $(this);
682        let value = currentTarget.val();
683        currentTarget.find('option').each(function () {
684            if ($(this).attr('data-option-target-multi')) {
685                let target_ids = $(this).data('option-target-multi');
686                target_ids = target_ids.toString().split(" ");
687                target_ids.forEach(function (target_id) {
688                    let target = $('[data-collapse="' + target_id + '"]');
689                    target.slideUp(350).removeClass('mActive');
690                });
691            } else {
692                let target_id = $(this).data('option-target');
693                let target = $('[data-collapse="' + target_id + '"]');
694                target.slideUp('fast').removeClass('mActive');
695            }
696        }).promise().done(function () {
697            currentTarget.find('option').each(function () {
698                let current_value = $(this).val();
699                if (current_value === value) {
700                    if ($(this).attr('data-option-target-multi')) {
701                        let target_ids = $(this).data('option-target-multi');
702                        target_ids = target_ids.toString().split(" ");
703                        target_ids.forEach(function (target_id) {
704                            let target = $('[data-collapse="' + target_id + '"]');
705                            target.slideDown(350).removeClass('mActive');
706                        });
707                    } else {
708                        let target_id = $(this).data('option-target');
709                        let target = $('[data-collapse="' + target_id + '"]');
710                        target.slideDown(350).removeClass('mActive');
711                    }
712                }
713            });
714        });
715    });
716    function target_close(close_id, target_id) {
717        $('body').find('[data-close="' + close_id + '"]:not([data-collapse="' + target_id + '"])').slide
717Up(250);
718        return true;
719    }
720    function target_collapse(target, $this) {
721        if ($this.is('[type="radio"]')) {
722            target.slideDown(250);
723        } else {
724            target.each(function () {
725                $(this).slideToggle(250).toggleClass('mActive');
726            });
727        }
728        return true;
729    }
730    function collapse_close_inside(currentTarget) {
731        let parent_target_close = currentTarget.data('collapse-close-inside');
732        if (parent_target_close) {
733            $(parent_target_close).find('[data-collapse]').each(function () {
734                if ($(this).hasClass('mActive')) {
735                    let collapse_id = $(this).data('collapse');
736                    let target_collapse = $('[data-collapse-target="' + collapse_id + '"]');
737                    if (collapse_id !== currentTarget.data('collapse-target')) {
738                        $(this).slideUp(250).removeClass('mActive');
739                        let clsName = target_collapse.data('add-class');
740                        if (clsName) {
741                            target_collapse.removeClass(clsName);
742                        }
743                        mpwem_content_text_change(target_collapse);
744                        mpwem_content_icon_change(target_collapse);
745                    }
746                }
747            })
748        }
749        return true;
750    }
751}(jQuery));
752//=====================================================================Group Check box==========//
753(function ($) {
754    "use strict";
755    $(document).on('click', 'div.mpwem_style .groupCheckBox .customCheckboxLabel', function () {
756        let parent = $(this).closest('.groupCheckBox');
757        let value = '';
758        let separator = ',';
759        parent.find(' input[type="checkbox"]').each(function () {
760            if ($(this).is(":checked")) {
761                let currentValue = $(this).attr('data-checked');
762                value = value + (value ? separator : '') + currentValue;
763            }
764        }).promise().done(function () {
765            parent.find('input[type="hidden"]').val(value).trigger('change');
766        });
767    });
768    // radio
769    $(document).on('click', 'div.mpwem_style [data-radio]', function () {
770        let target = $(this).closest('label');
771        let value = $(this).attr('data-radio');
772        target.find('.customRadio').removeClass('active');
773        $(this).addClass('active');
774        target.find('input').val(value).trigger('change');
775    });
776    $(document).on('click', 'div.mpwem_style .checkbox_item', function () {
777        let target = $(this);
778        let value = '';
779        if (target.hasClass('on')) {
780            value = 'off';
781            target.removeClass('on').addClass('off');
782        } else {
783            value = 'on';
784            target.removeClass('off').addClass('on');
785        }
786        target.find('input').val(value).trigger('change');
787    });
788    $(document).on('click', 'div.mpwem_style .groupRadioBox [data-group-radio]', function () {
789        let parent = $(this).closest('.groupRadioBox');
790        let $this = $(this);
791        let value = $this.data('group-radio');
792        parent.find('[data-group-radio]').each(function () {
793            $(this).removeClass('active');
794        }).promise().done(function () {
795            $this.addClass('active');
796            parent.find('input[type="text"]').val(value);
797        });
798    });
799    //Group radio like checkbox
800    $(document).on('click', 'div.mpwem_style .groupRadioCheck [data-radio-check]', function () {
801        //e.stopPropagation();
802        let parent = $(this).closest('.groupRadioCheck');
803        let $this = $(this);
804        if (!$this.hasClass('mpActive')) {
805            let value = $this.data('radio-check');
806            parent.find('.mpActive[data-radio-check]').each(function () {
807                $(this).removeClass('mpActive');
808                mpwem_all_content_change($(this));
809            }).promise().done(function () {
810                $this.addClass('mpActive');
811                mpwem_all_content_change($this);
812                parent.find('input[type="hidden"]').val(value).trigger('change');
813            });
814        }
815    });
816}(jQuery));
817//=======================================================validation ==============//
818function mpwem_check_required(input) {
819    if (input.val() !== '') {
820        input.removeClass('mpRequired');
821        return true;
822    } else {
823        input.addClass('mpRequired');
824        return false;
825    }
826}
827(function ($) {
828    "use strict";
829    $(document).on('keyup change', '.mpwem_style .number_validation', function () {
830        let n = $(this).val();
831        $(this).val(n.replace(/\D/g, ''));
832        return true;
833    });
834    $(document).on('keyup change', '.mpwem_style .price_validation', function () {
835        let n = $(this).val();
836        $(this).val(n.replace(/[^\d.]/g, ''));
837        return true;
838    });
839    $(document).on('keyup change', '.mpwem_style .id_validation', function () {
840        let n = $(this).val();
841        $(this).val(n.replace(/[^\d_a-zA-Z]/g, ''));
842        return true;
843    });
844    $(document).on('keyup change', '.mpwem_style .name_validation', function () {
845        let n = $(this).val();
846        $(this).val(n.replace(/[@%'":;&_]/g, ''));
847        return true;
848    });
849}(jQuery));
850//==========================================================pagination==========//
851function mpwem_pagination_page_management(parent, pagination_page, total_item) {
852    let per_page_item = parseInt(parent.find('input[name="pagination_per_page"]').val());
853    let total_active_page = Math.floor(total_item / per_page_item) + ((total_item % per_page_item) > 0 ? 1 : 0);
854    let page_limit_start = (pagination_page > 2) ? (pagination_page - 2) : 0;
855    let page_limit_end = (pagination_page > 2) ? (pagination_page + 2) : 4;
856    let limit_dif = total_active_page - pagination_page;
857    if (total_active_page > 5 && limit_dif < 3) {
858        page_limit_start = page_limit_start - ((limit_dif > 1) ? 1 : 2);
859    }
860    let total_page = parent.find('[data-pagination]').length;
861    for (let i = 0; i < total_page; i++) {
862        if (i < total_active_page && i >= page_limit_start && i <= page_limit_end) {
863            parent.find('[data-pagination="' + i + '"]').slideDown(200);
864        } else {
865            parent.find('[data-pagination="' + i + '"]').slideUp(200);
866        }
867    }
868    if (pagination_page > 0) {
869        parent.find('.page_prev').removeAttr('disabled');
870    } else {
871        parent.find('.page_prev').prop('disabled', true);
872    }
873    if (pagination_page > 2 && total_active_page > 5) {
874        parent.find('.ellipse_left').slideDown(200);
875    } else {
876        parent.find('.ellipse_left').slideUp(200);
877    }
878    if (pagination_page < total_active_page - 3 && total_active_page > 5) {
879        parent.find('.ellipse_right').slideDown(200);
880    } else {
881        parent.find('.ellipse_right').slideUp(200);
882    }
883    if (pagination_page < total_active_page - 1) {
884        parent.find('.page_next').removeAttr('disabled');
885    } else {
886        parent.find('.page_next').prop('disabled', true);
887    }
888    return true;
889}
890function mpwem_load_more_scroll(parent, pagination_page) {
891    let per_page_item = parseInt(parent.find('input[name="pagination_per_page"]').val());
892    let start_item = pagination_page > 0 ? pagination_page * per_page_item : 0;
893    let target = parent.find('.pagination_item:nth-child(' + (start_item + 1) + ')');
894    mpwem_page_scroll_to(target);
895}
896(function ($) {
897    "use strict";
898    $(document).on('click', 'div.mpwem_style .pagination_area .page_prev', function (e) {
899        e.preventDefault();
900        let parent = $(this).closest('.pagination_area');
901        let page_no = parseInt(parent.find('.active_pagination').data('pagination')) - 1;
902        parent.find('[data-pagination="' + page_no + '"]').trigger('click');
903    });
904    $(document).on('click', 'div.mpwem_style .pagination_area .page_next', function (e) {
905        e.preventDefault();
906        let parent = $(this).closest('.pagination_area');
907        let page_no = parseInt(parent.find('.active_pagination').data('pagination')) + 1;
908        parent.find('[data-pagination="' + page_no + '"]').trigger('click');
909    });
910    //*************** Pagination Load More ***************//
911    $(document).on('click', 'div.mpwem_pagination_area  .pagination_load_more', function () {
912        let pagination_page = parseInt($(this).attr('data-load-more')) + 1;
913        let parent = $(this).closest('div.mpwem_pagination_area');
914        let per_page_item = parseInt(parent.find('input[name="pagination_per_page"]').val());
915        let count = 0;
916        let end_item = per_page_item * pagination_page + per_page_item;
917        $(this).attr('data-load-more', pagination_page).promise().done(function () {
918            parent.find('.pagination_item').each(function () {
919                if (count < end_item) {
920                    $(this).slideDown(250);
921                }
922                count++;
923            });
924        }).promise().done(function () {
925            lode_more_init(parent);
926        }).promise().done(function () {
927            mpwem_load_bg_image();
928        });
929    });
930    function lode_more_init(parent) {
931        if (parent.find('.pagination_item:hidden').length === 0) {
932            parent.find('[data-load-more]').attr('disabled', 'disabled');
933        } else {
934            parent.find('[data-load-more]').removeAttr('disabled');
935        }
936    }
937}(jQuery));
938//==============================================================Modal / Popup==========//
939(function ($) {
940    "use strict";
941    $(document).on('click', '.mpwem_style [data-target-popup]', function () {
942        let target = $(this).data('target-popup');
943        // Gallery slider popup is handled by the Super Slider module (correct slide index).
944        if (target === 'superSlider' || $(this).closest('.superSlider, .post_thumb.is-style-2').length) {
945            return;
946        }
947        $(this).attr('data-active-popup', '');
948        $('body').addClass('noScroll').find('[data-popup="' + target + '"]').addClass('in').promise().done(function () {
949            mpwem_load_bg_image();
950            return true;
951        });
952    });
953    $(document).on('click', 'div.mpPopup  .popup_close', function () {
954        $(this).closest('[data-popup]').removeClass('in');
955        $('body').removeClass('noScroll').find('[data-active-popup]').removeAttr('data-active-popup');
956        return true;
957    });
958}(jQuery));
959//==============================================================Slider=================//
960(function ($) {
961    "use strict";
962    //=================initial call============//
963    $('div.mpwem_style .superSlider').each(function () {
964        sliderItemActive($(this), 1);
965    });
966    //==============Slider===================//
967    $(document).on('click', 'div.mpwem_style .superSlider [data-sli
967de-target]', function () {
968        if (!$(this).hasClass('activeSlide')) {
969            let activeItem = $(this).data('slide-target');
970            let parent = $(this).closest('.superSlider');
971            sliderItemActive(parent, activeItem);
972            parent.find('[data-slide-target]').removeClass('activeSlide');
973            $(this).addClass('activeSlide');
974        }
975    });
976    $(document).on('click', 'div.mpwem_style .superSlider .iconIndicator', function (e) {
977        e.preventDefault();
978        e.stopPropagation();
979        let parent = $(this).closest('.superSlider');
980        let activeItem = parseInt(parent.find('.sliderAllItem').first().find('.sliderItem.activeSlide').data('slide-index'));
981        if ($(this).hasClass('nextItem')) {
982            ++activeItem;
983        } else {
984            --activeItem;
985        }
986        sliderItemActive(parent, activeItem);
987    });
988    function sliderItemActive(parent, activeItem) {
989        let itemLength = parent.find('.sliderAllItem').first().find('[data-slide-index]').length;
990        let currentItem = getSliderItem(parent, activeItem);
991        let activeCurrent = parseInt(parent.find('.sliderAllItem').first().find('.sliderItem.activeSlide').data('slide-index'));
992        let i = 1;
993        for (i; i <= itemLength; i++) {
994            let target = parent.find('.sliderAllItem').first().find('[data-slide-index="' + i + '"]').first();
995            if (i < currentItem && currentItem !== 1) {
996                sliderClassControl(target, currentItem, activeCurrent, 'prevSlider', 'nextSlider');
997            }
998            if (i === currentItem) {
999                parent.find('.sliderAllItem').first().find('[data-slide-index="' + currentItem + '"]').removeClass('prevSlider nextSlider').addClass('activeSlide');
1000            }
1001            if (i > currentItem && currentItem !== itemLength) {
1002                sliderClassControl(target, currentItem, activeCurrent, 'nextSlider', 'prevSlider');
1003            }
1004            if (i === itemLength && itemLength > 1) {
1005                if (currentItem === 1) {
1006                    target = parent.find('.sliderAllItem').first().find('[data-slide-index="' + itemLength + '"]');
1007                    sliderClassControl(target, currentItem, activeCurrent, 'prevSlider', 'nextSlider');
1008                }
1009                if (currentItem === itemLength) {
1010                    target = parent.find('.sliderAllItem').first().find('[data-slide-index="1"]');
1011                    sliderClassControl(target, currentItem, activeCurrent, 'nextSlider', 'prevSlider');
1012                }
1013            }
1014        }
1015    }
1016    function sliderClassControl(target, currentItem, activeCurrent, add_class, remove_class) {
1017        if (target.hasClass('activeSlide')) {
1018            if (currentItem > activeCurrent) {
1019                target.removeClass('activeSlide').addClass(add_class);
1020            } else {
1021                target.removeClass('activeSlide').removeClass(remove_class).addClass(add_class);
1022            }
1023        } else if (target.hasClass(remove_class)) {
1024            target.removeClass(remove_class).delay(600).addClass(add_class);
1025        } else {
1026            if (!target.hasClass(add_class)) {
1027                target.addClass(add_class);
1028            }
1029        }
1030    }
1031    function getSliderItem(parent, activeItem) {
1032        let itemLength = parent.find('.sliderAllItem').first().find('[data-slide-index]').length;
1033        activeItem = activeItem < 1 ? itemLength : activeItem;
1034        activeItem = activeItem > itemLength ? 1 : activeItem;
1035        return activeItem;
1036    }
1037    //popup — feature image / zoom opens gallery modal (all images as slider)
1038    $(document).on('click', 'div.mpwem_style .superSlider [data-target-popup], div.mpwem_style .post_thumb.is-style-2 [data-target-popup]', function (e) {
1039        e.preventDefault();
1040        e.stopPropagation();
1041        let target = $(this).data('target-popup');
1042        let activeItem = parseInt($(this).data('slide-index'), 10) || 1;
1043        // Style Two zoom control: open modal on the currently visible slide.
1044        if ($(this).hasClass('mpwem_slider_style2_zoom')) {
1045            let current = $(this).closest('.superSlider, .mpwem_slider_area').find('.sliderAllItem').first().find('.sliderItem.activeSlide').data('slide-index');
1046            if (current) {
1047                activeItem = parseInt(current, 10) || 1;
1048            }
1049        } else if ($(this).hasClass('sliderItem')) {
1050            activeItem = parseInt($(this).data('slide-index'), 10) || 1;
1051        }
1052        let $popup = $(this).closest('.superSlider, .post_thumb').find('[data-popup="' + target + '"]').first();
1053        if (!$popup.length) {
1054            $popup = $(this).closest('.mpwem_slider_area').find('[data-popup="' + target + '"]').first();
1055        }
1056        if (!$popup.length) {
1057            return;
1058        }
1059        $('body').addClass('noScroll');
1060        $popup.addClass('in').promise().done(function () {
1061            sliderItemActive($popup, activeItem);
1062            mpwem_load_bg_image();
1063        });
1064    });
1065    $(document).on('click', '.superSlider .popup_close', function () {
1066        $(this).closest('[data-popup]').removeClass('in');
1067        $('body').removeClass('noScroll');
1068    });
1069}(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.