W.Cookie = {

	set : function(param, value)
	{
		var today 	= new Date();
		var name	= param.name || param;
		var value	= param.value || value;
		var expires	= param.expires;
		var path	= param.path;
		var domain	= param.domain;
		var secure	= param.secure;
		
		if (value === null || value === undefined) { return this.remove(param); }

		today.setTime(today.getTime());

		if (expires) { expires = expires * 1000 * 60 * 60 * 24; }
	
		var expires_date	= new Date(today.getTime() + (expires));
		document.cookie 	= name + '=' + escape(value) +
							  ((expires) ? ';expires=' + expires_date.toGMTString() : '') + //expires.toGMTString()
							  ((path) ? ';path=' + path : '') +
							  ((domain) ? ';domain=' + domain : '') +
							  ((secure) ? ';secure' : '');
							  
		return true;
	},
	
	
	
	get : function(name)
	{
		var start	= document.cookie.indexOf(name + "=");
		var len		= start + name.length + 1;
		
		if ((!start) && (name != document.cookie.substring(0, name.length))) { return null; }
		if (start == -1) { return null; }
		
		var end = document.cookie.indexOf(';', len);
		if (end == -1) { end = document.cookie.length; }
		
		return unescape(document.cookie.substring(len, end));
	},
	
	
	
	remove : function(param)
	{
		var name	= param.name || param;		// can pass cookie name as a string instead of an object
		var path	= param.path;
		var domain	= param.domain;
		
		if (this.get(name)) {
			document.cookie = name + '=' +
							  ((path) ? ';path=' + path : '') +
							  ((domain) ? ';domain=' + domain : '') +
							  ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
			return true;
		}
		
		return false;
	}
};
