Skip to content

Instantly share code, notes, and snippets.

@alexleone
Created August 11, 2016 14:38
Show Gist options
  • Save alexleone/e10cb35e15332be1dc551cc59c88d0ed to your computer and use it in GitHub Desktop.
Save alexleone/e10cb35e15332be1dc551cc59c88d0ed to your computer and use it in GitHub Desktop.
(function (window) {
function CookieHelper() {
}
// utility function to retrieve an expiration date in proper
// format; pass three integer parameters for the number of days, hours,
// and minutes from now you want the cookie to expire (or negative
// values for a past date); all three parameters are required,
// so use zeros where appropriate
CookieHelper.prototype.getExpDate = function getExpDate(days, hours, minutes) {
var expDate = new Date();
if (typeof days == 'number' && typeof hours == 'number' &&
typeof minutes == 'number') {
expDate.setDate(expDate.getDate() + parseInt(days));
expDate.setHours(expDate.getHours() + parseInt(hours));
expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
return expDate.toUTCString();
}
};
CookieHelper.prototype.getCookieVal = function getCookieVal(offset) {
var endstr = document.cookie.indexOf(';', offset);
if (endstr == -1) {
endstr = document.cookie.length;
}
return decodeURI(document.cookie.substring(offset, endstr));
};
// primary function to retrieve cookie by name
CookieHelper.prototype.getCookie = function getCookie(name) {
var arg = name + '=';
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) {
return this.getCookieVal(j);
}
i = document.cookie.indexOf(' ', i) + 1;
if (i == 0) break;
}
return '';
};
CookieHelper.prototype.setCookie = function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + '=' + encodeURI(value) +
((expires) ? '; expires=' + expires : '') +
((path) ? '; path=' + path : '') +
((domain) ? '; domain=' + domain : '') +
((secure) ? '; secure' : '');
};
// remove the cookie by setting ancient expiration date
CookieHelper.prototype.deleteCookie = function deleteCookie(name, path, domain) {
if (this.getCookie(name)) {
document.cookie = name + '=' +
((path) ? '; path=' + path : '') +
((domain) ? '; domain=' + domain : '') +
'; expires=Thu, 01-Jan-70 00:00:01 GMT';
}
};
window.CookieHelper = new CookieHelper();
})(window);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment