function readCookie(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; } //Skapa en cookie, value = '' så tas den bort function createCookie(name, value) { document.cookie = name + "=" + value + "; path=/"; } function logClose() { createCookie('LogOffCookie', new Date().getTime() + ''); return 'Browser close button clicked'; } function getParameterByName(name) { var url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) { return null; } if (!results[2]) { return ''; } return decodeURIComponent(results[2].replace(/\+/g, " ")); } function postLog(kategori: string, message: string, errorhash: string, content: any) { try { var logObject = { ClientTimestamp: new Date().toUTCString(), ServerErrorId: null, UserAgent: navigator.userAgent, WindowSize: { innerHeight: window.innerHeight, innerWidth: window.innerWidth }, Message: message, Stacktrace: content, LocationHash: location.hash, Navigations: null, Savings: null, IsRedBalloon: false, IsBalloon: false, ErrorHash: errorhash }; var xsrfValue: string = readCookie('XSRF-TOKEN'); var fasitsessionid: string = readCookie('.fasitsessionid'); var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.open("POST", '/WebAPI/api/Log1/' + kategori+'/', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('X-XSRF-TOKEN', xsrfValue); xhr.setRequestHeader('X-SessionId', fasitsessionid); xhr.send(JSON.stringify( logObject )); } catch (e) { } } function checkForReload() { var kontorId = getParameterByName("kontorId"); if (kontorId !== null && kontorId !== "") { // Vi vill inte göra något här då användaren bar abytt kontor } else { var cookieTime = readCookie('LogOffCookie'); if (cookieTime !== '') { var lastTime: number = parseInt(cookieTime); var now = new Date().getTime(); var difference = now - lastTime; var reload = difference < 20000; //Töm Cookie createCookie('LogOffCookie', ''); if (reload) { postLog('Warn', 'Omladdning loggad', 'Omladdning: ' + difference + 'ms', null); } } } } window.onerror = function (msg, url, lineNo, columnNo, error) { postLog('Error', msg, 'Låsning', error.stack) } window.onunload = logClose; checkForReload();