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.