/* PageState cookie helper library.
Version 1.0
29 Jun 2005
Adamv.com

Requires "foreach".
*/

var PageState = {
	epoch: "Thu, 01-Jan-70 00:00:01 GMT",
	getAll: function(){
		var values = new Object();
		foreach(document.cookie.split(";"), function(datum){
			var pair = datum.split("=");
			values[pair[0]] = unescape(pair[1]);
		});
		return values;
	},
	
	get: function(name, default_){
		var value=default_;
		foreach(document.cookie.split(";"), function(datum){
			var pair = datum.split("=");
			if (pair[0]==name){value=unescape(pair[1]); return true;}
		});		
		return value;
	},
	
	set: function(name, value, options){
		var things = new Array();
		
		if (value==null) value = "";
		value = escape(value);
		
		function add_option(option_name){
			if (options[option_name]!=null)
				things.push(option_name+"="+options[option_name]);
		}
		
		things.push(name + "=" + escape(value));
		foreach(["expires","path","domain","secure"], add_option);	
		document.cookie = things.join("; ");
	},

	remove: function(name, options){
		if (options == null) options = new Object();
		options["expires"] = PageState.epoch;
		PageState.set(name, null, options);
	}
};
