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