  /*
   File:             cscookies.js
   Version:          1.0
   Last updated:     06-05-2004
   Last updated by:  VN
   Copyright:        © 2003 C-CONTENT b.v. 
   Description:      -
   Required modules: csgeneral.js
   Output:           -
  */


  function ModuleCsCookiesGetCookieVal (offset) 
  {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
      endstr = document.cookie.length;
      
    return unescape(document.cookie.substring(offset, endstr));
  }
  
  function ModuleCsCookiesFixCookieDate (date) 
  {
    var base = new Date(0);
    var skew = base.getTime(); 
    if (skew > 0)  
      date.setTime (date.getTime() - skew);
  }
  
  
  function ModuleCsCookiesGetCookie (name) 
  {
    var arg = name + "=";
    var alen = arg.length;
    try
    {
		var clen = document.cookie.length;
		var i = 0;
		while (i < clen) 
		{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return this.getCookieVal (j);
	        
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
		}
    }
    catch(e)
    {
		return null;
    }
    return null;
  }
  
  function ModuleCsCookiesGetCookieLength (name)
  {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) 
    {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg)
      {
        var endstr = document.cookie.indexOf (";", j);
        if (endstr == -1)
          endstr = document.cookie.length;
        return endstr - i;
      }
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break;
    }
    return 0;
  }
  
  function ModuleCsCookiesSetCookie(name, value)
  {
    var exp = new Date();
    var expDays = 365*13;
    
    exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

    this.setCookieOrg(name, value, exp, "/");
  }
  
  function ModuleCsCookiesSetCookieOrg (name,value,expires,path,domain,secure) 
  {
    var newCookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    
    var newLength = (name + '=' + escape(value)).length;
    var oldLength = this.getCookieLength(name);
    var chtml_urllength = this.getCookieLength(name);
    var predictedmaxsize = document.cookie.length + (newLength - oldLength) + (512 - chtml_urllength);
    if (predictedmaxsize >= 4096)
      return 0;
    document.cookie = newCookie;
  
    return 1;
  }
  
  function ModuleCsCookiesDeleteCookie (name,path,domain) 
  {
    if (this.getCookie(name)) 
    {
      document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }
  
  function ModuleCsCookies()
  {
    this.getCookieVal    = ModuleCsCookiesGetCookieVal;  
    this.fixCookieDate   = ModuleCsCookiesFixCookieDate;  
    this.getCookie       = ModuleCsCookiesGetCookie;  
    this.getCookieLength = ModuleCsCookiesGetCookieLength;
    this.setCookie       = ModuleCsCookiesSetCookie;
    this.setCookieOrg    = ModuleCsCookiesSetCookieOrg;
    this.deleteCookie    = ModuleCsCookiesDeleteCookie;
  }
  
  if (!cscookies)
    var cscookies = new ModuleCsCookies();
  
    

