var caution = false;

// name : name of the cookie
// value : value of the cookie
// [expires] : expiration date of cookie (defaults: end of current session)
// [path] : path for which the cookie is valid (default: path of calling document)
// [domain] : domain for which the cookie is valid (default: domain of calling document)
// [secure] : flag, indicating if cookie transmission requires a secure transmission (default: not require)
function setCookie(name, value, expires, path, domain, secure)
{
	var curCookie = name + '=' + escape(value) +
		((expires) ? '; expires = ' + expires.toGMTString() : '') +
		((path) ? '; path = ' + path : '') +
		((domain) ? '; domain = ' + domain : '') +
		((secure) ? '; secure' : '');
	if (!caution || (name + '=' + escape(value)).length <= 4000)
		document.cookie = curCookie;
	else
		if (confirm('Cookie exceeds 4KB and will be cut!'))
			document.cookie = curCookie;
}

// name : name of the desired cookie
// return string containing value of specified cookie, return NULL if cookie dose not exist
function getCookie(name, subname)
{
	var prefix = name + '=';
	var cookieStartIndex = document.cookie.indexOf(prefix);
	if (cookieStartIndex == -1)
		return null;

	var cookieEndIndex = document.cookie.indexOf(';', cookieStartIndex + prefix.length);
	if (cookieEndIndex == -1)
		cookieEndIndex = document.cookie.length;

	if (!subname)
		return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
	else
	{
		var subcookie = document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex);
		prefix = subname + '=';
		cookieStartIndex = subcookie.indexOf(prefix);
		if (cookieStartIndex == -1)
			return null;
		cookieEndIndex = subcookie.indexOf('&', cookieStartIndex + prefix.length);
		if (cookieEndIndex == -1)
			cookieEndIndex = subcookie.length;
		return unescape(subcookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
	}
}

// name : name of the cookie
// [path] : path of the cookie (must be same as created)
// [domain] : domain of the cookie (must be same as created)
function deleteCookie(name, path, domain)
{
	if (getCookie(name))
	{
		document.cookie = name + '=' + 
			((path) ? '; path = ' + path : '') +
			((domain) ? '; domain = ' + domain : '') +
			 '; expires = Wednesday, 04-Nov-1997 23:00:00 GMT';
	}
}

//Check if cookies is enable, return 0 if enable, 1 if error
function detectCookies()
{
	var retour = 0;
	setCookie('TestCookiesEnable', 'Enable');
	if(getCookie('TestCookiesEnable') == null)
		retour = 1;
	deleteCookie('TestCookiesEnable');
	return retour;
}
