72 lines
2.6 KiB
JavaScript
72 lines
2.6 KiB
JavaScript
(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());
|
|
}
|
|
|
|
}()); |