function getCookieVal(offset) {
  var endPos = document.cookie.indexOf (";", offset);
  if (endPos == -1) endPos = document.cookie.length;
  return unescape(document.cookie.substring(offset, endPos));
}

function getCookie(name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

function setCookie(name, value) {
  var argv = setCookie.arguments;
  var argc = setCookie.arguments.length;
  var expires = (2 < argc) ? argv[2] : null;
  var path = (3 < argc) ? argv[3] : null;
  var domain = (4 < argc) ? argv[4] : null;
  var secure = (5 < argc) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}


function deleteCookie(name) {
  document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
  
function isCookieEnabled() {
  if (typeof document.cookie != 'string') return false;
  var unique = new Date().getTime() + '';
  setCookie('_mycookietest', unique, new Date(new Date().getTime() + (3600000*24*30)));  // expires in a month
  if (getCookie('_mycookietest') != unique) return false;
  deleteCookie('_mycookietest');
  return true;
}