/* PageState cookie helper library.
	Version 1.0
	29 Jun 2005
	http://adamv.dev/dev/javascript/pagestate
*/
var PageState = {
	epoch: new Date("Thu, 01-Jan-70 00:00:01 GMT"),
	getAll: function(){
		var values = new Object();
		if (document.cookie == "") return values;
		
		var cookies = document.cookie.split(";");
		for(var i=0;i<cookies.length;i++){
			var pair = cookies[i].split("=");
			values[pair[0]] = unescape(pair[1]);
		}
		return values;
	},
	
	get: function(name, default_){
		if (document.cookie == "") return default_;
		
		var cookies = document.cookie.split(";");
		name = escape(name);
		for(var i=0;i<cookies.length;i++){
			var pair = cookies[i].split("=");
			if (name==pair[0]) return unescape(pair[1]);
		}
		return default_;
	},
	
	set: function(name, value, options){
		var cookie_parts = new Array();
		log([name,value,object_props(options)], ", ");
						
		if (value==null) value = "";
		cookie_parts.push(escape(name) + "=" + escape(value));
		
		if (options){
			var expires = options["expires"];
			if (expires != null) {
				if (typeof expires != "Date") expires = new Date(expires);
				cookie_parts.push("expires="+expires.toGMTString());
			}
			
			var path = options["path"];
			if (path != null)
				cookie_parts.push("path="+path);
	
			var domain = options["domain"];
			if (domain != null)
				cookie_parts.push("domain="+domain);
				
			if (options["secure"]) cookie_parts.push("secure");
		}
				

		document.cookie = cookie_parts.join("; ");
	},

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