{"version":3,"file":"apbct-public.min.js","sources":["apbct-public.js"],"sourcesContent":["(function() {\n\n\tvar ct_date = new Date(),\n\t\tctTimeMs = new Date().getTime(),\n\t\tctMouseEventTimerFlag = true, //Reading interval flag\n\t\tctMouseData = [],\n\t\tctMouseDataCounter = 0,\n\t\tctCheckedEmails = {};\n\n\tfunction apbct_attach_event_handler(elem, event, callback){\n\t\tif(typeof window.addEventListener === \"function\") elem.addEventListener(event, callback);\n\t\telse elem.attachEvent(event, callback);\n\t}\n\n\tfunction apbct_remove_event_handler(elem, event, callback){\n\t\tif(typeof window.removeEventListener === \"function\") elem.removeEventListener(event, callback);\n\t\telse elem.detachEvent(event, callback);\n\t}\n\n\t//Writing first key press timestamp\n\tvar ctFunctionFirstKey = function output(event){\n\t\tvar KeyTimestamp = Math.floor(new Date().getTime()/1000);\n\t\tctSetCookie(\"ct_fkp_timestamp\", KeyTimestamp);\n\t\tctKeyStopStopListening();\n\t};\n\n\t//Reading interval\n\tvar ctMouseReadInterval = setInterval(function(){\n\t\tctMouseEventTimerFlag = true;\n\t}, 150);\n\n\t//Writting interval\n\tvar ctMouseWriteDataInterval = setInterval(function(){\n\t\tctSetCookie(\"ct_pointer_data\", JSON.stringify(ctMouseData));\n\t}, 1200);\n\n\t//Logging mouse position each 150 ms\n\tvar ctFunctionMouseMove = function output(event){\n\t\tctSetMouseMoved();\n\t\tif(ctMouseEventTimerFlag === true){\n\n\t\t\tctMouseData.push([\n\t\t\t\tMath.round(event.clientY),\n\t\t\t\tMath.round(event.clientX),\n\t\t\t\tMath.round(new Date().getTime() - ctTimeMs)\n\t\t\t]);\n\n\t\t\tctMouseDataCounter++;\n\t\t\tctMouseEventTimerFlag = false;\n\t\t\tif(ctMouseDataCounter >= 50){\n\t\t\t\tctMouseStopData();\n\t\t\t}\n\t\t}\n\t};\n\n\t//Stop mouse observing function\n\tfunction ctMouseStopData(){\n\t\tapbct_remove_event_handler(window, \"mousemove\", ctFunctionMouseMove);\n\t\tclearInterval(ctMouseReadInterval);\n\t\tclearInterval(ctMouseWriteDataInterval);\n\t}\n\n\t//Stop key listening function\n\tfunction ctKeyStopStopListening(){\n\t\tapbct_remove_event_handler(window, \"mousedown\", ctFunctionFirstKey);\n\t\tapbct_remove_event_handler(window, \"keydown\", ctFunctionFirstKey);\n\t}\n\n\tfunction checkEmail(e) {\n\t\tvar current_email = e.target.value;\n\t\tif (current_email && !(current_email in ctCheckedEmails)) {\n\t\t\t// Using REST API handler\n\t\t\tif( ctPublicFunctions.data__ajax_type === 'rest' ){\n\t\t\t\tapbct_public_sendREST(\n\t\t\t\t\t'check_email_before_post',\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tdata: {'email' : current_email},\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t// Using AJAX request and handler\n\t\t\t} else if( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) {\n\t\t\t\tapbct_public_sendAJAX(\n\t\t\t\t\t{\n\t\t\t\t\t\taction: 'apbct_email_check_before_post',\n\t\t\t\t\t\temail : current_email,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction ctSetPixelImg(pixelUrl) {\n\t\tctSetCookie('apbct_pixel_url', pixelUrl);\n\t\tif( +ctPublic.pixel__enabled ){\n\t\t\tif( ! document.getElementById('apbct_pixel') ) {\n\t\t\t\tjQuery('body').append( '\"Cleantalk' );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction ctGetPixelUrl() {\n\t\t// Check if pixel is already in localstorage and is not outdated\n\t\tlet local_storage_pixel_url = ctGetPixelUrlLocalstorage();\n\t\tif ( local_storage_pixel_url !== false ) {\n\t\t\tif ( ctIsOutdatedPixelUrlLocalstorage(local_storage_pixel_url) ) {\n\t\t\t\tctCleaPixelUrlLocalstorage(local_storage_pixel_url)\n\t\t\t} else {\n\t\t\t\t//if so - load pixel from localstorage and draw it skipping AJAX\n\t\t\t\tctSetPixelImg(local_storage_pixel_url);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// Using REST API handler\n\t\tif( ctPublicFunctions.data__ajax_type === 'rest' ){\n\t\t\tapbct_public_sendREST(\n\t\t\t\t'apbct_get_pixel_url',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t//set pixel url to localstorage\n\t\t\t\t\t\t\tif ( ! ctGetPixelUrlLocalstorage() ){\n\t\t\t\t\t\t\t\tctSetPixelUrlLocalstorage(result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//then run pixel drawing\n\t\t\t\t\t\t\tctSetPixelImg(result);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t// Using AJAX request and handler\n\t\t}else{\n\t\t\tapbct_public_sendAJAX(\n\t\t\t\t{\n\t\t\t\t\taction: 'apbct_get_pixel_url',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnotJson: true,\n\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t//set pixel url to localstorage\n\t\t\t\t\t\t\tif ( ! ctGetPixelUrlLocalstorage() ){\n\t\t\t\t\t\t\t\tctSetPixelUrlLocalstorage(result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//then run pixel drawing\n\t\t\t\t\t\t\tctSetPixelImg(result);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction ctSetHasScrolled() {\n\t\tif( ! apbctLocalStorage.isSet('ct_has_scrolled') || ! apbctLocalStorage.get('ct_has_scrolled') ) {\n\t\t\tctSetCookie(\"ct_has_scrolled\", 'true');\n\t\t\tapbctLocalStorage.set('ct_has_scrolled', true);\n\t\t}\n\t}\n\n\tfunction ctSetMouseMoved() {\n\t\tif( ! apbctLocalStorage.isSet('ct_mouse_moved') || ! apbctLocalStorage.get('ct_mouse_moved') ) {\n\t\t\tctSetCookie(\"ct_mouse_moved\", 'true');\n\t\t\tapbctLocalStorage.set('ct_mouse_moved', true);\n\t\t}\n\t}\n\n\tapbct_attach_event_handler(window, \"mousemove\", ctFunctionMouseMove);\n\tapbct_attach_event_handler(window, \"mousedown\", ctFunctionFirstKey);\n\tapbct_attach_event_handler(window, \"keydown\", ctFunctionFirstKey);\n\tapbct_attach_event_handler(window, \"scroll\", ctSetHasScrolled);\n\n\t// Ready function\n\tfunction apbct_ready(){\n\n\t\t// Collect scrolling info\n\t\tvar initCookies = [\n\t\t\t[\"ct_ps_timestamp\", Math.floor(new Date().getTime() / 1000)],\n\t\t\t[\"ct_fkp_timestamp\", \"0\"],\n\t\t\t[\"ct_pointer_data\", \"0\"],\n\t\t\t[\"ct_timezone\", ct_date.getTimezoneOffset()/60*(-1) ],\n\t\t\t[\"ct_screen_info\", apbctGetScreenInfo()],\n\t\t\t[\"apbct_headless\", navigator.webdriver],\n\t\t];\n\n\t\tif( ctPublic.data__cookies_type !== 'native' ) {\n\t\t\tinitCookies.push(['apbct_visible_fields', '0']);\n\t\t} else {\n\t\t\t// Delete all visible fields cookies on load the page\n\t\t\tvar cookiesArray = document.cookie.split(\";\");\n\t\t\tif( cookiesArray.length !== 0 ) {\n\t\t\t\tfor ( var i = 0; i < cookiesArray.length; i++ ) {\n\t\t\t\t\tvar currentCookie = cookiesArray[i].trim();\n\t\t\t\t\tvar cookieName = currentCookie.split(\"=\")[0];\n\t\t\t\t\tif( cookieName.indexOf(\"apbct_visible_fields_\") === 0 ) {\n\t\t\t\t\t\tctDeleteCookie(cookieName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( +ctPublic.pixel__setting ){\n\t\t\tif( +ctPublic.pixel__enabled ){\n\t\t\t\tctGetPixelUrl()\n\t\t\t} else {\n\t\t\t\tinitCookies.push(['apbct_pixel_url', ctPublic.pixel__url]);\n\t\t\t}\n\t\t}\n\n\t\tif ( +ctPublic.data__email_check_before_post) {\n\t\t\tinitCookies.push(['ct_checked_emails', '0']);\n\t\t\tjQuery(\"input[type = 'email'], #email\").blur(checkEmail);\n\t\t}\n\n\t\tctSetCookie(initCookies);\n\n\t\tsetTimeout(function(){\n\n\t\t\tfor(var i = 0; i < document.forms.length; i++){\n\t\t\t\tvar form = document.forms[i];\n\n\t\t\t\t//Exclusion for forms\n\t\t\t\tif (\n\t\t\t\t\t+ctPublic.data__visible_fields_required === 0 ||\n\t\t\t\t\tform.method.toString().toLowerCase() === 'get' ||\n\t\t\t\t\tform.classList.contains('slp_search_form') || //StoreLocatorPlus form\n\t\t\t\t\tform.parentElement.classList.contains('mec-booking') ||\n\t\t\t\t\tform.action.toString().indexOf('activehosted.com') !== -1 || // Active Campaign\n\t\t\t\t\t(form.id && form.id === 'caspioform') || //Caspio Form\n\t\t\t\t\t(form.classList && form.classList.contains('tinkoffPayRow')) || // TinkoffPayForm\n\t\t\t\t\t(form.classList && form.classList.contains('give-form')) || // GiveWP\n\t\t\t\t\t(form.id && form.id === 'ult-forgot-password-form') || //ult forgot password\n\t\t\t\t\t(form.id && form.id.toString().indexOf('calculatedfields') !== -1) || // CalculatedFieldsForm\n\t\t\t\t\t(form.id && form.id.toString().indexOf('sac-form') !== -1) || // Simple Ajax Chat\n\t\t\t\t\t(form.id && form.id.toString().indexOf('cp_tslotsbooking_pform') !== -1) || // WP Time Slots Booking Form\n\t\t\t\t\t(form.name && form.name.toString().indexOf('cp_tslotsbooking_pform') !== -1) || // WP Time Slots Booking Form\n\t\t\t\t\tform.action.toString() === 'https://epayment.epymtservice.com/epay.jhtml' || // Custom form\n\t\t\t\t\t(form.name && form.name.toString().indexOf('tribe-bar-form') !== -1) // The Events Calendar\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar hiddenInput = document.createElement( 'input' );\n\t\t\t\thiddenInput.setAttribute( 'type', 'hidden' );\n\t\t\t\thiddenInput.setAttribute( 'id', 'apbct_visible_fields_' + i );\n\t\t\t\thiddenInput.setAttribute( 'name', 'apbct_visible_fields');\n\t\t\t\tvar visibleFieldsToInput = {};\n\t\t\t\tvisibleFieldsToInput[0] = apbct_collect_visible_fields(form);\n\t\t\t\thiddenInput.value = JSON.stringify(visibleFieldsToInput);\n\t\t\t\tform.append( hiddenInput );\n\n\t\t\t\tform.onsubmit_prev = form.onsubmit;\n\n\t\t\t\tform.ctFormIndex = i;\n\t\t\t\tform.onsubmit = function (event) {\n\n\t\t\t\t\tif ( ctPublic.data__cookies_type !== 'native' && typeof event.target.ctFormIndex !== 'undefined' ) {\n\n\t\t\t\t\t\tvar visible_fields = {};\n\t\t\t\t\t\tvisible_fields[0] = apbct_collect_visible_fields(this);\n\t\t\t\t\t\tapbct_visible_fields_set_cookie( visible_fields, event.target.ctFormIndex );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Call previous submit action\n\t\t\t\t\tif (event.target.onsubmit_prev instanceof Function) {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tevent.target.onsubmit_prev.call(event.target, event);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t}, 1000);\n\n\t\t// Listen clicks on encoded emails\n\t\tlet decodedEmailNodes = document.querySelectorAll(\"[data-original-string]\");\n\t\tif (decodedEmailNodes.length) {\n\t\t\tfor (let i = 0; i < decodedEmailNodes.length; ++i) {\n\t\t\t\tif (\n\t\t\t\t\tdecodedEmailNodes[i].parentElement.href ||\n\t\t\t\t\tdecodedEmailNodes[i].parentElement.parentElement.href\n\t\t\t\t) {\n\t\t\t\t\t// Skip listening click on hyperlinks\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdecodedEmailNodes[i].addEventListener('click', function ctFillDecodedEmailHandler(event) {\n\t\t\t\t\tthis.removeEventListener('click', ctFillDecodedEmailHandler);\n\t\t\t\t\tapbctAjaxEmailDecode(event);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tapbct_attach_event_handler(window, \"DOMContentLoaded\", apbct_ready);\n\n}());\n\nfunction apbctAjaxEmailDecode(event){\n\tconst element = event.target;\n\telement.setAttribute('title', ctPublicFunctions.text__wait_for_decoding);\n\telement.style.cursor = 'progress';\n\t// Using REST API handler\n\tif( ctPublicFunctions.data__ajax_type === 'rest' ){\n\t\tapbct_public_sendREST(\n\t\t\t'apbct_decode_email',\n\t\t\t{\n\t\t\t\tdata: {encodedEmail: event.target.dataset.originalString},\n\t\t\t\tmethod: 'POST',\n\t\t\t\tcallback: function (result) {\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\tctFillDecodedEmail(result.data, event.target);\n\t\t\t\t\t\telement.setAttribute('title', '');\n\t\t\t\t\t\telement.removeAttribute('style');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t\t// Using AJAX request and handler\n\t}else{\n\t\tapbct_public_sendAJAX(\n\t\t\t{\n\t\t\t\taction: 'apbct_decode_email',\n\t\t\t\tencodedEmail: event.target.dataset.originalString\n\t\t\t},\n\t\t\t{\n\t\t\t\tnotJson: true,\n\t\t\t\tcallback: function (result) {\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\tctFillDecodedEmail(result.data, event.target);\n\t\t\t\t\t\telement.setAttribute('title', '');\n\t\t\t\t\t\telement.removeAttribute('style');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n}\n\nfunction ctFillDecodedEmail(result, targetElement){\n\ttargetElement.innerHTML = result;\n}\n\nfunction apbct_collect_visible_fields( form ) {\n\n\t// Get only fields\n\tvar inputs = [],\n\t\tinputs_visible = '',\n\t\tinputs_visible_count = 0,\n\t\tinputs_invisible = '',\n\t\tinputs_invisible_count = 0,\n\t\tinputs_with_duplicate_names = [];\n\n\tfor(var key in form.elements){\n\t\tif(!isNaN(+key))\n\t\t\tinputs[key] = form.elements[key];\n\t}\n\n\t// Filter fields\n\tinputs = inputs.filter(function(elem){\n\n\t\t// Filter already added fields\n\t\tif( inputs_with_duplicate_names.indexOf( elem.getAttribute('name') ) !== -1 ){\n\t\t\treturn false;\n\t\t}\n\t\t// Filter inputs with same names for type == radio\n\t\tif( -1 !== ['radio', 'checkbox'].indexOf( elem.getAttribute(\"type\") )){\n\t\t\tinputs_with_duplicate_names.push( elem.getAttribute('name') );\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t});\n\n\t// Visible fields\n\tinputs.forEach(function(elem, i, elements){\n\t\t// Unnecessary fields\n\t\tif(\n\t\t\telem.getAttribute(\"type\") === \"submit\" || // type == submit\n\t\t\telem.getAttribute('name') === null ||\n\t\t\telem.getAttribute('name') === 'ct_checkjs'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\t// Invisible fields\n\t\tif(\n\t\t\tgetComputedStyle(elem).display === \"none\" || // hidden\n\t\t\tgetComputedStyle(elem).visibility === \"hidden\" || // hidden\n\t\t\tgetComputedStyle(elem).opacity === \"0\" || // hidden\n\t\t\telem.getAttribute(\"type\") === \"hidden\" // type == hidden\n\t\t) {\n\t\t\tif( elem.classList.contains(\"wp-editor-area\") ) {\n\t\t\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t\t\t\tinputs_visible_count++;\n\t\t\t} else {\n\t\t\t\tinputs_invisible += \" \" + elem.getAttribute(\"name\");\n\t\t\t\tinputs_invisible_count++;\n\t\t\t}\n\t\t}\n\t\t// Visible fields\n\t\telse {\n\t\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t\t\tinputs_visible_count++;\n\t\t}\n\n\t});\n\n\tinputs_invisible = inputs_invisible.trim();\n\tinputs_visible = inputs_visible.trim();\n\n\treturn {\n\t\tvisible_fields : inputs_visible,\n\t\tvisible_fields_count : inputs_visible_count,\n\t\tinvisible_fields : inputs_invisible,\n\t\tinvisible_fields_count : inputs_invisible_count,\n\t}\n\n}\n\nfunction apbct_visible_fields_set_cookie( visible_fields_collection, form_id ) {\n\n\tvar collection = typeof visible_fields_collection === 'object' && visible_fields_collection !== null ? visible_fields_collection : {};\n\n\tif( ctPublic.data__cookies_type === 'native' ) {\n\t\tfor ( var i in collection ) {\n\t\t\tif ( i > 10 ) {\n\t\t\t\t// Do not generate more than 10 cookies\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar collectionIndex = form_id !== undefined ? form_id : i;\n\t\t\tctSetCookie(\"apbct_visible_fields_\" + collectionIndex, JSON.stringify( collection[i] ) );\n\t\t}\n\t} else {\n\t\tctSetCookie(\"apbct_visible_fields\", JSON.stringify( collection ) );\n\t}\n}\n\nfunction apbct_js_keys__set_input_value(result, data, params, obj){\n\tif( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) {\n\t\tvar elements = document.querySelectorAll('[name^=ct_checkjs]');\n\t\tfor ( var i = 0; i < elements.length; i++ ) {\n\t\t\telements[i].value = result.js_key;\n\t\t}\n\t}\n}\n\nfunction apbctGetScreenInfo() {\n\treturn JSON.stringify({\n\t\tfullWidth : document.documentElement.scrollWidth,\n\t\tfullHeight : Math.max(\n\t\t\tdocument.body.scrollHeight, document.documentElement.scrollHeight,\n\t\t\tdocument.body.offsetHeight, document.documentElement.offsetHeight,\n\t\t\tdocument.body.clientHeight, document.documentElement.clientHeight\n\t\t),\n\t\tvisibleWidth : document.documentElement.clientWidth,\n\t\tvisibleHeight : document.documentElement.clientHeight,\n\t});\n}\n\nif(typeof jQuery !== 'undefined') {\n\n\t// Capturing responses and output block message for unknown AJAX forms\n\tjQuery(document).ajaxComplete(function (event, xhr, settings) {\n\t\tif (xhr.responseText && xhr.responseText.indexOf('\"apbct') !== -1) {\n\t\t\tvar response = JSON.parse(xhr.responseText);\n\t\t\tif (typeof response.apbct !== 'undefined') {\n\t\t\t\tresponse = response.apbct;\n\t\t\t\tif (response.blocked) {\n\t\t\t\t\tdocument.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent( \"apbctAjaxBockAlert\", {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tdetail: { message: response.comment }\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\t// Show the result by modal\n\t\t\t\t\tcleantalkModal.loaded = response.comment;\n\t\t\t\t\tcleantalkModal.open();\n\n\t\t\t\t\tif(+response.stop_script == 1)\n\t\t\t\t\t\twindow.stop();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction ctSetPixelUrlLocalstorage(ajax_pixel_url) {\n\t//set pixel to the storage\n\tlocalStorage.setItem('session_pixel_url', ajax_pixel_url)\n\t//set pixel timestamp to the storage\n\tlocalStorage.setItem(ajax_pixel_url, Math.floor(Date.now() / 1000).toString())\n}\n\nfunction ctGetPixelUrlLocalstorage() {\n\tlet local_storage_pixel = localStorage.getItem('session_pixel_url');\n\tif ( local_storage_pixel !== null ) {\n\t\treturn local_storage_pixel;\n\t} else {\n\t\treturn false;\n\t}\n}\n\nfunction ctIsOutdatedPixelUrlLocalstorage(local_storage_pixel_url) {\n\tlet local_storage_pixel_timestamp = Number(localStorage.getItem(local_storage_pixel_url));\n\tlet current_timestamp = Math.floor(Date.now() / 1000).toString()\n\tlet timestamp_difference = current_timestamp - local_storage_pixel_timestamp;\n\treturn timestamp_difference > 3600 * 3;\n}\n\nfunction ctCleaPixelUrlLocalstorage(local_storage_pixel_url) {\n\t//remove timestamp\n\tlocalStorage.removeItem(local_storage_pixel_url)\n\t//remove pixel itself\n\tlocalStorage.removeItem('session_pixel_url')\n}"],"names":["apbctAjaxEmailDecode","event","element","target","setAttribute","ctPublicFunctions","text__wait_for_decoding","style","cursor","data__ajax_type","apbct_public_sendREST","data","encodedEmail","dataset","originalString","method","callback","result","success","ctFillDecodedEmail","removeAttribute","apbct_public_sendAJAX","action","notJson","targetElement","innerHTML","apbct_collect_visible_fields","form","key","inputs","inputs_visible","inputs_visible_count","inputs_invisible","inputs_invisible_count","inputs_with_duplicate_names","elements","isNaN","filter","elem","indexOf","getAttribute","push","forEach","i","getComputedStyle","display","visibility","opacity","classList","contains","trim","visible_fields","visible_fields_count","invisible_fields","invisible_fields_count","apbct_visible_fields_set_cookie","visible_fields_collection","form_id","collection","ctPublic","data__cookies_type","ctSetCookie","undefined","JSON","stringify","apbct_js_keys__set_input_value","params","obj","document","querySelectorAll","length","value","js_key","apbctGetScreenInfo","fullWidth","documentElement","scrollWidth","fullHeight","Math","max","body","scrollHeight","offsetHeight","clientHeight","visibleWidth","clientWidth","visibleHeight","ctSetPixelUrlLocalstorage","ajax_pixel_url","localStorage","setItem","floor","Date","now","toString","ctGetPixelUrlLocalstorage","let","local_storage_pixel","getItem","ctIsOutdatedPixelUrlLocalstorage","local_storage_pixel_url","local_storage_pixel_timestamp","Number","ctCleaPixelUrlLocalstorage","removeItem","ct_date","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","ctCheckedEmails","apbct_attach_event_handler","window","addEventListener","attachEvent","apbct_remove_event_handler","removeEventListener","detachEvent","ctFunctionFirstKey","KeyTimestamp","ctMouseReadInterval","setInterval","ctMouseWriteDataInterval","ctFunctionMouseMove","apbctLocalStorage","isSet","get","set","round","clientY","clientX","clearInterval","checkEmail","e","current_email","email","timestamp","ctSetPixelImg","pixelUrl","pixel__enabled","getElementById","jQuery","append","initCookies","getTimezoneOffset","navigator","webdriver","cookiesArray","cookie","split","cookieName","ctDeleteCookie","pixel__setting","ctGetPixelUrl","pixel__url","data__email_check_before_post","blur","setTimeout","forms","hiddenInput","visibleFieldsToInput","data__visible_fields_required","toLowerCase","parentElement","id","name","createElement","onsubmit_prev","onsubmit","ctFormIndex","this","Function","call","decodedEmailNodes","href","ctFillDecodedEmailHandler","ajaxComplete","xhr","settings","responseText","response","parse","apbct","blocked","dispatchEvent","CustomEvent","bubbles","detail","message","comment","cleantalkModal","loaded","open","stop_script","stop"],"mappings":"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"}