var COOKIE = {

  getCookieVal:function(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
  },

  fixCookieDate: function(date) {
    var base = new Date(0);
    var skew = base.getTime(); // dawn of (Unix) time - should be 0
    if (skew > 0) // Except on the Mac - ahead of its time
    date.setTime (date.getTime() - skew);
  },

  getCookie: function(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    var value = '';
    while (i < clen) {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg) {
        value = COOKIE.getCookieVal (j);
        return value.replace(/\i\b\e\p\k/, "'");
      }
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break; 
    }
    return null;
  },

  setCookie: function(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" + value.replace(/\;/gi, 'ibepk') +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  },

  deleteCookie: function(name,path,domain) {
    if (COOKIE.getCookie(name)) {
      document.cookie = name + "=" +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  },

  updateCookie: function(cookiename, newvalue) {
    var cookievalue = "";
    cookievalue = COOKIE.getCookie(cookiename);

    if (cookievalue == null) {
      if (newvalue != "") { COOKIE.setCookie(cookiename, newvalue); }
    } else {
      switch (newvalue) {
        case "X" : COOKIE.deleteCookie(cookiename); break;
        default : COOKIE.setCookie(cookiename, newvalue); break;
      }
    }
    return newvalue;
  }
};