1/** 2 * 2007-2021 ETS-Soft 3 * 4 * NOTICE OF LICENSE 5 * 6 * This file is not open source! Each license that you purchased is only available for 1 wesite only. 7 * If you want to use this file on more websites (or projects), you need to purchase additional licenses. 8 * You are not allowed to redistribute, resell, lease, license, sub-license or offer our resources to any third party. 9 * 10 * DISCLAIMER 11 * 12 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer 13 * versions in the future. If you wish to customize PrestaShop for your 14 * needs please contact us for extra customization service at an affordable price 15 * 16 * @author ETS-Soft <[email protected]> 17 * @copyright 2007-2021 ETS-Soft 18 * @license Valid for 1 website (or project) for each purchase of license 19 * International Registered Trademark & Property of ETS-Soft 20 */ 21var ets_abancart_has_browser = parseInt(ets_abancart_has_browser) || 0; 22if (ets_abancart_has_browser) { 23 document.addEventListener('DOMContentLoaded', function () { 24 if (!("Notification" in window)) { 25 //alert("This browser does not support desktop notification 1"); 26 } else if (Notification.permission !== "granted") { 27 Notification.requestPermission(); 28 } 29 }); 30} 31var ets_abancart_campaigns = ets_abancart_campaigns || [], 32 ETS_ABANCART_LINK_AJAX = ETS_ABANCART_LINK_AJAX || '', 33 ETS_ABANCART_LINK_SHOPPING_CART = ETS_ABANCART_LINK_SHOPPING_CART || '', 34 ETS_ABANCART_TEXT_COLOR = ETS_ABANCART_TEXT_COLOR || '#ffffff', 35 ETS_ABANCART_BACKGROUND_COLOR = ETS_ABANCART_BACKGROUND_COLOR || '#ff0000', 36 ets_abancart_timeout = false, 37 ets_abancart_delay = 0, 38 ets_abancart_disable_keydown = false, 39 copied_translate = copied_translate || 'Copied', 40 ets_abancart_close_title = ets_abancart_close_title || 'Close' 41; 42 43if (typeof ETS_ABANCART_LIFE_TIME == "undefined") ETS_ABANCART_LIFE_TIME = -1; 44 45/*----------LEAVE WEBSITE----------*/ 46 47//document.documentElement.addEventListener('mouseleave', ets_abancart_mouseleave); 48document.documentElement.addEventListener('mouseenter', ets_abancart_mouseenter); 49document.documentElement.addEventListener('keydown', ets_abancart_keydown); 50 51function ets_abancart_leavewebsite() { 52 var _overload = $('.ets_abancart_leave_website_overload:not(.disabled)'); 53 if (ETS_ABANCART_LINK_AJAX && _overload.length > 0 && _overload.find('.ets_abancart_wrapper').length && !_overload.hasClass('active') && !_overload.hasClass('loading')) { 54 55 _overload.addClass('loading'); 56 $.ajax({
57 type: 'POST', 58 dataType: 'JSON', 59 url: ETS_ABANCART_LINK_AJAX, 60 data: 'leave&ajax=1', 61 success: function (json) { 62 _overload.removeClass('loading'); 63 if (json) { 64 if (json.errors) { 65 _overload 66 .removeClass('active') 67 .addClass('disabled'); 68 ets_abancart_mouseenter(); 69 } else { 70 var _wrapper = _overload.find('.ets_abancart_wrapper').clone(true), 71 _html = _wrapper.length ? _wrapper.html() : ''; 72 $.each(json, function (p, item) { 73 var pattern = p.replace(/([\[\]])/g, '\\$1'), 74 regExp = new RegExp(pattern, 'g'); 75 _html = _html.replace(regExp, item); 76 }); 77 _overload.find('.ets_abancart_wrapper').addClass('form-original').after( 78 _wrapper 79 .html(_html) 80 .addClass('active') 81 ); 82 _overload.addClass('active'); 83 _overload.find('.ets_abancart_wrapper.form-original').remove(); 84 ets_ab_fn.countdown(); 85 ets_ab_fn.countdown2(); 86 if($('.ets_ac_datepicker').length){ 87 $('.ets_ac_datepicker').removeClass('hasDatepicker'); 88 $('.ets_ac_datepicker').datepicker({dateFormat:'yy-mm-dd'}); 89 } 90 if($('.ets_ac_datetimepicker').length){ 91 $('.ets_ac_datetimepicker').removeClass('hasDatepicker'); 92 $('.ets_ac_datetimepicker').datetimepicker({ 93 prevText: '', 94 nextText: '', 95 dateFormat: 'yy-mm-dd', 96 currentText: 'Now', 97 closeText: 'Done', 98 ampm: false, 99 amNames: ['AM', 'A'], 100 pmNames: ['PM', 'P'], 101 timeFormat: 'hh:mm:ss tt', 102 formatTime :'hh:mm:ss tt', 103 timeSuffix: '', 104 timeOnlyTitle: 'Choose Time', 105 timeText: 'Time', 106 hourText: 'Hour', 107 minuteText: 'Minute', 108 }); 109 } 110 111 if(json.background_color){ 112 $('.ets_abancart_leave_website_overload .ets_abancart_container').css('background-color', json.background_color); 113 } 114 if(json.popup_width){ 115 $('.ets_abancart_leave_website_overload .ets_abancart_container').css('width', json.popup_width+'px'); 116 } 117 if(json.popup_height){ 118 $('.ets_abancart_leave_website_overload .ets_abancart_container').css('height', json.popup_height+'px'); 119 } 120 if(json.border_radius){ 121 $('.ets_abancart_leave_website_overload .ets_abancart_container').css({'border-radius': json.border_radius+'px', 'overflow': 'hidden'}); 122 } 123 if(json.border_width){ 124 $('.ets_abancart_leave_website_overload .ets_abancart_container').css({'border-width': json.border_width+'px', 'border-style': 'solid'}); 125 } 126 if(json.border_color){ 127 $('.ets_abancart_leave_website_overload .ets_abancart_container').css('border-color', json.border_color); 128 } 129 if(json.padding){ 130 $('.ets_abancart_leave_website_overload .ets_abancart_container').css('border-color', json.padding+'px'); 131 } 132 if(json.close_btn_color){ 133 $('.ets_abancart_leave_website_overload .ets_abancart_container .ets_abancart_close').find('style').remove(); 134 $('.ets_abancart_leave_website_overload .ets_abancart_container .ets_abancart_close').append('<style rel="stylesheet">.ets_abancart_leave_website_overload .ets_abancart_container .ets_abancart_close:after,.ets_abancart_leave_website_overload .ets_abancart_container .ets_abancart_close:before{background-color: '+json.close_btn_color+';}</style>'); 135 } 136 if(json.font_size){ 137 $('.ets_abancart_leave_website_overload .ets_abancart_wrapper div,.ets_abancart_leave_website_overload .ets_abancart_wrapper p,.ets_abancart_leave_website_overload .ets_abancart_wrapper a').css('font-size', json.font_size+'px'); 138 } 139 if(json.vertical_align){ 140 $('.ets_abancart_leave_website_overload .ets_abancart_wrapper p,.ets_abancart_leave_website_overload .ets_abancart_wrapper a,.ets_abancart_leave_website_overload .ets_abancart_wrapper div:not(.ets_abancart_product_list_table)').css('text-align', 'inherit'); 141 $('.ets_abancart_leave_website_overload .ets_abancart_wrapper').css('text-align', json.vertical_align); 142 } 143 if(json.overlay_bg){ 144 var color = json.overlay_bg; 145 if( json.overlay_bg_opacity){ 146 var colorRgb = etsAcHexToRgb(json.overlay_bg); 147 if(colorRgb){ 148 color = 'rgba('+colorRgb.r+','+colorRgb.g+','+colorRgb.b+','+json.overlay_bg_opacity+')'; 149 } 150 } 151 $('.ets_abancart_leave_website_overload').css('background-color', color); 152 } 153 etsAcCheckHasCaptcha(_overload.find('.ets_abancart_wrapper')); 154 etsAcOnLoadRecaptcha(); 155 156 } 157 } 158 }, 159 error: function () { 160 _overload.removeClass('loading'); 161 } 162 }); 163 } 164} 165 166function etsAcCheckHasCaptcha(el) { 167 if(el.find('input[name="captcha_type"]').length){ 168 if(el.find('input[name="captcha_type"]').first().val() == 'v2'){ 169 el.prepend('
vendor: 75 bytes, line 169
169<script src="https://www.google.com/recaptcha/api.js" async defer></script>
169'); 170 } 171 else if(el.find('input[name="captcha_type"]').first().val() == 'v3'){ 172 var captchaKey = el.find('input[name="captcha_site_key"]').first().val(); 173 el.prepend('
vendor: 97 bytes, line 173
173<script src="https://www.google.com/recaptcha/api.js?render='+captchaKey+'" async defer></script>
173'); 174 } 175 } 176} 177function isIE() { 178 ua = navigator.userAgent; 179 /* MSIE used to detect old browsers and Trident used to newer ones*/ 180 var is_ie = ua.indexOf("MSIE ") > -1 || ua.indexOf("Trident/") > -1; 181 182 return is_ie; 183} 184 185function ets_abancart_mouseleave(event) { 186 var y, _ie = isIE(); 187 if (_ie) { 188 y = event.clientY || event.screenY || event.pageY; 189 } else { 190 y = event.clientY; 191 } 192 if ((y > -5 && !_ie) || (_ie && y > 5)) { 193 return; 194 } 195 ets_abancart_timeout = setTimeout(ets_abancart_leavewebsite, 0); 196} 197 198function ets_abancart_mouseenter() { 199 if (ets_abancart_timeout) { 200 clearTimeout(ets_abancart_timeout); 201 ets_abancart_timeout = null; 202 } 203} 204 205function ets_abancart_keydown(e) { 206 if (ets_abancart_disable_keydown || !e.metaKey || e.keyCode !== 76) { 207 return; 208 } 209 ets_abancart_disable_keydown = true; 210 ets_abancart_timeout = setTimeout(ets_abancart_leavewebsite, ets_abancart_delay); 211} 212 213//display a success/error/notice message 214function showSuccessMessage(msg) { 215 $.growl.notice({title: "", message: msg}); 216} 217 218function showErrorMessage(msg) { 219 $.growl.error({title: "", message: msg}); 220} 221 222/*----------END LEAVE WEBSITE----------*/ 223 224var ets_ab_fn = { 225 init: function () { 226 /*---init favicon---*/ 227 if (typeof ETSFavico !== "undefined") { 228 window.favicon = new ETSFavico({ 229 animation: 'popFade', 230 bgColor: ETS_ABANCART_BACKGROUND_COLOR, 231 textColor: ETS_ABANCART_TEXT_COLOR, 232 }); 233 ets_ab_fn.loadAjax(true); 234 } 235 /*---end init favicon---*/ 236 237 /*---init save cart---*/ 238 if (ets_abancart_campaigns) { 239 $.each(ets_abancart_campaigns, function (i, item) { 240 if (item.has_closed === null || (parseInt(item.has_closed) !== 1 && parseFloat(item.redisplay) >= 0)) { 241 setTimeout(function () { 242 ets_ab_fn.request(parseInt(item.id_ets_abancart_reminder)); 243 }, parseInt((parseFloat(item.redisplay) >= 0 ? parseFloat(item.redisplay) * 1000 : (parseFloat(item.lifetime) > 0 ? parseFloat(item.lifetime) * 1000 : 0)))); 244 } 245 }); 246 }
247 this.saveCart(); 248 249 }, 250 request: function (id) { 251 if (ETS_ABANCART_LINK_AJAX && parseInt(id) > 0) { 252 $.ajax({ 253 type: 'post', 254 url: ETS_ABANCART_LINK_AJAX, 255 dataType: 'json', 256 data: 'init&id_ets_abancart_reminder=' + id, 257 success: function (json) { 258 259 if (json) { 260 switch (json.type) { 261 case 'popup': 262 ets_ab_fn.popup(json, id); 263 break; 264 case 'bar': 265 ets_ab_fn.bar(json, id); 266 break; 267 case 'browser': 268 ets_ab_fn.browser(json, id); 269 break; 270 } 271 } 272 }, 273 }); 274 } 275 }, 276 views: function (id, json, group_class) { 277 if (id && json) { 278 // FIRST: 279 var overloadEl = '.ets_abancart_' + json.type + '_overload'; 280 if ($('.ets_abancart_' + json.type + '_overload').length <= 0) { 281 $('body').prepend('<div class="ets_abancart_' + json.type + '_overload ' + group_class + ' ets_abancart_overload" data-id="' + id + '" data-type="' + json.type + '" ' + (json.type !== 'popup' ? 'style="background-color: ' + json.background_color + '; color: ' + json.text_color + '"' : '') + '><div class="ets_table"><div class="ets_tablecell"><div class="ets_abancart_container"><div class="ets_abancart_close" title="' + ets_abancart_close_title + '"></div><div class="ets_abancart_wrapper"></div></div></div></div></div>'); 282 } 283 // NEXT: 284 var _container = $('body .ets_abancart_' + json.type + '_overload'); 285 _container 286 .attr({'data-id': id, 'data-type': json.type}) 287 .addClass('active') 288 .find('.ets_abancart_wrapper') 289 .html('<div class="ets-ac-popup-body" style="'+(json.type === 'popup' && json.popup_body_bg ? 'background-color: '+json.popup_body_bg+';' : '')+'">'+json.html+'</div>') 290 .prepend((json.type === 'popup' ? '<h4 class="ets_abancart_title" style="'+(json.header_bg ? 'background-color: '+json.header_bg+';' : '')+(json.header_text_color ? 'color: '+json.header_text_color+';' : '')+(json.header_height ? 'height: '+json.header_height+'px;' : '') + (json.header_font_size ? 'font-size: '+json.header_font_size+'px;' : '')+'">' + json.title + '</h4>' : '')) 291 ; 292 /*---HIGHLIGHT BAR---*/ 293 if (json.type !== 'popup') { 294 _container.attr('style', 'background-color: ' + json.background_color + '; color: ' + json.text_color); 295 } 296 var selectorContainer = _container.find('.ets_abancart_container'); 297 if(json.type == 'bar'){ 298 selectorContainer = _container; 299 } 300 selectorContainer.css('margin', '0 auto'); 301 if(json.popup_width) 302 selectorContainer.css('width', json.popup_width+'px'); 303 if(json.popup_height) 304 selectorContainer.css('height', json.popup_height+'px'); 305 if(json.border_radius) 306 selectorContainer.css('border-radius', json.border_radius+'px'); 307 if(json.border_width) { 308 selectorContainer.css('border-width', json.border_width + 'px'); 309 selectorContainer.css('border-style', 'solid'); 310 } 311 if(json.border_color) 312 selectorContainer.css('border-color', json.border_color); 313 if(json.close_btn_color) { 314 _container.find('.ets_abancart_close').find('style').remove(); 315 _container.find('.ets_abancart_close').append('<style>'+overloadEl+' .ets_abancart_close:before,'+overloadEl+' .ets_abancart_close:after{background-color: '+json.close_btn_color+';}</style>'); 316 } 317 if(json.vertical_align){ 318 $(overloadEl+' .ets-ac-popup-body p, '+overloadEl+' .ets-ac-popup-body a,'+overloadEl+' .ets-ac-popup-body div:not(.ets_abancart_product_list_table)').css('text-align', 'inherit'); 319 $(overloadEl+' .ets-ac-popup-body').css('text-align', json.vertical_align); 320 } 321 if(json.font_size){ 322 $(''+overloadEl+' .ets-ac-popup-body,'+overloadEl+' .ets-ac-popup-body p, '+overloadEl+' .ets-ac-popup-body a,'+overloadEl+' .ets-ac-popup-body div').css('font-size', json.font_size+'px'); 323 } 324 if(json.padding){ 325 if(json.popup_width){ 326 if(json.type == 'bar'){ 327 selectorContainer.css('padding', json.padding+'px'); 328 } 329 else 330 $(''+overloadEl+' .ets-ac-popup-body').css('padding', json.padding+'px'); 331 } 332 333 } 334 if(json.overlay_bg){ 335 var color = json.overlay_bg; 336 if(json.overlay_bg_opacity){ 337 var rgbColor = etsAcHexToRgb(json.overlay_bg); 338 color = 'rgba('+rgbColor.r+','+rgbColor.g+','+rgbColor.b+','+json.overlay_bg_opacity+')'; 339 } 340 $('.ets_abancart_popup_overload').css('background-color', color); 341 } 342 343 ets_ab_fn.countdown(); 344 ets_ab_fn.countdown2(); 345 if($('.ets_ac_datepicker').length){ 346 $('.ets_ac_datepicker').removeClass('hasDatepicker'); 347 $('.ets_ac_datepicker').datepicker({dateFormat:'yy-mm-dd'}); 348 } 349 if($('.ets_ac_datetimepicker').length){ 350 $('.ets_ac_datetimepicker').removeClass('hasDatepicker'); 351 $('.ets_ac_datetimepicker').datetimepicker({ 352 prevText: '', 353 nextText: '', 354 dateFormat: 'yy-mm-dd', 355 currentText: 'Now', 356 closeText: 'Done', 357 ampm: false, 358 amNames: ['AM', 'A'], 359 pmNames: ['PM', 'P'], 360 timeFormat: 'hh:mm:ss tt', 361 formatTime :'hh:mm:ss tt', 362 timeSuffix: '', 363 timeOnlyTitle: 'Choose Time', 364 timeText: 'Time', 365 hourText: 'Hour', 366 minuteText: 'Minute', 367 }); 368 } 369 etsAcOnLoadRecaptcha(); 370 } 371 372 }, 373 popup: function (json, id) { 374 ets_ab_fn.views(id, json, 'ets_abancart_popup'); 375 }, 376 bar: function (json, id) { 377 ets_ab_fn.views(id, json, ''); 378 }, 379 browser: function (json, id) { 380 381 if (json && id) { 382 var notification; 383 if (!("Notification" in window)) { 384 //alert("This browser does not support desktop notification 1"); 385 } else if (Notification.permission === "granted") { 386 ets_ab_fn.setNotification(notification, json, id); 387 } else if (Notification.permission !== "denied" && ets_abancart_has_browser) { 388 Notification.requestPermission().then(function (permission) { 389 if (permission === "granted") { 390 ets_ab_fn.setNotification(notification, json, id); 391 } 392 }); 393 } 394 } 395 }, 396 setNotification: function (notification, json, id) { 397 398 // New notification. 399 notification = new Notification(json.title, {icon: json.icon, body: json.html});
400 401 // Event click. 402 notification.onclick = function () { 403 if (typeof json.code !== "undefined" && json.code) { 404 $.ajax({ 405 type: 'post', 406 url: ETS_ABANCART_LINK_AJAX, 407 dataType: 'json', 408 data: 'add_cart_rule&discount_code=' + json.code, 409 success: function (json) { 410 if (json) { 411 if (json.errors) { 412 showErrorMessage(json.errors) 413 } else { 414 window.location.href = json.link_checkout; 415 } 416 } 417 }, 418 }); 419 } 420 }; 421 422 // Event close. 423 notification.onclose = function () { 424 if (id) { 425 $.ajax({ 426 type: 'post', 427 url: ETS_ABANCART_LINK_AJAX, 428 dataType: 'json', 429 data: 'type=browser&has_closed=1&id=' + id, 430 }); 431 } 432 }; 433 }, 434 close: function (type, json) { 435 $('body .ets_abancart_' + type + '_overload.active').remove(); 436 if (json.again && parseFloat(json.redisplay) > 0) { 437 setTimeout(function () { 438 ets_ab_fn.request(json.id_ets_abancart_reminder); 439 }, parseFloat(json.redisplay) > 0 ? parseFloat(json.redisplay) * 60 * 1000 : 0); 440 } 441 }, 442 countdown: function () { 443 var clock = $('.ets_abancart_count_down_clock'); 444 var style = clock.attr('data-style') || ''; 445 if (clock.length > 0) { 446 clock.countdown(parseInt(clock.data('date')) * 1000).on('update.countdown', function (event) { 447 $(this).html(event.strftime('' 448 + '<span class="ets_abancart_countdown weeks" style="'+style+'"><span>%-w</span> week%!w </span>' 449 + '<span class="ets_abancart_countdown days" style="'+style+'"><span>%-d</span> day%!d </span>' 450 + '<span class="ets_abancart_countdown hours" style="'+style+'"><span>%H</span> hr </span>' 451 + '<span class="ets_abancart_countdown minutes" style="'+style+'"><span>%M</span> min </span>' 452 + '<span class="ets_abancart_countdown seconds" style="'+style+'"><span>%S</span> sec </span>')); 453 }); 454 } 455 }, 456 countdown2: function () { 457 var clock = $('.ets_ac_evt_countdown2'); 458 var style = clock.attr('data-style') || ''; 459 if (clock.length > 0) { 460 clock.countdown(parseInt(clock.data('date')) * 1000).on('update.countdown', function (event) { 461 $(this).html(event.strftime('' 462 + '<span class="ets_ac_countdown2 weeks" style="'+style+'"><span>%-w</span> week%!w </span>' 463 + '<span class="ets_ac_countdown2 days" style="'+style+'"><span>%-d</span> day%!d </span>' 464 + '<span class="ets_ac_countdown2 hours" style="'+style+'"><span>%H</span> hr </span>' 465 + '<span class="ets_ac_countdown2 minutes" style="'+style+'"><span>%M</span> min </span>' 466 + '<span class="ets_ac_countdown2 seconds" style="'+style+'"><span>%S</span> sec </span>')); 467 }); 468 } 469 }, 470 saveCart: function () { 471 if ((ETS_ABANCART_LIFE_TIME >= 0 || $('#ets_abancart_cart_save.active').length > 0) && ETS_ABANCART_LINK_SHOPPING_CART) { 472 setTimeout(function () { 473 $.ajax({
474 type: 'POST', 475 dataType: 'json', 476 url: ETS_ABANCART_LINK_SHOPPING_CART, 477 data: 'init', 478 success: function (json) { 479 $('#ets_abancart_cart_save.active').removeClass('active'); 480 if (json) { 481 if ($('body .ets_abancart_shopping_cart_overload').length <= 0) { 482 $('body').prepend('<div class="ets_abancart_shopping_cart_overload ets_abancart_overload"><div class="ets_abancart_wrapper"></div></div>'); 483 } 484 if (json.html) 485 $('body .ets_abancart_shopping_cart_overload').addClass('active').find('.ets_abancart_wrapper').html(json.html); 486 } 487 }, 488 error: function () { 489 $('#ets_abancart_cart_save.active').removeClass('active'); 490 } 491 }); 492 }, $('#ets_abancart_cart_save.active').length > 0 ? 0 : ETS_ABANCART_LIFE_TIME * 1000); 493 } 494 }, 495 exitPopupSaveCart: function (notReDisplay) { 496 497 var notReDisplay = notReDisplay || true; 498 499 $('.ets_abancart_shopping_cart_overload.active').removeClass('active'); 500 if (notReDisplay && ETS_ABANCART_LINK_SHOPPING_CART) { 501 $('#save_cart_form .bootstrap').remove(); 502 $.ajax({
503 type: 'post', 504 url: ETS_ABANCART_LINK_SHOPPING_CART, 505 dataType: 'json', 506 data: 'ajax=1&offCart', 507 success: function () { 508 509 }, 510 error: function () { 511 512 } 513 }); 514 } 515 }, 516 exitPopupCart: function () { 517 $('.ets_abancart_display_shopping_cart_overload.active').removeClass('active'); 518 }, 519 loadAjax: function (initialized) { 520 if (typeof ETS_ABANCART_BROWSER_TAB_ENABLED === "undefined" || !ETS_ABANCART_BROWSER_TAB_ENABLED) 521 return; 522 if (initialized) { 523 favicon.badge(parseInt(ETS_ABANCART_PRODUCT_TOTAL)); 524 } else if (ETS_ABANCART_LINK_AJAX && typeof favicon !== "undefined") { 525 $.ajax({ 526 type: 'POST', 527 dataType: 'JSON', 528 url: ETS_ABANCART_LINK_AJAX, 529 data: 'favicon&ajax=1', 530 success: function (json) { 531 if (json) { 532 favicon.badge(parseInt(json.product_total)); 533 } 534 } 535 }); 536 } 537 }, 538 exitPopupLeave: function () { 539 $('.ets_abancart_leave_website_overload.active').removeClass('active'); 540 $('.ets_abancart_leave_website_overload .ets_abancart_wrapper.active').remove(); 541 }, 542 copyToClipboard: function (el) { 543 var $temp = $("<input>"); 544 $("body").append($temp); 545 $temp.val(el.text().trim()).select(); 546 document.execCommand("copy"); 547 $temp.remove(); 548 showSuccessMessage(copied_translate); 549 setTimeout(function () { 550 el.removeClass('copy'); 551 }, 300); 552 }, 553}; 554 555$(document).ready(function () { 556 557 if($('.ets_ac_datepicker').length){ 558 $('.ets_ac_datepicker').datepicker({dateFormat:'yy-mm-dd'}); 559 } 560 if($('.ets_ac_datetimepicker').length){ 561 $('.ets_ac_datetimepicker').datetimepicker({ 562 prevText: '', 563 nextText: '', 564 dateFormat: 'yy-mm-dd', 565 currentText: 'Now', 566 closeText: 'Done', 567 ampm: false, 568 amNames: ['AM', 'A'], 569 pmNames: ['PM', 'P'], 570 timeFormat: 'hh:mm:ss tt', 571 formatTime :'hh:mm:ss tt', 572 timeSuffix: '', 573 timeOnlyTitle: 'Choose Time', 574 timeText: 'Time', 575 hourText: 'Hour', 576 minuteText: 'Minute', 577 }); 578 } 579 if ($('.ets_speed_dynamic_hook').length > 0) { 580 $(document).on("hooksLoaded", function () { 581 ets_ab_fn.init(); 582 }); 583 } else 584 ets_ab_fn.init(); 585 /*---favicon---*/ 586 $(document).ajaxComplete(function (event, xhr, settings) { 587 if (typeof settings.data !== "undefined" && (settings.data.toString().match(/(qty=\d+)/i) && settings.data.toString().match(/(add=\d+)/i) || settings.url.match(/(id_product=\d+)/i) && settings.url.match(/(update=\d+)/i) || settings.url.match(/(id_product=\d+)/i) && settings.url.match(/(delete=\d+)/i))) { 588 ets_ab_fn.loadAjax(false); 589 } 590 }); 591 /*---end favicon---*/ 592 593 $(document).on('click', '.ets_abancart_box .ets_abancart_box_discount', function (ev) { 594 ev.preventDefault(); 595 ets_ab_fn.copyToClipboard($(this)); 596 }); 597 598 $(document).on('click', '.ets_abancart_leave_website_overload .ets_abancart_close', function (ev) { 599 ev.preventDefault(); 600 ets_ab_fn.exitPopupLeave(); 601 }); 602 603 604 $(document).on('click', '.ets_abancart_shopping_cart_overload .ets_abancart_create_account', function (ev) { 605 ev.preventDefault(); 606 if ($('#id_customer').length > 0 && parseInt($('#id_customer').val()) <= 0) { 607 $('.ets_abancart_form_login').fadeOut(); 608 $('.ets_abancart_form_create').fadeIn(); 609 } 610 }); 611 612 $(document).on('click', '.ets_abancart_view_shopping_cart', function (ev) { 613 ev.preventDefault(); 614 var btn = $(this); 615 if (!btn.hasClass('active') && btn.attr('href') != '') { 616 btn.addClass('active'); 617 $.ajax({
618 type: 'POST', 619 url: btn.attr('href'), 620 dataType: 'json', 621 data: 'ajax=1', 622 success: function (json) { 623 btn.removeClass('active'); 624 if (json) { 625 if ($('body .ets_abancart_display_shopping_cart_overload').length <= 0) { 626 $('body').prepend('<div class="ets_abancart_display_shopping_cart_overload ets_abancart_popup ets_abancart_overload"><div class="ets_table"><div class="ets_tablecell"><div class="ets_abancart_container"><div class="ets_abancart_close" title="' + ets_abancart_close_title + '"></div><div class="ets_abancart_wrapper"></div></div></div></div></div>'); 627 } 628 $('body .ets_abancart_display_shopping_cart_overload').addClass('active').find('.ets_abancart_wrapper').html(json.html); 629 } 630 }, 631 error: function () { 632 btn.removeClass('active'); 633 } 634 }); 635 } 636 }); 637 638 $(document).on('click', '.ets_abancart_display_shopping_cart_overload .ets_abancart_close, .ets_abancart_display_shopping_cart_overload .ets_abancart_cancel', function (ev) { 639 ev.preventDefault(); 640 ets_ab_fn.exitPopupCart(); 641 }); 642 643 $(document).on('click', '.ets_abancart_load_this_cart', function (ev) { 644 ev.preventDefault(); 645 var btn = $(this); 646 if (!btn.hasClass('active') && btn.attr('href') != '') { 647 btn.addClass('active'); 648 $.ajax({
649 type: 'POST', 650 url: btn.attr('href'), 651 dataType: 'json', 652 data: 'ajax=1', 653 success: function (json) { 654 btn.removeClass('active'); 655 if (json) { 656 if (json.errors) 657 $('body .ets_abancart_display_shopping_cart_overload').prepend(json.errors); 658 else 659 window.location.href = json.link_checkout; 660 } 661 }, 662 error: function () { 663 btn.removeClass('active'); 664 } 665 }); 666 } 667 }); 668 669 $(document).on('click', '.ets_abancart_shopping_cart_overload .ets_abancart_close', function (ev) { 670 ev.preventDefault(); 671 ets_ab_fn.exitPopupSaveCart(); 672 }); 673 674 $(document).on('click', '.ets_abancart_shopping_cart_overload button[id=submit_cart]', function (ev) { 675 ev.preventDefault(); 676 677 var btn = $(this), form = $('#save_cart_form'); 678 btn.parents('form#save_cart_form').find('input.cart_name').removeClass('error'); 679 if (!btn.hasClass('active') && form.attr('action')) { 680 btn.addClass('active'); 681 var formData = new FormData(form.get(0)); 682 formData.append('ajax', 1); 683 $('#save_cart_form .bootstrap').remove(); 684 $.ajax({
685 type: 'post', 686 url: form.attr('action'), 687 dataType: 'json', 688 data: formData, 689 processData: false, 690 contentType: false, 691 success: function (json) { 692 btn.removeClass('active'); 693 if (json) { 694 if (json.not_logged && parseInt($('#id_customer').val()) <= 0) { 695 $('.ets_abancart_form_login').fadeIn(); 696 $('.ets_abancart_form_save_cart').fadeOut(); 697 } else if (json.errors) { 698 form.prepend(json.errors); 699 btn.parents('form#save_cart_form').find('input#cart_name').addClass('error').focus(); 700 } else { 701 if (json.msg) 702 showSuccessMessage(json.msg); 703 $('#ets_abancart_cart_save').remove(); 704 ets_ab_fn.exitPopupSaveCart(false); 705 } 706 } 707 }, 708 error: function () { 709 btn.removeClass('active'); 710 } 711 }); 712 } 713 }); 714 $(document).on('change','input#cart_name',function(e){ 715 if ( $(this).val() != '' ){ 716 $(this).removeClass('error'); 717 } else { 718 $(this).addClass('error'); 719 } 720 }); 721 $(document).on('click', '.ets_abancart_shopping_cart_overload button[name=submitLogin]', function (ev) { 722 ev.preventDefault(); 723 var btn = $(this), form = $('#login_form'); 724 if (!btn.hasClass('active') && form.attr('action')) { 725 btn.addClass('active'); 726 var formData = new FormData(form.get(0)); 727 formData.append('cart_name', $('#cart_name').val()); 728 formData.append('ajax', 1); 729 $('#login_form .bootstrap').remove(); 730 $.ajax({
731 type: 'post', 732 url: form.attr('action'), 733 dataType: 'json', 734 data: formData, 735 processData: false, 736 contentType: false, 737 success: function (json) { 738 btn.removeClass('active'); 739 if (json) { 740 if (json.errors) 741 form.prepend(json.errors); 742 else 743 window.location.reload(); 744 } 745 }, 746 error: function () { 747 btn.removeClass('active'); 748 } 749 }); 750 } 751 }); 752 753 $(document).on('click', '.ets_abancart_shopping_cart_overload button[name=submitCreate]', function (ev) { 754 ev.preventDefault(); 755 var btn = $(this), form = $('#create_form'); 756 if (!btn.hasClass('active') && form.attr('action')) { 757 btn.addClass('active'); 758 var formData = new FormData(form.get(0)); 759 formData.append('cart_name', $('#cart_name').val()); 760 formData.append('ajax', 1); 761 $('#login_form .bootstrap').remove(); 762 $.ajax({
763 type: 'post', 764 url: form.attr('action'), 765 dataType: 'json', 766 data: formData, 767 processData: false, 768 contentType: false, 769 success: function (json) { 770 btn.removeClass('active'); 771 if (json) { 772 if (json.errors) 773 form.prepend(json.errors); 774 else 775 window.location.reload(); 776 } 777 }, 778 error: function () { 779 btn.removeClass('active'); 780 window.location.reload(); 781 } 782 }); 783 } 784 }); 785 786 $(document).on('click', '#ets_abancart_cart_save', function (ev) { 787 ev.preventDefault(); 788 if (!$(this).hasClass('active')) { 789 $(this).addClass('active'); 790 ets_ab_fn.saveCart(); 791 } 792 793 }); 794 795 $(document).on('click', '.ets_abancart_close, .ets_abancart_no_thanks', function (ev) { 796 ev.preventDefault(); 797 var btn = $(this), 798 overload = btn.parents('.ets_abancart_overload'), 799 id = overload.attr('data-id'), 800 type = overload.attr('data-type'); 801 $('body .ets_abancart_' + type + '_overload.active').remove(); 802 if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX && id) { 803 $.ajax({
804 type: 'post', 805 url: ETS_ABANCART_LINK_AJAX, 806 dataType: 'json', 807 data: 'type=' + type + '&has_closed=1&id=' + id + (btn.hasClass('ets_abancart_no_thanks') ? '&no_again=1' : ''), 808 success: function (json) { 809 if (json) { 810 ets_ab_fn.close(type, json); 811 } 812 } 813 }); 814 } 815 }); 816 817 $(document).on('click', '.ets_abancart_leave_website_overload .ets_abancart_no_thanks', function (ev) { 818 ev.preventDefault(); 819 var btn = $(this), 820 overload = btn.parents('.ets_abancart_overload'); 821 overload.remove(); 822 if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX) { 823 btn.addClass('active'); 824 $.ajax({ 825 type: 'post', 826 url: ETS_ABANCART_LINK_AJAX, 827 dataType: 'json', 828 data: 'offLeave', 829 success: function (json) { 830 btn.removeClass('active'); 831 if (json) { 832 833 } 834 }, 835 error: function () { 836 btn.removeClass('active'); 837 } 838 }); 839 } 840 }); 841 842 $(document).on('click', '.ets_abancart_overload .ets_abancart_add_discount', function (ev) { 843 ev.preventDefault(); 844 var btn = $(this), 845 overload = btn.parents('.ets_abancart_overload'), 846 discount_code = btn.data('code'); 847 if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX) { 848 $.ajax({
849 type: 'post', 850 url: ETS_ABANCART_LINK_AJAX, 851 dataType: 'json', 852 data: 'add_cart_rule&discount_code=' + discount_code, 853 success: function (json) { 854 if (json) { 855 if (json.errors) { 856 //overload.prepend(json.errors); 857 showErrorMessage(json.errors); 858 } else 859 window.location.href = json.link_checkout; 860 } 861 } 862 }); 863 } 864 }); 865 866 $(document).keyup(function (e) { 867 if (e.keyCode === 27) { 868 ets_ab_fn.exitPopupCart(); 869 ets_ab_fn.exitPopupSaveCart(); 870 } 871 }); 872 873 $(document).mouseup(function (e) { 874 875 var displayShoppingCart = $('.ets_abancart_display_shopping_cart_overload.active .ets_abancart_container'), 876 displayCartSave = $('.ets_abancart_shopping_cart_overload.active .ets_abancart_shopping_cart'); 877 878 if (displayShoppingCart.length > 0 && !displayShoppingCart.is(e.target) && displayShoppingCart.has(e.target).length === 0) { 879 ets_ab_fn.exitPopupCart(); 880 } 881 if (displayCartSave.length > 0 && !displayCartSave.is(e.target) && displayCartSave.has(e.target).length === 0) { 882 ets_ab_fn.exitPopupSaveCart(); 883 } 884 }); 885 886 $(document).on('click', '.ets_abancart_delete_cart, .ets_abancart_delete', function (ev) { 887 var btn = $(this); 888 if (!confirm(btn.data('confirm'))) { 889 ev.preventDefault(); 890 } 891 }); 892 893 $(document).on('click', '.js-ets-ac-btn-submit-lead-form', function (e) { 894 var $this = $(this); 895 if($this.hasClass('loading')){ 896 return false; 897 } 898 if($this.closest('form').find('.ets_ac_captchav2').length && typeof grecaptcha !== 'undefined'){ 899 if(!grecaptcha.getResponse()){ 900 $this.closest('.ets-ac-lead-form-field-shortcode').find('.form-errors').html('<div class="alert alert-danger"><ul>'+ETS_AC_TRANS.captchv2_invalid+'</ul></div>'); 901 return false; 902 } 903 } 904 var formData = new FormData(); 905 var inputDatas = $this.closest('form').serializeArray(); 906 907 $.each(inputDatas,function (i, el) { 908 if($this.closest('form').find('[name="'+el.name+'"]').attr('type') == 'file'){ 909 var fileItem = $this.closest('form').find('[name='+el.name+']')[0].files; 910 if(fileItem.length){ 911 formData.append(el.name, fileItem[0]); 912 } 913 } 914 else{ 915 formData.append(el.name, el.value); 916 } 917 }); 918 $this.closest('form').find('input[type=file]').each(function () { 919 var fileItem = $(this)[0].files; 920 if(fileItem.length){ 921 formData.append($(this).attr('name'), fileItem[0]); 922 } 923 }); 924 925 formData.append('submitEtsAcLeadForm', 1); 926 $.ajax({
927 url: ETS_AC_LINK_SUBMIT_LEAD_FORM+(ETS_AC_LINK_SUBMIT_LEAD_FORM.indexOf('?') !== -1 ? '&ajax=1' : '?ajax=1'), 928 type: 'POST', 929 dataType: 'json', 930 data: formData, 931 processData: false, 932 contentType: false, 933 dataType: 'json', 934 beforeSend: function () { 935 $this.addClass('loading'); 936 $this.prop('disabled', true); 937 }, 938 success: function(res){ 939 if(res.success){ 940 if(res.display_thankyou_page){ 941 $this.closest('.ets_abancart_wrapper').html(res.thankyou); 942 if($('.ets_abancart_popup_overload .ets_abancart_close').length){ 943 $('.ets_abancart_popup_overload .ets_abancart_close').addClass('thankyou-page'); 944 } 945 } 946 else{ 947 $this.closest('.ets-ac-lead-form-field-shortcode').html('<div class="alert alert-success">'+res.message+'</div>'); 948 } 949 } 950 else{ 951 var msg = ''; 952 $.each(res.message, function (i, el) { 953 msg += '<li>'+el+'</li>'; 954 }); 955 $this.closest('.ets-ac-lead-form-field-shortcode').find('.form-errors').html('<div class="alert alert-danger"><ul>'+msg+'</ul></div>'); 956 } 957 }, 958 complete: function () { 959 $this.removeClass('loading'); 960 $this.prop('disabled', false); 961 } 962 }); 963 return false; 964 }); 965 966 $(document).on('click', '.ets-ac-btn-submit-lead-form ', function () { 967 var $this = $(this); 968 if($this.closest('form').find('.ets_ac_captchav2').length && typeof grecaptcha !== 'undefined'){ 969 if(!grecaptcha.getResponse()){ 970 $this.closest('form').find('.ets_ac_captchav2').parent().find('.form-error-item').remove(); 971 $this.closest('form').find('.ets_ac_captchav2').after('<p class="form-error-item">'+ETS_AC_TRANS.captchv2_invalid+'</p>'); 972 return false; 973 } 974 } 975 }); 976 $(document).mouseleave(function () { 977 setTimeout(ets_abancart_leavewebsite, 0) 978 }); 979 980}); 981 982function etsAcHexToRgb(hex) { 983 // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") 984 var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; 985 hex = hex.replace(shorthandRegex, function(m, r, g, b) { 986 return r + r + g + g + b + b; 987 }); 988 989 var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); 990 return result ? { 991 r: parseInt(result[1], 16), 992 g: parseInt(result[2], 16), 993 b: parseInt(result[3], 16) 994 } : null; 995}
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.