/*==============================================================================    Routines written by John Gardner - 2003 - 2005    See www.braemoor.co.uk/software for information about more freeware    available.================================================================================Routine to write a session cookie    Parameters:        cookieName        Cookie name        cookieValue       Cookie Value        Return value:        true              Session cookie written successfullly        false             Failed - persistent cookies are not enabled   e.g. if (writeSessionCookie("pans","drizzle") then           alert ("Session cookie written");        else           alert ("Sorry - Session cookies not enabled");*/function writeSessionCookie (cookieName, cookieValue) {  if (testSessionCookie()) {    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";    return true;  }  else return false;}/*==============================================================================Routine to get the current value of a cookie    Parameters:        cookieName        Cookie name        Return value:        false             Failed - no such cookie        value             Value of the retrieved cookie   e.g. if (!getCookieValue("pans") then  {           cookieValue = getCoookieValue ("pans2);        }*/function getCookieValue (cookieName) {  var exp = new RegExp (escape(cookieName) + "=([^;]+)");  if (exp.test (document.cookie + ";")) {    exp.exec (document.cookie + ";");    return unescape(RegExp.$1);  }  else return false;}/*==============================================================================Routine to see if session cookies are enabled    Parameters:        None        Return value:        true              Session cookies are enabled        false             Session cookies are not enabled   e.g. if (testSessionCookie())           alert ("Session coookies are enabled");        else           alert ("Session coookies are not enabled");*/function testSessionCookie () {  document.cookie ="testSessionCookie=Enabled";  if (getCookieValue ("testSessionCookie")=="Enabled")    return true   else    return false;}/*==============================================================================Routine to see of persistent cookies are allowed:    Parameters:        None        Return value:        true              Session cookies are enabled        false             Session cookies are not enabled   e.g. if (testPersistentCookie()) then           alert ("Persistent coookies are enabled");        else           alert ("Persistent coookies are not enabled");*/function testPersistentCookie () {  writePersistentCookie ("testPersistentCookie", "Enabled", "minutes", 1);  if (getCookieValue ("testPersistentCookie")=="Enabled")    return true    else     return false;}/*==============================================================================Routine to write a persistent cookie    Parameters:        CookieName        Cookie name        CookieValue       Cookie Value        periodType        "years","months","days","hours", "minutes"        offset            Number of units specified in periodType        Return value:        true              Persistent cookie written successfullly        false             Failed - persistent cookies are not enabled        e.g. writePersistentCookie ("Session", id, "years", 1);*/       function writePersistentCookie (CookieName, CookieValue, periodType, offset) {  var expireDate = new Date ();  offset = offset / 1;    var myPeriodType = periodType;  switch (myPeriodType.toLowerCase()) {    case "years":      var year = expireDate.getYear();          // Note some browsers give only the years since 1900, and some since 0.     if (year < 1000) year = year + 1900;          expireDate.setYear(year + offset);     break;    case "months":      expireDate.setMonth(expireDate.getMonth() + offset);      break;    case "days":      expireDate.setDate(expireDate.getDate() + offset);      break;    case "hours":      expireDate.setHours(expireDate.getHours() + offset);      break;    case "minutes":      expireDate.setMinutes(expireDate.getMinutes() + offset);      break;    default:      alert ("Invalid periodType parameter for writePersistentCookie()");      break;  }     document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";}  /*==============================================================================Routine to delete a persistent cookie    Parameters:        CookieName        Cookie name        Return value:        true              Persistent cookie marked for deletion        e.g. deleteCookie ("Session");*/    function deleteCookie (cookieName) {  if (getCookieValue (cookieName)) writePersistentCookie (cookieName,"Pending delete","years", -1);    return true;     }