/* $Id: Cookie.js 30848 2005-08-20 15:18:45Z ronald $ */
function baseCookie() {
	if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
}

baseCookie.prototype.setCookie = function (key, value) {
	document.cookie = key + "=" + escape(value);
}

baseCookie.prototype.getCookie = function (key) {
	if (this.cookies) {
		var start = this.cookies.indexOf(' ' + key + '=');
		if (start == -1) { return null; }
		var end = this.cookies.indexOf(";", start);
		if (end == -1) { end = this.cookies.length; }
		end -= start;
		var cookie = this.cookies.substr(start,end);
		return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
	}
	else { return null; }
}

/**
 * setCookie(name, value, days, path);
 *
 * Days and path are optional.
 *
 * Expire the cookie in 'days' days. If 'days' is 0 it expires if the browser/
 * session exits.
 */
function setCookie(name, value) {
	var nrDays = (arguments.length > 2) ? arguments[2] : 31;
	var path = (arguments.length > 3) ? arguments[3] : "/";
	var expiryDate = new Date();
	expiryDate.setTime (expiryDate.getTime() + (nrDays * 24 * 60 * 60 * 1000));
	var result = name + "=" + escape(value);
	if (nrDays > 0) {
		result += "; expires=" + expiryDate.toGMTString();
	}
	result += "; path="+path;
	document.cookie = result;
}

function getCookie(name, defaultValue) {
	var numOfCookies = document.cookie.length;
	var nameOfCookie = name + "=";
	var cookieLen = nameOfCookie.length;
	var x = 0;
	while (x <= numOfCookies) {
		var y = (x + cookieLen);
		if (document.cookie.substring(x, y) == nameOfCookie) {
			return valueOfCookie(y);
		}
		x = document.cookie.indexOf(" ", x) + 1;
		if (x == 0) {
			break;
		}
	}
	if (defaultValue) {
		return defaultValue;
	}
	return null;
}

function valueOfCookie(val) {
	if ((endOfCookie = document.cookie.indexOf(";", val)) == -1) {
		endOfCookie = document.cookie.length;
	}
	return unescape(document.cookie.substring(val, endOfCookie));
}

function deleteCookie(nameOfCookie) {
	if (nameOfCookie == "") {
		document.cookie = "";
	} else {
		var yesterday = new Date();
		yesterday.setDate(yesterday.getDate() - 1);
		document.cookie = nameOfCookie + "=; expires=" + yesterday.toGMTString() + "; path=/;"
	}
}

