var Cookie = {
		
	create:function(name,value,days) 
	{
		var params = '';
		if(typeof(value) == "object")
		{
			for (var key in value) 
			{
				if (value.hasOwnProperty(key)) {
					params += key+'='+this.encode(value[key])+'&';
				}
			}
			
			params = params.substr(0,params.length-1);
		}
		else
			params = value;
		
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		
		document.cookie = name+"="+encodeURIComponent(params)+expires+"; path=/";
	},
	
	is:function(cookieName)
	{
		var cookie = this.read(cookieName);
		
		if(cookie != null) return true;
		else return false;
	},
	
	get:function(cookieName)
	{
		var cookie = this.read(cookieName);
		if(cookie == null) return null;
		
		cookie = decodeURIComponent(cookie);

		if(cookie.indexOf('=') != -1)
		{
			var data = cookie.split('&')
			var object = {};
			
			for(var i=0;i<data.length;i++)
			{
				var pairs = data[i].split('=');
				object[pairs[0]] = pairs[1].replace(/\+/g,' ');
			}
			
			return object;
		}
		else
			return cookie;
	},
	
	read:function(name) 
	{
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];

			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			
			if (c.indexOf(nameEQ) == 0) 
				return c.substring(nameEQ.length,c.length);
		}

		return null;
	},
	
	erase:function(name) 
	{
		this.create(name,"",-1);
	},
		
	encode: function(str)
	{
		return encodeURIComponent(str).replace(/%20/g,'+');
	}
		
}