// javascript library for handling cookies
// started by:  Burk Prael
//       date:  Jun 25, 2001
//
//  function GetCookie (name)
//  function SetCookie (name, value)
//  function DeleteCookie (name)
// ------------------------------------------------------------------


function GetCookie (name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ')
		  c = c.substring(1,c.length);

		if (c.indexOf(nameEQ) == 0)
		  return c.substring(nameEQ.length,c.length);
	}
	return null;
}

// ------------------------------------------------------------------


function SetCookie (name, value, expInMinutes, path, domain, secure)
{
  var expDays = 30;

  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;

  var expires     = new Date();
  var path        = (argc > 3) ? argv[3] : null;
  var domain      = (argc > 4) ? argv[4] : null;
  var secure      = (argc > 5) ? argv[5] : false;

  if (expInMinutes > 0)
    expires.setTime(expires.getTime() + (expInMinutes * 60 * 1000 ));  // 1000 is for milliseconds

  var cookieStr = name + "=" + escape (value) +
                  ((expInMinutes == 0) ? "" : ("; expires=" + expires.toGMTString())) +
                  ((path == null) ? "" : ("; path=" + path)) +
                  ((domain == null) ? "" : ("; domain=" + domain)) +
                  ((secure == true) ? "; secure" : "");

  // alert ("cookieStr: " + cookieStr);

  document.cookie = cookieStr;
}

// ------------------------------------------------------------------


function DeleteCookie (name)
{
  var exp = new Date();
  exp.setTime (exp.getTime() - 1);
  var cval = GetCookie (name);
  document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

// ------------------------------------------------------------------

function CookiesEnabled ()
{
  var cookieName = 'CookieTest';
  var setValue   = 'Test';
  var getValue   = '';

  SetCookie (cookieName, setValue);

  getValue = GetCookie (cookieName);

  if (setValue == getValue)
  {
    DeleteCookie (cookieName);
	return true;
  }
  return false;
}


// ------------------------------------------------------------------

// stand-alone function

function CookiesEnabled2 ()
{
  var cookieName = 'CookieTest';
  var setValue   = 'Test';
  var getValue   = '';
  var cookieStr  = cookieName + "=" + escape (setValue);
  var arg        = cookieName + "=";
  var beginPos   = 0;

  // set cookie
  document.cookie = cookieStr;

  // get cookie
  while (beginPos < document.cookie.length) {
    var middlePos = beginPos + arg.length;
    if (document.cookie.substring(beginPos, middlePos) == arg) {
	  var endPos = document.cookie.indexOf (";", middlePos);

	  if (endPos == -1)
		endPos = document.cookie.length;

      getValue = unescape(document.cookie.substring(middlePos, endPos));
	  break;
    }
    beginPos = document.cookie.indexOf(" ", beginPos) + 1;
    if (beginPos == 0)
      break;
  }

  if (setValue == getValue)  {
    // delete cookie
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    document.cookie = cookieName + "=" + getValue + "; expires=" + exp.toGMTString();
	return true;
  }
  return false;
}

