1//loader 2function dLoader(target) { 3 if (target.find('div[class*="dLoader"]').length < 1) { 4 target.addClass('pRelative').append('<div class="dLoader"><span class="fas fa-spinner fa-pulse"></span></div>'); 5 } 6} 7 8function dLoader_xs(target) { 9 if (target.find('div[class*="dLoader"]').length < 1) { 10 target.addClass('pRelative').append('<div class="dLoader_xs"><span class="fas fa-spinner fa-pulse"></span></div>'); 11 } 12} 13 14function simpleSpinner(target) { 15 if (target.find('div[class*="simpleSpinner"]').length < 1) { 16 target.append('<div class="simpleSpinner"><span class="fas fa-spinner fa-pulse"></span></div>'); 17 } 18} 19 20function simpleSpinnerRemove(target = jQuery('body')) { 21 target.removeClass('noScroll'); 22 target.removeClass('pRelative').find('div[class*="simpleSpinner"]').remove(); 23} 24 25function dLoaderBody() { 26 let body = jQuery('body'); 27 if (body.find('div[class*="dLoader"]').length < 1) { 28 body.addClass('noScroll').append('<div class="dLoader pFixed"><span class="fas fa-spinner fa-pulse"></span></div>'); 29 } 30} 31 32function dLoaderBody_xs() { 33 let body = jQuery('body'); 34 if (body.find('div[class*="dLoader"]').length < 1) { 35 body.addClass('noScroll').append('<div class="dLoader_xs pFixed"><span class="fas fa-spinner fa-pulse"></span></div>'); 36 } 37} 38 39function dLoader_circle(target) { 40 if (target.find('div[class*="dLoader"]').length < 1) { 41 target.addClass('pRelative').append('<div class="dLoader border_spin_loader"><span class="circle"></span></div>'); 42 } 43} 44 45function dLoader_xs_circle(target) { 46 if (target.find('div[class*="dLoader"]').length < 1) { 47 target.addClass('pRelative').append('<div class="dLoader_xs border_spin_loader"><span class="circle"></span></div>'); 48 } 49} 50 51function dLoaderRemove(target = jQuery('body')) { 52 target.removeClass('noScroll'); 53 target.removeClass('pRelative').find('div[class*="dLoader"]').remove(); 54} 55 56function placeholderLoader(target) { 57 target.addClass('placeholderLoader'); 58} 59 60function placeholderLoaderRemove(target) { 61 target.each(function () { 62 target.removeClass('placeholderLoader'); 63 }) 64} 65 66function pageScrollTo(target) { 67 jQuery('html, body').animate({ 68 scrollTop: target.offset().top -= 100 69 }, 1000); 70} 71 72//==========Load Bg Image=================// 73function loadBgImage() { 74 jQuery('body').find('[data-bg-image]:visible').each(function () { 75 let target = jQuery(this); 76 let height = target.outerWidth() * 2 / 3; 77 if (target.css('background-image') === 'none') { 78 target.css({"min-height": height}); 79 let bg_url = target.data('bg-image'); 80 if (!bg_url || bg_url.width === 0 || bg_url.width === 'undefined') { 81 bg_url = ttbm_empty_image_url; 82 } 83 target.css('background-image', 'url("' + bg_url + '")').promise().done(function () { 84 dLoaderRemove(jQuery(this)); 85 }); 86 } 87 }); 88 return true; 89} 90 91(function ($) { 92 let bg_image_load = false; 93 $(document).ready(function () { 94 $('body').find('[data-bg-image]').each(function () { 95 dLoader($(this)); 96 }); 97 $(window).on('load', function () { 98 load_initial(); 99 }); 100 if (!bg_image_load) { 101 load_initial(); 102 $(document).scroll(function () { 103 load_initial(); 104 }); 105 } 106 }); 107 $(document).on('click', '[data-href]', function () { 108 let href = $(this).data('href'); 109 if (href) { 110 //window.location.href = href; 111 } 112 }); 113 $(window).on('load , resize', function () { 114 $('body').find('[data-bg-image]:visible').each(function () { 115 let target = $(this); 116 let height = target.outerWidth() * 2 / 3; 117 target.css({"min-height": height, "height": height}); 118 }); 119 }); 120 121 function load_initial() { 122 if (!bg_image_load) { 123 if (loadBgImage()) { 124 bg_image_load = true; 125 placeholderLoaderRemove($('.mpStyle.placeholderLoader')) 126 } 127 } 128 } 129}(jQuery)); 130 131//==========Change icon and text=================// 132function content_icon_change(currentTarget) { 133 let openIcon = currentTarget.data('open-icon'); 134 let closeIcon = currentTarget.data('close-icon'); 135 if (openIcon && closeIcon) { 136 currentTarget.find('[data-icon]').toggleClass(closeIcon).toggleClass(openIcon); 137 } 138} 139 140function content_text_change(currentTarget) { 141 let openText = currentTarget.data('open-text'); 142 let closeText = currentTarget.data('close-text'); 143 if (openText && closeText) { 144 let text = currentTarget.find('[data-text]').html(); 145 if (openText !== text) { 146 currentTarget.find('[data-text]').html(openText); 147 } else { 148 currentTarget.find('[data-text]').html(closeText); 149 } 150 } 151} 152 153(function ($) { 154 "use strict"; 155 $(document).on('click', '[data-icon-change]', function () { 156 content_icon_change($(this)); 157 }); 158 $(document).on('click', '[data-text-change]', function () { 159 content_text_change($(this)); 160 }); 161}(jQuery)); 162//===========Tabs================// 163(function ($) { 164 "use strict"; 165 $(document).ready(function () { 166 $('.mpStyle .mpTabs').each(function () { 167 let tabLists = $(this).find('.tabLists:first'); 168 let activeTab = tabLists.find('[data-tabs-target].active'); 169 let targetTab = activeTab.length > 0 ? activeTab : tabLists.find('[data-tabs-target]').first(); 170 targetTab.trigger('click'); 171 }); 172 }); 173 $(document).on('click', '.mpStyle [data-tabs-target]', function () { 174 if (!$(this).hasClass('active')) { 175 let tabsTarget = $(this).data('tabs-target'); 176 let parent = $(this).closest('.mpTabs'); 177 let tabLists = $(this).closest('.tabLists'); 178 let tabsContent = parent.find('.tabsContent:first'); 179 //dLoader(tabsContent); 180 tabLists.find('[data-tabs-target]').removeClass('active'); 181 $(this).addClass('active'); 182 tabsContent.children('[data-tabs].active').slideUp(250).removeClass('active').promise().done(function () { 183 tabsContent.children('[data-tabs="' + tabsTarget + '"]').slideDown(250).addClass('active').promise().done(function () { 184 //dLoaderRemove(tabsContent); 185 }); 186 }); 187 } 188 }); 189}(jQuery)); 190//==========Collapse=================// 191(function ($) { 192 "use strict"; 193 $(document).on('click', '[data-collapse-target]', function () { 194 let currentTarget = $(this); 195 let target_id = currentTarget.data('collapse-target'); 196 let close_id = currentTarget.data('close-target'); 197 let target = $('[data-collapse="' + target_id + '"]'); 198 if (target_close(close_id, target_id) && collapse_close_inside(currentTarget) && target_collapse(target, currentTarget)) { 199 let clsName = currentTarget.data('add-class'); 200 if (clsName) { 201 currentTarget.toggleClass(clsName); 202 } 203 content_text_change(currentTarget); 204 content_icon_change(currentTarget); 205 } 206 loadBgImage(); 207 }); 208 $(document).on('change', 'select[data-collapse-target]', function () { 209 let currentTarget = $(this); 210 let value = currentTarget.val(); 211 currentTarget.find('option').each(function () { 212 let current_value = $(this).val(); 213 let target_id = $(this).data('option-target'); 214 let target = $('[data-collapse="' + target_id + '"]'); 215 if (current_value === value) { 216 target.slideDown(250).removeClass('mActive'); 217 } else { 218 target.slideUp(250).removeClass('mActive'); 219 } 220 }); 221 }); 222 223 function target_close(close_id, target_id) { 224 $('body').find('[data-close="' + close_id + '"]:not([data-collapse="' + target_id + '"])').slide
224Up(250); 225 return true; 226 } 227 228 function target_collapse(target, $this) { 229 if ($this.is('[type="radio"]')) { 230 target.slideDown(250); 231 } else { 232 target.slideToggle(250).removeClass('mActive'); 233 } 234 return true; 235 } 236 237 function collapse_close_inside(currentTarget) { 238 let parent_target_close = currentTarget.data('collapse-close-inside'); 239 if (parent_target_close) { 240 $(parent_target_close).find('[data-collapse]').each(function () { 241 if ($(this).hasClass('mActive')) { 242 let collapse_id = $(this).data('collapse'); 243 let target_collapse = $('[data-collapse-target="' + collapse_id + '"]'); 244 if (collapse_id !== currentTarget.data('collapse-target')) { 245 $(this).slideUp(250).removeClass('mActive'); 246 let clsName = target_collapse.data('add-class'); 247 if (clsName) { 248 target_collapse.removeClass(clsName); 249 } 250 content_text_change(target_collapse); 251 content_icon_change(target_collapse); 252 } 253 } 254 }) 255 } 256 return true; 257 } 258}(jQuery)); 259//==========Group Check box==========// 260(function ($) { 261 "use strict"; 262 $(document).on('click', '.groupCheckBox .customCheckboxLabel', function () { 263 let parent = $(this).closest('.groupCheckBox'); 264 let value = ''; 265 let separator = ','; 266 parent.find(' input[type="checkbox"]').each(function () { 267 if ($(this).is(":checked")) { 268 let currentValue = $(this).attr('data-checked'); 269 value = value + (value ? separator : '') + currentValue; 270 } 271 }).promise().done(function () { 272 parent.find('input[type="text"]').val(value); 273 }); 274 }); 275 // radio 276 $(document).on('click', '[data-radio]', function () { 277 let target = $(this).closest('label'); 278 let value = $(this).attr('data-radio'); 279 target.find('.customRadio').removeClass('active'); 280 $(this).addClass('active'); 281 target.find('input').val(value).trigger('change'); 282 }); 283}(jQuery)); 284//=========validation ==============// 285(function ($) { 286 "use strict"; 287 $(document).on('keyup change', '.mpStyle .mp_number_validation', function () { 288 let n = $(this).val(); 289 $(this).val(n.replace(/\D/g, '')); 290 return true; 291 }); 292 $(document).on('keyup change', '.mpStyle .mp_price_validation', function () { 293 let n = $(this).val(); 294 $(this).val(n.replace(/[^\d.]/g, '')); 295 return true; 296 }); 297 $(document).on('keyup change', '.mpStyle .mp_name_validation', function () { 298 let n = $(this).val(); 299 $(this).val(n.replace(/[@%'":;&_]/g, '')); 300 return true; 301 }); 302}(jQuery)); 303 304//==========pagination==========// 305function ttbm_pagination_page_management(parent, pagination_page, total_item) { 306 let per_page_item = parseInt(parent.find('input[name="pagination_per_page"]').val()); 307 let total_active_page = Math.floor(total_item / per_page_item) + ((total_item % per_page_item) > 0 ? 1 : 0); 308 let page_limit_start = (pagination_page > 2) ? (pagination_page - 2) : 0; 309 let page_limit_end = (pagination_page > 2) ? (pagination_page + 2) : 4; 310 let limit_dif = total_active_page - pagination_page; 311 if (total_active_page > 5 && limit_dif < 3) { 312 page_limit_start = page_limit_start - ((limit_dif > 1) ? 1 : 2); 313 } 314 let total_page = parent.find('[data-pagination]').length; 315 for (let i = 0; i < total_page; i++) { 316 if (i < total_active_page && i >= page_limit_start && i <= page_limit_end) { 317 parent.find('[data-pagination="' + i + '"]').slideDown(200); 318 } else {
319 parent.find('[data-pagination="' + i + '"]').slideUp(200); 320 } 321 } 322 if (pagination_page > 0) { 323 parent.find('.page_prev').removeAttr('disabled'); 324 } else { 325 parent.find('.page_prev').prop('disabled', true); 326 } 327 if (pagination_page > 2 && total_active_page > 5) { 328 parent.find('.ellipse_left').slideDown(200); 329 } else { 330 parent.find('.ellipse_left').slideUp(200); 331 } 332 if (pagination_page < total_active_page - 3 && total_active_page > 5) { 333 parent.find('.ellipse_right').slideDown(200); 334 } else { 335 parent.find('.ellipse_right').slideUp(200); 336 } 337 if (pagination_page < total_active_page - 1) { 338 parent.find('.page_next').removeAttr('disabled'); 339 } else { 340 parent.find('.page_next').prop('disabled', true); 341 } 342 return true; 343} 344 345(function ($) { 346 "use strict"; 347 $(document).on('click', '.pagination_area .page_prev', function (e) { 348 e.preventDefault(); 349 let parent = $(this).closest('.pagination_area'); 350 let page_no = parseInt(parent.find('.active_pagination').data('pagination')) - 1; 351 parent.find('[data-pagination="' + page_no + '"]').trigger('click'); 352 }); 353 $(document).on('click', '.pagination_area .page_next', function (e) { 354 e.preventDefault(); 355 let parent = $(this).closest('.pagination_area'); 356 let page_no = parseInt(parent.find('.active_pagination').data('pagination')) + 1; 357 parent.find('[data-pagination="' + page_no + '"]').trigger('click'); 358 }); 359}(jQuery)); 360//==========Modal / Popup==========// 361(function ($) { 362 "use strict"; 363 $(document).on('click', '.mpStyle [data-target-popup]', function () { 364 let target = $(this).data('target-popup'); 365 $('body').addClass('noScroll').find('[data-popup="' + target + '"]').addClass('in').promise().done(function () { 366 loadBgImage(); 367 return true; 368 }); 369 return false; 370 }); 371 $(document).on('click', '.mpStyle .mpPopup .popupClose', function () { 372 $(this).closest('[data-popup]').removeClass('in'); 373 $('body').removeClass('noScroll'); 374 return true; 375 }); 376 $(document).click(function (e) { 377 let target = $(e.target); 378 let popup = target.closest('[data-popup]'); 379 if (popup.length > 0) { 380 let hLength = target.closest('.popupHeader').length; 381 let bLength = target.closest('.popupBody').length; 382 let fLength = target.closest('.popupFooter').length; 383 if (hLength === 0 && bLength === 0 && fLength === 0) { 384 popup.find('.popupClose').trigger('click'); 385 } 386 } 387 }); 388}(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.