// VSCookieTools.js general toolkit file
// ------------------------------------------------------------
// namespace Viasoft
// Written by Viasoft Ltd. (viasoft.com.ua)
// Free permission to use granted under BSD licence

var COOKIE_EXPIRY_REMOVE  = -999; // Set this value to remove cookie
var COOKIE_EXPIRY_SESSION = null; // Cookie stored utils session end only
var COOKIE_EXPIRY_DEFAULT = COOKIE_EXPIRY_SESSION;

var COOKIE_DAYS_REMOVE    = -999; // Set this number of days to remove cookie
var COOKIE_DAYS_SESSION   = 0;    // Cookie stored utils session end only
var COOKIE_DAYS_DEFAULT   = COOKIE_DAYS_SESSION;

var COOKIE_PATH_FROMROOT  = "/";  // Cookie will be visible anywhere from root of site
var COOKIE_PATH_DEFAULT   = COOKIE_PATH_FROMROOT;

var cookieGetExpiryByDays = function(days)
 {
  if ((days == null) || (days == 0))
   {
    return(null);
   }
  else
   {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    return(date);
   }
 }

var cookieSetValueExt = function(name,value,expiryDate,path) 
 {
  var expires = "";
  var pathval = COOKIE_PATH_FROMROOT;

  if (value == null)
   {
    expiryDate = cookieGetExpiryByDays(COOKIE_DAYS_REMOVE); // null value will remove cookie
   }
  else if ((expiryDate != null) && (expiryDate === COOKIE_EXPIRY_REMOVE))
   {
    expiryDate = cookieGetExpiryByDays(COOKIE_DAYS_REMOVE);
   }

  if (expiryDate != null)
   {
    expires = "; expires="+expiryDate.toGMTString();
   }

  if (path != null)
   {
    pathval = path;
   }

  if (value == null)
   {
    value = "";
   }

  if (StrUrlEscape != null)
   {
    value = StrUrlEscape(value); // StrUrlEscape function exists
   }
  else
   {
    value = escape(value);
   }

  document.cookie = name+"="+value+expires+"; path="+pathval;
 }

var cookieSetValue = function(name,value)
 {
  cookieSetValueExt(name,value,null,null);
 }

var cookieClear = function(name)
 {
  cookieSetValueExt(name,"",COOKIE_DAYS_REMOVE,null);
 }

var cookieGetValue = function(name) 
 {
  var cPairArray = document.cookie.split(';');
  var namePfx    = name + "=";

  var i;

  for(i=0; i < cPairArray.length; i++) 
   {
    var cPairText = cPairArray[i];

    while (cPairText.charAt(0)==' ')
     {
      cPairText = cPairText.substring(1,cPairText.length);
     }

    if (cPairText.indexOf(namePfx) == 0)
     {
      return(unescape(cPairText.substring(namePfx.length,cPairText.length)));
     }
   }

  return null;
 }

