<!--[CDATA[


/*-------------------------------------------
KOY WebDev Cookie Manipulation Functions
Copyright (C) 2003 KOY Software/KOY Web Development

Version: 0.0.0001
Modified: 12/25/2002
Created: 12/10/2002


[Function List]
External
	- LoadCookies()
	- GetCookie(name)
	- SetCookie(name, value, expire, domain, path, secure)
	- DeleteCookie(name)
	- GetExpire(value, type)

[External Variables]

[External Constants]
__EXPIRE_MILLISECOND
__EXPIRE_SECOND
__EXPIRE_MINUTE
__EXPIRE_HOUR
__EXPIRE_DAY
__EXPIRE_MONTH
__EXPIRE_YEAR
--------------------------------------------*/




/*-------------------------------------------
Global Constants
--------------------------------------------*/
/* External */
var __EXPIRE_MILLISECOND = 0;
var __EXPIRE_SECOND = 1;
var __EXPIRE_MINUTE = 2;
var __EXPIRE_HOUR = 3;
var __EXPIRE_DAY = 4;
var __EXPIRE_MONTH = 5;
var __EXPIRE_YEAR = 6;




/*--------------------------------------------------------------------------------------
LoadCookies()
	Returns array containing cookie variables, or null if retrieval failed.
--------------------------------------------------------------------------------------*/
function LoadCookies() {
	var i = 0, j = 0;
	var nstart, nstop, iname;
	var cvar, cookie = document.cookie;
	var _COOKIE = new Array();
	
	if (cookie == "") return null;
	cookie = cookie.split("; ");
	
	for (i = 0; i < cookie.length; i++) {
		cvar = cookie[i].split("=");
		nstart = cvar[0].indexOf("[");
		if (cvar.length > 1) {
			if (nstart == -1) {
				_COOKIE[cvar[0]] = unescape(cvar[1]);
				for (j = 2; j < cvar.length; j++) {
					_COOKIE[cvar[0]] += "=" + unescape(cvar[j]);
				}
			} else {
				iname = cvar[0].substring(0, nstart);
				if (_COOKIE[iname] == null) _COOKIE[iname] = new Array();
				if (typeof(_COOKIE[iname]) == "object") {
					nstop = cvar[0].indexOf("]");
					if (nstop == -1) nstop = cvar[0].length;
					_COOKIE[iname][cvar[0].substring(nstart + 1, nstop)] = unescape(cvar[1]);
					for (j = 2; j < cvar.length; j++) {
						_COOKIE[iname][cvar[0].substring(nstart + 1, nstop)] += "=" + unescape(cvar[j]);
					}
				}
			}
		}
	}
	return _COOKIE;
}


/*--------------------------------------------------------------------------------------
GetCookie(name)
	name		Name of cookie to retrieve.
	
	Returns contents of cookie, or null if retrieval failed.
--------------------------------------------------------------------------------------*/
function GetCookie(name) {
	var i = 0, j = 0;
	var cvar, cookie = document.cookie;
	var cout = "";
	
	if (cookie == "") return null;
	cookie = cookie.split("; ");
	
	for (i = 0; i < cookie.length; i++) {
		cvar = cookie[i].split("=");
		if (cvar.length > 1 && cvar[0] == name) {
			cout = unescape(cvar[1]);
			for (j = 2; j < cvar.length; j++) {
				cout += "=" + unescape(cvar[j]);
			}
			return cout;
		}
	}
	return null;
}


/*--------------------------------------------------------------------------------------
SetCookie(name, value, expire, domain, path, secure)
	name		Name of cookie to set.
	value		Contents of cookie.
	expire		Cookie expiration date, in milliseconds.
	domain		Allows the cookie to be shared across a domain.
	path		Allows the cookie to be shared across a domain path.
	secure		Cookie can only be accessed from a secure environment.
--------------------------------------------------------------------------------------*/
function SetCookie(name, value, expire, domain, path, secure) {
	var cookie;
	var expdate = new Date();

	cookie = name + "=" + escape(value);
	if (expire) {
		expdate.setTime(expdate.getTime() + expire);
		cookie += "; expires=" + expdate.toGMTString();
	}
	if (domain) cookie += "; domain=" + domain;
	if (path) cookie += "; path=" + path;
	if (secure) cookie += "; secure";
	document.cookie = cookie;
	return;
}


/*--------------------------------------------------------------------------------------
DeleteCookie(name)
	name		Name of cookie to delete.
--------------------------------------------------------------------------------------*/
function DeleteCookie(name) {
	var expdate = new Date();
	expdate.setTime (expdate.getTime() - 1000000000);
	document.cookie = name + "=; expires=" + expdate.toGMTString();
	return;
}


/*--------------------------------------------------------------------------------------
GetExpire(value, type)
	value		Value to transform, depends on type argument.
	type		Type specifier for value. Can be __EXPIRE_MILLISECOND,
				__EXPIRE_SECOND, __EXPIRE_MINUTE, __EXPIRE_HOUR, __EXPIRE_DAY
				__EXPIRE_MONTH, or __EXPIRE_YEAR.
	
	Returns value scaled by type in milliseconds. Used to set the expiration date
	of a cookie. For example, to cause a cookie to expire in one hour, you would use:
	SetCookie("testcookie", "testvalue", GetExpire(1, __EXPIRE_HOUR))
--------------------------------------------------------------------------------------*/
function GetExpire(value, type) {
	switch (type) {
		case 0: /*__EXPIRE_MILLISECOND*/ return value;
		case 1: /*__EXPIRE_SECOND*/ return 1000 * value;
		case 2: /*__EXPIRE_MINUTE*/ return 60000 * value;
		case 3: /*__EXPIRE_HOUR*/ return 3600000 * value;
		case 4: /*__EXPIRE_DAY*/ return 86400000 * value;
		case 5: /*__EXPIRE_MONTH*/ return 2678400000 * value;
		case 6: /*__EXPIRE_YEAR*/ return 31536000000 * value;
		default: return value;
	}
	return;
}


// ]]-->