/*
 * $RCSfile: cookie.js,v $
 *
 * Klasse zur einfachen Benutzung von Cookies
 *
 * $Revision: 1.2 $
 *
 * $Author: dm $
 *
 * $Date: 2003/05/15 13:03:44 $
 *
 * $Log: cookie.js,v $
 * Revision 1.2  2003/05/15 13:03:44  dm
 * Funktion checkEnabled hinzugefuegt
 *
 * Revision 1.1  2003/03/24 18:47:03  dm
 * Initial revision
 *
 */

function Cookie (nm, ex)
{
   this.name = nm;

   if (arguments.length > 1)
      this.expires = ex;
   else
      this.expires = 0;

   this.set = function (vl)
   {
      var ex = '', exTime = new Date ();

      if (this.expires > 0)
      {
         // relatives Datum
         exTime.setTime (exTime.getTime () + 1000 * this.expires);
         ex = '; expires=' + exTime.toGMTString ();
      }
      else if (this.expires<0)
      {
         // absolutes Datum
         exTime.setTime (-1000 * this.expires);
         ex = '; expires=' + exTime.toGMTString ();
      }

      document.cookie = this.name + '=' + escape (vl) + ex;
   }

   this.get = function ()
   {
      var beg = document.cookie.indexOf (this.name + '=');
      var end, str = '';

      if (beg != -1)
      {
         beg += 1 + this.name.length;
         end = document.cookie.indexOf ('; ', beg);

         if (end == -1)
            end = document.cookie.length;

         str = document.cookie.substring (beg, end);
      }

      return unescape(str);
   }

   this.del = function ()
   {
      var oldEx = this.expires;

      this.expires = -1;
      this.set ('');

      this.expires = oldEx;
   }

   this.checkEnabled = function ()
   {
      var ret = false;
      var ck = new Cookie ('DummyForCheckEnabled', 10);

      var testStr = 'testing ' + new Date ().toGMTString();
      ck.set (testStr);
      var erg = ck.get ();
      ck.del ();

      if (erg===testStr)   ret = true;

      return ret;
   }
}

