You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.4 KiB
85 lines
2.4 KiB
2 years ago
|
/*******************************************************
|
||
|
COOKIE FUNCTIONALITY
|
||
|
Based on "Night of the Living Cookie" by Bill Dortch
|
||
|
(c) 2003, Ryan Parman
|
||
|
http://www.skyzyx.com
|
||
|
Distributed according to SkyGPL 2.1, http://www.skyzyx.com/license/
|
||
|
*******************************************************/
|
||
|
function cookie(name, value, expires, path, domain, secure)
|
||
|
{
|
||
|
// Passed Values
|
||
|
this.name=name;
|
||
|
this.value=value;
|
||
|
this.expires=expires;
|
||
|
this.path=path;
|
||
|
this.domain=domain;
|
||
|
this.secure=secure;
|
||
|
|
||
|
// Read cookie
|
||
|
this.read=function()
|
||
|
{
|
||
|
// To allow for faster parsing
|
||
|
var ck=document.cookie;
|
||
|
|
||
|
var arg = this.name + "=";
|
||
|
var alen = arg.length;
|
||
|
var clen = ck.length;
|
||
|
var i = 0;
|
||
|
|
||
|
while (i < clen)
|
||
|
{
|
||
|
var j = i + alen;
|
||
|
if (ck.substring(i, j) == arg)
|
||
|
{
|
||
|
var endstr = ck.indexOf (";", j);
|
||
|
if (endstr == -1) endstr = ck.length;
|
||
|
return unescape(ck.substring(j, endstr));
|
||
|
}
|
||
|
i = ck.indexOf(" ", i) + 1;
|
||
|
if (i == 0) break;
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
|
||
|
// Set cookie
|
||
|
this.set=function()
|
||
|
{
|
||
|
// Store initial value of "this.expires" for re-initialization.
|
||
|
expStore=this.expires;
|
||
|
|
||
|
// Set time to absolute zero.
|
||
|
exp = new Date();
|
||
|
base = new Date(0);
|
||
|
skew = base.getTime();
|
||
|
if (skew > 0) exp.setTime (exp.getTime() - skew);
|
||
|
exp.setTime(exp.getTime() + (this.expires*24*60*60*1000));
|
||
|
this.expires=exp;
|
||
|
|
||
|
document.cookie = this.name + "=" + escape (this.value) +
|
||
|
((this.expires) ? "; expires=" + this.expires.toGMTString() : "") +
|
||
|
((this.path) ? "; path=" + this.path : "") +
|
||
|
((this.domain) ? "; domain=" + this.domain : "") +
|
||
|
((this.secure) ? "; secure" : "");
|
||
|
|
||
|
// Re-initialize
|
||
|
this.expires=expStore;
|
||
|
};
|
||
|
|
||
|
// Kill cookie
|
||
|
this.kill=function()
|
||
|
{
|
||
|
document.cookie = this.name + "=" +
|
||
|
((this.path) ? "; path=" + this.path : "") +
|
||
|
((this.domain) ? "; domain=" + this.domain : "") +
|
||
|
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
|
||
|
};
|
||
|
|
||
|
// Change cookie settings.
|
||
|
this.changeName=function(chName) { this.kill(); this.name=chName; this.set(); };
|
||
|
this.changeVal=function(chVal) { this.kill(); this.value=chVal; this.set(); };
|
||
|
this.changeExp=function(chExp) { this.kill(); this.expires=chExp; this.set(); };
|
||
|
this.changePath=function(chPath) { this.kill(); this.path=chPath; this.set(); };
|
||
|
this.changeDomain=function(chDom) { this.kill(); this.domain=chDom; this.set(); };
|
||
|
this.changeSecurity=function(chSec) { this.kill(); this.secure=chSec; this.set(); }
|
||
|
}
|