var expDays = 30;
var expires = new Date(); 
expires.setTime(expires.getTime() + (expDays*24*60*60*1000));

// *******************************************************************************
//	Original zone - dependent document
//	Any function work on the current document of the caller
// *******************************************************************************

// ***** Create Cookies

function SetCookie (name,value,expires,path,domain,secure)
{
	document.cookie = name + "=" + escape (value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

// ***** Retrieve Cookie Values

function getCookieVal (offset)
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

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 getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0)
			break;
	}
	return null;
}

// ***** Delete Cookies

function DeleteCookie (name,path,domain) 
{
	if( GetCookie(name) )
	{
		document.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

// ***** Test if cookies are available

function havecookies ()
{
	var cookieEnabled=(navigator.cookieEnabled)? true : false

	if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled)
	{ 
		document.cookie="testcookie"
		cookieEnabled=(document.cookie=="testcookie")? true : false
		document.cookie=""
	}
	return cookieEnabled;
}


// *******************************************************************************
//	New zone - independent document
//	Caller need to supply any function with the concerning document in order to work
// *******************************************************************************

// ***** Create Cookies

function SetCookieDoc (doc,name,value,expires,path,domain,secure)
{
	doc.cookie = name + "=" + escape (value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

// ***** Retrieve Cookie Values

function getCookieDocVal (doc,offset)
{
	var endstr = doc.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = doc.cookie.length;
	return unescape(doc.cookie.substring(offset, endstr));
}

function GetCookieDoc (doc,name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = doc.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (doc.cookie.substring(i, j) == arg)
			return getCookieVal (j);
		i = doc.cookie.indexOf(" ", i) + 1;
		if (i == 0)
			break;
	}
	return null;
}

// ***** Delete Cookies

function DeleteCookieDoc (doc,name,path,domain) 
{
	if( GetCookieDoc(doc,name) )
	{
		doc.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}
