function Cookie( document, name, days, path, domain, secure )
{
	this.$document = document;
	this.$name = name;
	
	if( days )
		this.$expiration = new Date((new Date()).getTime() + (days * 24 * 60 * 60 * 1000) );
	else
		this.$expiration = null;
		
	if( path )
		this.$path = path;
	else
		this.$path = null;
		
	if( domain )
		this.$domain = domain;
	else
		this.$domain = null;
		
	if( secure )
		this.$secure = secure;
	else
		this.$secure = null;	
}

function _CookieStore()
{
	var cookieval = "";
	for( var prop in this )
	{
		if( (prop.charAt(0) == '$') || ((typeof this[prop]) == 'function' ))
			continue;
		if( cookieval != "")
			cookieval += '&';
		cookieval += prop + ':' + escape( this[prop] );
	}
	
	var cookie = this.$name + '=' + cookieval;
	if( this.$expiration )
		cookie += '; expires=' + this.$expiration.toGMTString();
	if( this.$path )
		cookie += '; path=' + this.$path();
	if( this.$domain )
		cookie += '; domain=' + this.$domain();
	if( this.$secure )
		cookie += '; secure()';
		
	this.$document.cookie = cookie;
}

function _CookieLoad()
{
	var allCookies = this.$document.cookie;

	if( allCookies == "" )
		return false;
	
	var start = allCookies.indexOf( this.$name + '=' );
	if( start == -1 )
		return false;
	start += this.$name.length + 1;
	var end = allCookies.indexOf( ';', start );
	if( end == -1 )
		end = allCookies.length;
	var cookieval = allCookies.substring( start, end );
	
	
	var a = cookieval.split( '&' );
	for( var i = 0; i < a.length; i++ )
		a[i] = a[i].split( ':' );
		
	for( var i = 0; i < a.length; i++ )
	{
		if( a[i].length > 1 )
			this[a[i][0]] = unescape(a[i][1]);
		else
			this["value"] = unescape(a[i][0]);		
	}
	
	return true;
}

function _CookieRemove()
{
	var cookie;
	cookie = this.$name + '=';
	if( this.$path )
		cookie += '; path=' + this.$path();
	if( this.$domain )
		cookie += '; domain=' + this.$domain();
	cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';
	
	this.$document.cookie = cookie;
	
}
new Cookie();
Cookie.prototype.store = _CookieStore;
Cookie.prototype.load = _CookieLoad;
Cookie.prototype.remove = _CookieRemove;