function Cookie( name, value )
{
	this.name = name
	this.value = value 
	this.expires = null
	this.path = null
	this.domain = null
	this.secure = false
	
	this.Put = Cookie_Put
	this.Delete = Cookie_Delete
}

function Cookie_Put(name, value) 
{
	if ( this.name == "" ) return false;
	var cookiestr = this.name + "=" + escape (this.value)
	if ( this.expires ) cookiestr += "; expires=" + this.expires;
	if( this.path )	cookiestr += "; path=" + this.path;
	if ( this.domain ) cookiestr += "; domain=" + this.domain;
	if ( this.secure ) cookiestr += "; secure";
	document.cookie = cookiestr
	return true
}

function Cookie_Delete()
{
	var now = new Date()
	var d = new Date( now.getTime() - 1000 )
	this.expires = d.toGMTString();
	this.Put()
}

function GetCookie( name, defaultvalue ) 
{
	if ( name == "" ) return null;
	var cookie = new Cookie( name, defaultvalue )
	var arg = cookie.name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) 
	{
		var offset = i + alen;
		if (document.cookie.substring(i, offset) == arg)
		{
			var last = document.cookie.indexOf (";", offset);
			if (last == -1)
				last = document.cookie.length;
				
			cookie.value = document.cookie.substring(offset, last)
			break;
		}
		
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) 
			break; 
	}
	return cookie;
}

function CheckCookie( redirect )
{
	var name = "Cookie" + escape( new Date() )
	var valueOK = "Cookie"
	var valueNOK = "NoCookie"
	var cookie = new Cookie( name, valueOK )
	cookie.Put()
	cookie = GetCookie( name, valueNOK )
	if ( cookie.value == valueOK )
	{
		cookie.Delete()
		return true;
	}
	else
	{
		if ( redirect )
			document.location.href = redirect
		return false;
	}
	return true;
}
