var cookie	= {
 vars		: null,
 _encode	: function(str) {
  var retval	= ""; str = str +"";
  for(var i=str.length-1;i>=0;i--) {
   retval	+= str.charCodeAt(i);
   if(i) retval	+= "a";
  } return retval;
 },

 _decode	: function(str) {
  var a,retval	= "";
  if(typeof(str)!="string" || str=="") return "";
  a		= str.split("a");
  for(var i=a.length-1;i>=0;i--)
   retval	+= String.fromCharCode(a[i]);
  return retval;
 },

 init		: function() {
  var i, j, tmp1, tmp2		= null;
  if(cookie.vars) return;
  cookie.vars			= new Array();
  if(!document.cookie) return;
  tmp1				= document.cookie.split(";");
  for(i=0;i<tmp1.length;i++) {
   tmp2				= tmp1[i].split("=");
   for(j=0;j<tmp2[0].length;j++) if(tmp2[0].charAt(j)!=" ") { 
    tmp2[0] = unescape(cookie._decode(tmp2[0].substring(j))); break; 
   } cookie.vars[tmp2[0]]	= unescape(cookie._decode(tmp2[1]));
  }
 },

 isEnabled	: function() { 
  return window.navigator.cookieEnabled;
 },

 set		: function(name, value, date) {
  ename				= escape(cookie._encode(name));
  document.cookie		= ename + "=" + escape(cookie._encode(value)) 
  				+ (date?"; expires="+date.toGMTString():"");
  cookie.vars[name]		= value;
 },

 setEx		: function(name, value, date, path, domain, secure) {
  ename				= escape(cookie._encode(name));
  var str			= ename +"="+escape(cookie._encode(value))+"; ";
  if(date) str			+="expires="+date.toGMTString()+"; ";
  if(path) str			+="path="+path+"; ";
  if(domain) str		+="domain="+domain+"; ";
  if(secure) str		+="secure";
  document.cookie		= str;
  cookie.vars[name]		= value;
 },

 get		: function(name, defval) {
  return (cookie.vars[name]?cookie.vars[name]:defval);
 },

 setExpire	: function(name, date) {
  ename				= escape(cookie._encode(name));
  document.cookie		= ename + "=" + cookie.vars[name]
  				+ "; expires="+date.toGMTString();
 }
};

cookie.init();
