home *** CD-ROM | disk | FTP | other *** search
/ Intel Web Outfitter Tool Kit 4 / Intel WebOutfitter Tool Kit Version 4.0.iso / public / Outfitter / TKM / scripts / cookie.js next >
Encoding:
Text File  |  2000-03-13  |  5.1 KB  |  121 lines

  1. <!--//--><script language="javascript">
  2. //  Cookie Functions -- "Night of the Living Cookie" Version (25-Jul-96)
  3. //
  4. //  Written by:  Bill Dortch, hIdaho Design <bdortch@hidaho.com>
  5. //******************************************************************
  6. //
  7. // "Internal" function to return the decoded value of a cookie
  8. //
  9. function getCookieVal (offset) {
  10.   var endstr = document.cookie.indexOf (";", offset);
  11.   if (endstr == -1)
  12.     endstr = document.cookie.length;
  13.   return unescape(document.cookie.substring(offset, endstr));
  14. }
  15. //
  16. //  Function to correct for 2.x Mac date bug.  Call this function to
  17. //  fix a date object prior to passing it to SetCookie.
  18. //  IMPORTANT:  This function should only be called *once* for
  19. //  any given date object!  See example at the end of this document.
  20. //
  21. function FixCookieDate (date) {
  22.   var base = new Date(0);
  23.   var skew = base.getTime(); // dawn of (Unix) time - should be 0
  24.   if (skew > 0)  // Except on the Mac - ahead of its time
  25.     date.setTime (date.getTime() - skew);
  26. }
  27. //
  28. //  Function to return the value of the cookie specified by "name".
  29. //    name - String object containing the cookie name.
  30. //    returns - String object containing the cookie value, or null if
  31. //      the cookie does not exist.
  32. //
  33. function GetCookie (name) {
  34.   var arg = name + "=";
  35.   var alen = arg.length;
  36.   var clen = document.cookie.length;
  37.   var i = 0;
  38.   while (i < clen) {
  39.     var j = i + alen;
  40.     if (document.cookie.substring(i, j) == arg)
  41.       return getCookieVal (j);
  42.     i = document.cookie.indexOf(" ", i) + 1;
  43.     if (i == 0) break; 
  44.   }
  45.   return null;
  46. }
  47. //
  48. //  Function to create or update a cookie.
  49. //    name - String object containing the cookie name.
  50. //    value - String object containing the cookie value.  May contain
  51. //      any valid string characters.
  52. //    [expires] - Date object containing the expiration data of the cookie.  If
  53. //      omitted or null, expires the cookie at the end of the current session.
  54. //    [path] - String object indicating the path for which the cookie is valid.
  55. //      If omitted or null, uses the path of the calling document.
  56. //    [domain] - String object indicating the domain for which the cookie is
  57. //      valid.  If omitted or null, uses the domain of the calling document.
  58. //    [secure] - Boolean (true/false) value indicating whether cookie transmission
  59. //      requires a secure channel (HTTPS).  
  60. //
  61. //  The first two parameters are required.  The others, if supplied, must
  62. //  be passed in the order listed above.  To omit an unused optional field,
  63. //  use null as a place holder.  For example, to call SetCookie using name,
  64. //  value and path, you would code:
  65. //
  66. //      SetCookie ("myCookieName", "myCookieValue", null, "/");
  67. //
  68. //  Note that trailing omitted parameters do not require a placeholder.
  69. //
  70. //  To set a secure cookie for path "/myPath", that expires after the
  71. //  current session, you might code:
  72. //
  73. //      SetCookie (myCookieVar, cookieValueVar, null, "/myPath", null, true);
  74. //
  75. function SetCookie (name,value,expires,path,domain,secure) {
  76.   document.cookie = name + "=" + escape (value) +
  77.     ((expires) ? "; expires=" + expires.toGMTString() : "") +
  78.     ((path) ? "; path=" + path : "") +
  79.     ((domain) ? "; domain=" + domain : "") +
  80.     ((secure) ? "; secure" : "");
  81. }
  82.  
  83. //  Function to delete a cookie. (Sets expiration date to start of epoch)
  84. //    name -   String object containing the cookie name
  85. //    path -   String object containing the path of the cookie to delete.  This MUST
  86. //             be the same as the path used to create the cookie, or null/omitted if
  87. //             no path was specified when creating the cookie.
  88. //    domain - String object containing the domain of the cookie to delete.  This MUST
  89. //             be the same as the domain used to create the cookie, or null/omitted if
  90. //             no domain was specified when creating the cookie.
  91. //
  92. function DeleteCookie (name,path,domain) {
  93.   if (GetCookie(name)) {
  94.     document.cookie = name + "=" +
  95.       ((path) ? "; path=" + path : "") +
  96.       ((domain) ? "; domain=" + domain : "") +
  97.       "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  98.   }
  99. }
  100.  
  101. /*
  102. //
  103. //  Examples
  104. //
  105. var expdate = new Date ();
  106. FixCookieDate (expdate); // Correct for Mac date bug - call only once for given Date object!
  107. expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000)); // 24 hrs from now 
  108. SetCookie ("ccpath", "http://www.hidaho.com/colorcenter/", expdate);
  109. SetCookie ("ccname", "hIdaho Design ColorCenter", expdate);
  110. SetCookie ("tempvar", "This is a temporary cookie.");
  111. SetCookie ("ubiquitous", "This cookie will work anywhere in this domain",null,"/");
  112. SetCookie ("paranoid", "This cookie requires secure communications",expdate,"/",null,true);
  113. SetCookie ("goner", "This cookie must die!");
  114. document.write (document.cookie + "<br>");
  115. DeleteCookie ("goner");
  116. document.write (document.cookie + "<br>");
  117. document.write ("ccpath = " + GetCookie("ccpath") + "<br>");
  118. document.write ("ccname = " + GetCookie("ccname") + "<br>");
  119. document.write ("tempvar = " + GetCookie("tempvar") + "<br>");
  120. */
  121. //--></script>