function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i =0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } } function delete_cookie(cname) { var d = new Date(); d.setTime(d.getTime()); var expires = "expires="+d.toUTCString(); document.cookie = cname + '=;path=/;expires='+expires; } function generateVisitorId() { const now = new Date(); const milliseconds = now.getMilliseconds(); // Format milliseconds to 3 digits const formattedMilliseconds = milliseconds.toString().padStart(3, '0'); // Format date and time const year = now.getFullYear(); const month = String(now.getMonth() + 1).padStart(2, '0'); const day = String(now.getDate()).padStart(2, '0'); const hours = String(now.getHours()).padStart(2, '0'); const minutes = String(now.getMinutes()).padStart(2, '0'); const seconds = String(now.getSeconds()).padStart(2, '0'); // Combine to form the visit ID const visitorId = `${year}${month}${day}${hours}${minutes}${seconds}${formattedMilliseconds}`; return visitorId; } function getBrowser() { const userAgent = navigator.userAgent; const browserArray = { '/msie/i': 'Internet Explorer', '/firefox/i': 'Firefox', '/safari/i': 'Safari', '/chrome/i': 'Chrome', '/edge/i': 'Edge', '/opera/i': 'Opera', '/netscape/i': 'Netscape', '/maxthon/i': 'Maxthon', '/konqueror/i': 'Konqueror', '/mobile/i': 'Handheld Browser' }; let browser = "Unknown Browser"; for (const [regex, value] of Object.entries(browserArray)) { const pattern = new RegExp(regex, 'i'); if (pattern.test(userAgent)) { browser = value; break; } } return browser; } function getDevice() { const userAgent = navigator.userAgent.toLowerCase(); let tabletBrowser = 0; let mobileBrowser = 0; if (/tablet|ipad|android(?!.*(mobi|opera mini))/i.test(userAgent)) { tabletBrowser++; } if (/up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|iemobile/i.test(userAgent)) { mobileBrowser++; } if (/opera mini/i.test(userAgent)) { mobileBrowser++; const stockUa = navigator.userAgent.toLowerCase(); // Simulates HTTP_X_OPERAMINI_PHONE_UA if (/tablet|ipad|android(?!.*mobile)/i.test(stockUa)) { tabletBrowser++; } } let device; if (tabletBrowser > 0) { device = 'Tablet'; } else if (mobileBrowser > 0) { device = 'Mobile'; } else { device = 'Desktop'; } let deviceType; if (userAgent.includes("windows")) deviceType = "windows"; else if (userAgent.includes("android")) deviceType = "android"; else if (userAgent.includes("iphone")) deviceType = "iPhone"; else if (userAgent.includes("ipad")) deviceType = "iPad"; else if (userAgent.includes("ios")) deviceType = "IOS"; return JSON.stringify({ name: device, type: deviceType }); } function getURLInfo() { const protocol = window.location.protocol; // "http:" or "https:" const domain = window.location.host; // Domain name and port const pageUrl = window.location.href; return JSON.stringify({ protocol: protocol, domain: domain, pageUrl: pageUrl }); } function getUserAgent() { // User agent const userAgent = navigator.userAgent; return userAgent; } function triggerAjax(endpoint, data) { // Create a new XMLHttpRequest object var xhr = new XMLHttpRequest(); // Set up the request xhr.open("POST", endpoint, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Define what happens on successful data submission xhr.onload = function() { return xhr; }; // Define what happens in case of an error xhr.onerror = function() { return "Internal Server Error: Could not complete the request."; }; // Send the request xhr.send(data); } let ip_address = document.getElementById("adivaha-wrapper-track-trace").getAttribute("data-ip-address"); if(!getCookie("adhpid")) { setCookie("adhpid", "77A211"); } // if(getCookie("adhpid") != "77A211") { // setCookie("adhpid", "77A211"); // } if(!getCookie("visitor_id")) { var visitorId = generateVisitorId(); setCookie("visitor_id", visitorId); } var adh_email_viewed = ""; if(getCookie("adh_email_viewed")) { adh_email_viewed = getCookie("adh_email_viewed"); } var Ticket_ID = ""; if(getCookie("Ticket_ID")) { Ticket_ID = getCookie("Ticket_ID"); } var endpoint = "https://www.abengines.com/ui/track-api.php"; // Prepare the data to be sent var data = "action=track_user_record" + "&pid=" + getCookie("adhpid") + "&visitorId=" + getCookie("visitor_id") + "&ip_address=" + encodeURIComponent(ip_address) + "&adh_email_viewed=" + encodeURIComponent(adh_email_viewed) + "&Ticket_ID=" + encodeURIComponent(Ticket_ID) + "&user_agent_details=" + encodeURIComponent(getUserAgent()) + "&url_details=" + encodeURIComponent(getURLInfo()) + "&http_referrer=" + encodeURIComponent(document.referrer) + "&device_details=" + encodeURIComponent(getDevice()) + "&browser_details=" + encodeURIComponent(getBrowser()); // console.log(JSON.stringify(data)); var track_user_record = triggerAjax(endpoint, data);