function list_cookies() { var all_cookies = document.cookie.split(';'); var a_string = ''; for (var i = 1 ; i <= all_cookies.length; i++) { a_string += all_cookies[i-1] + "&"; } return a_string; } function set_cookie(name,value,days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } function get_cookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } function erase_cookie(name) { // document.cookie = name+'=; Max-Age=-99999999;'; document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } function get_url_vars(url) { var vars = {}; var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } function encode(r){ return r.replace(/[\x26\x0A\<>]/g,function(r){return""}) } function push_datalayer(data_layer,source) { // always push data to server var http = new XMLHttpRequest(); var url = data_layer; console.log(JSON.stringify(dataLayer)); var tritonx_input=''; for(let i = 0; i < dataLayer.length; i++) { if(typeof(dataLayer[i]['tritonx'])!= 'undefined') { tritonx_input = dataLayer[i]['tritonx']; } } //console.log(tritonx_input); if(typeof(dataLayer) != 'undefined' && typeof(tritonx_input) != 'undefined' && tritonx_input.length>0) { var url_params = get_url_vars(window.location.href); var source = ''; if(typeof(url_params['utm_source']) != 'undefined') { source = url_params['utm_source']; } // console.log(tritonx_input); var t_input_string = encode(JSON.stringify(tritonx_input)); var params = list_cookies() +'&tx_datalayer='+t_input_string+'&utm_source='+source; //console.log("1"); console.log(params); var check_input = 0; if(params.includes("tx_user=1")==true) { check_input = 1; } if(params.includes("tx_identifier")==true) { check_input = 1; } if(params.includes("external_id")==true && params.includes('"external_id":"undefined"')==false) { check_input = 1; } if(params.includes("pageCategory")==false) { check_input = 0; } if(check_input==1) { http.open('POST', url, true); http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.onreadystatechange = function() { //console.log("Result"); //console.log(http.responseText); if(http.readyState == 4 && http.status == 200) { console.log(http.responseText); var tx_arr = JSON.parse(http.responseText); set_cookie('tx_identifier',tx_arr.tx_identifier,365); var session_hour = 1/24; set_cookie('tx_session',tx_arr.tx_session,session_hour); } else if(http.status == 403) { erase_cookie('tx_identifier'); erase_cookie('tx_session'); } } http.send(params); } } } function include(filename, onload) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.src = filename; script.type = 'text/javascript'; script.onload = script.onreadystatechange = function() { if (script.readyState) { if (script.readyState === 'complete' || script.readyState === 'loaded') { script.onreadystatechange = null; onload(); } } else { onload(); } }; head.appendChild(script); } function wait(ms){ var start = new Date().getTime(); var end = start; while(end < start + ms) { end = new Date().getTime(); } } //////////////////////////////////////////////////////////////////////////////////////// var data_layer = "https://engagement.tritonx.nl/eng/push_datalayer/"; var source = ""; push_datalayer(data_layer,source); // push every 5 seconds data window.setInterval(function() { //push_data(); }, 5000); ;