function guid() { function s4() { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); } return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); } function getCookie(name) { return sessionStorage[name]; } function createCookie(name, value) { sessionStorage[name] = value; return value; } function getDefaultUrl() { return "https://tracker.thinkindot.com/api/event"; } function getObjectId(object) { var event = object.event; var objectUrl = event.object_url; var objectId = "0"; if (objectUrl !== undefined) { if (object.object_id_regex !== undefined && object.object_id_regex !== null) { var regex = new RegExp(object.object_id_regex); objectId = regex.exec(objectUrl); } // fallback if (objectId === undefined || objectId === null || objectId === NaN) { if (objectUrl.indexOf("?") !== -1) { objectUrl = objectUrl.split("?")[0]; } if (objectUrl.indexOf("#") !== -1) { objectUrl = objectUrl.split("#")[0]; } if (objectUrl.indexOf("/notas/") !== -1) { var urlParts = objectUrl.split("/"); var titleParts = urlParts[4].split("-"); objectId = titleParts[0]; } else { var urlParts = objectUrl.split("/"); var titleParts = urlParts[3].split("-"); objectId = titleParts[titleParts.length - 1].replace("n", ""); } } } return objectId + ""; } function tracker_event(object) { if (object.event !== undefined) { object.event.session_id = getSession(); object.event.unique_user_id = getUniqueUserId(); if (!object.event.object_id) { object.event.object_id = getObjectId(object); } var http = new XMLHttpRequest(); http.open("POST", object.url, true); http.setRequestHeader("Content-type", "application/json"); http.onreadystatechange = function () { //Call a function when the state changes. if (http.readyState == 4 && http.status == 200) { console.log(http.responseText); } } http.send(JSON.stringify(object.event)); } } function getUserRelatedContent(pObj, callback) { var userIdType = "session"; if (pObj.userId !== undefined) { userIdType = "backend"; } var url = getDefaultUrl() + "/" + pObj.organizationId + "/" + pObj.applicationId + "/user/" + pObj.userId + "/content/" + pObj.contentId + "/relatedContent?userIdType=" + userIdType + "&dateFrom=" + pObj.dateFrom + "&dateTo=" + pObj.dateTo; url = encodeURI(url); var http = new XMLHttpRequest(); http.open("GET", url, true); http.setRequestHeader("Content-type", "application/json"); http.onreadystatechange = function () { //Call a function when the state changes. if (http.readyState == 4 && http.status == 200) { callback(http.responseText); } }; http.send(); } function getSession() { var cookie = getCookie("session"); if (cookie == undefined) { cookie = createCookie("session", guid()); } return cookie; } function getUniqueUserId() { var uuid = guid(); if (localStorage !== undefined) { if (localStorage['tracker_uid'] === undefined) { localStorage['tracker_uid'] = uuid; } else { uuid = localStorage['tracker_uid']; } } return uuid; }