<!--
function retrieveCookie(cookieName) {
  /* retrieved in the format
  cookieName4=value; cookieName3=value; cookieName2=value; cookieName1=value
  only cookies for this domain and path will be retrieved */
  var cookieJar = document.cookie.split("; ");
  for(var x = 0; x < cookieJar.length; x++) {
    var oneCookie = cookieJar[x].split("=");
    if(oneCookie[0] == escape(cookieName)) return unescape(oneCookie[1]);
  }
  return null;
}

function setCookie(cookieName, cookieValue, lifeTime, path, domain, isSecure) {
  if(!cookieName) return false;
  if(lifeTime == "delete") lifeTime = -10; //this is past. Expires immediately.
  /* This next line sets the cookie but does not overwrite other cookies.
  syntax: cookieName=cookieValue[;expires=dataAsString[;path=pathAsString
                     [;domain=domainAsString[;secure]]]]
  Because of the way that document.cookie behaves, writing this here is
  equivalent to writing
  document.cookie = whatIAmWritingNow+"; "+document.cookie; */
  document.cookie = escape(cookieName)+"="+escape(cookieValue) +
    (lifeTime ? ";expires="+(new Date((new Date()).getTime()+(1000*lifeTime))).toGMTString() : "") +
    (path ? ";path="+path : "")+(domain ? ";domain="+domain : "")+
    (isSecure ? ";secure" : "");
  //check if the cookie has been set/deleted as required
  if(lifeTime < 0) {
    if(typeof(retrieveCookie(cookieName)) == "string") return false;
    return true;
  }
  if(typeof(retrieveCookie(cookieName)) == "string") return true;
  return false;
}
//-->

