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.