/**
 * Provides a simple interface for creating, retrieving and clearing cookies.
 * 
 */
CookieJar = Class.create({
  OPERA: (navigator.userAgent.toLowerCase().indexOf("opera") != -1),
  get: function(name) {
    var result = null;
    document.cookie.split('; ').each(function(cookies) {
      var crumb = cookies.split('=');
      if (crumb[0] == name && crumb[1] != null) {
        result = crumb[1];
      }
    });
    return (this.OPERA && result != null) ? result.replace(/%22/g, '"') : result;
  },
  set: function(name, value, days) {
    if (this.OPERA) value = value.replace(/"/g, "%22");
    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+"="+value+expires+"; path=/";
  },
  clear: function(name) {
    this.setCookie(name, "", false);
  }
});

var cookie = new CookieJar();