
function Cookie_store(){
	var cookieval="";
	for(var prop in this){
		if((prop.toString().charAt(0)=="$")||((typeof this[prop])=="function"))
			continue;
		if(escape(this[prop])>0){
			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 Cookie_load(){
	var allcookies=this.$document.cookie;
	if(allcookies=="")return false;

	 var start=allcookies.indexOf(this.$name+"=");
	 if(start==-1)return false //cookie not defined for this page
	 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("&");// break it into array of namevalue pairs
	 for(var i=0;i<a.length;i++)
	 	a[i]=a[i].split(":");
	 for(var i=0;i<a.length;i++)
	 	this[a[i][0]]=unescape(a[i][1]);
	 return true;
 }

 function Cookie_remove(){
	 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;
 }



function Cookie(document,name,hours,path,domain,secure){
	this.$document=document;
	this.$name=name;
	if(hours)
		this.$expiration=new Date(new Date().getTime()+hours*3600000);
	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;

	this.store=Cookie_store;
	this.load=Cookie_load;
	this.remove=Cookie_remove;

}