(function(){ areCookiesEnabled = function() { // Credit for this function goes to: http://stackoverflow.com/a/18114024/764723 var cookieEnabled = navigator.cookieEnabled; var cookieEnabledSupported; // When cookieEnabled flag is present and false then cookies are disabled. if (cookieEnabled === false) { return false; } // If cookieEnabled is null or undefined then assume the browser // doesn't support this flag if (cookieEnabled !== false && !cookieEnabled) { cookieEnabledSupported = false; } else { cookieEnabledSupported = true; } // try to set a test cookie if we can't see any cookies and we're using // either a browser that doesn't support navigator.cookieEnabled // or IE (which always returns true for navigator.cookieEnabled) if (!document.cookie && (!cookieEnabledSupported || /*@cc_on!@*/false)) { document.cookie = "testcookie=1"; if (!document.cookie) { return false; } else { document.cookie = "testcookie=; expires=" + new Date(0).toUTCString(); } } return true; }; var createXMLHttp = function() { var xmlHttp = null; // Use XMLHttpRequest where available if (typeof(XMLHttpRequest) !== undefined) { xmlHttp = new XMLHttpRequest(); return xmlHttp; // IE } else if (window.ActiveXObject) { var ieXMLHttpVersions = ['MSXML2.XMLHttp.5.0', 'MSXML2.XMLHttp.4.0', 'MSXML2.XMLHttp.3.0', 'MSXML2.XMLHttp', 'Microsoft.XMLHttp']; for (var i = 0; i < ieXMLHttpVersions.length; i++) { try { xmlHttp = new ActiveXObject(ieXMLHttpVersions[i]); return xmlHttp; } catch (e) {} } } }; if(!areCookiesEnabled()) { // If cookies are disabled then storing the timezone in the user's // session is a hopeless task and will trigger a request for each // page load. Therefore, we shouldn't bother. return; } var xmlHttp = createXMLHttp(); if(xmlHttp) { xmlHttp.open('post', window.tz_set_endpoint, true); xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xmlHttp.setRequestHeader('X-CSRFToken', window.csrf_token); xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xmlHttp.send("offset=" + (new Date()).getTimezoneOffset()); } }());