function set_cookie(name, value, expires, path, domain, secure) {
  // set time, it's in milliseconds
  var today = new Date();

  // defaults
  if (!expires) { expires = 60 * 60 * 24; }
  if (!path) { path = "/"; }

  expires *= 1000;
  var expires_date = new Date(today.getTime() + expires);

  // set the cookie
  document.cookie = name + "=" + escape(value) +
    ((expires) ? ";expires=" + expires_date.toGMTString() : "") + 
    ((path) ? ";path=" + path : "")  + 
    ((domain) ? ";domain=" + domain : "") +
    ((secure) ? ";secure" : "");
}

function reset_cookie(name, path, domain, secure) {
  set_cookie(name, "", -1, path, domain, secure);
}

function get_cookie(name) {
  // YYY: document.cookie only returns name=value, not the other components
  var crumbles = document.cookie.split(';');
  var temp_cookie = "";
  var cookie_name = "";
  var cookie_value = "";
  
  for (i=0; i<crumbles.length; i++) {
    // now we'll split apart each name=value pair
    temp_cookie = crumbles[i].split("=");
            
    // and trim left/right whitespace while we're at it
    cookie_name = temp_cookie[0].replace(/^\s+|\s+$/g, "");
      
    // if the extracted name matches the cookie name
    if (cookie_name == name) {
      if (temp_cookie.length > 1) /* only strip whitespace if value exists */
	cookie_value = unescape(temp_cookie[1].replace(/^\s+|\s+$/g, ""));

      return cookie_value;
    }
  }

  return null;
}

