PageSourceSearch

https://britishfantasysociety.org/wp-content/plugins/mage-eventpre…/helper/mp_style/mpwem_global.js?ver=5.3.4

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