/*==============================================================================
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":
 expireDate.setYear(expireDate.getFullYear()+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;
}

