SetCookie = function (strName, oValue) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;

  var oDate = false; // аргумент expires


  if ((argc > 2) && (argv[2] != null)) {
    // задана дата
    // дату допустимо задавать:
    // объектом Date,
    // числом (миллисекундное смещение от 00:00:00 01.01.1970)
    // строкой в формате, приемлемом для Date.parse

    var nStamp = (typeof argv[2] != "number")    ?
      Date.parse(argv[2].toString())        :
      argv[2];


    if (!isNaN(nStamp)) oDate = new Date(nStamp);

  }

  document.cookie =   strName + "=" + escape(oValue.toString())    +
      (oDate ? "; expires=" + oDate.toGMTString() : "")  +
      (((argc > 3) && (argv[3])) ? "; domain=" + argv[3] : "") +
      (((argc > 4) && (argv[4])) ? "; path=" + argv[4] : "")   +
      ((argc > 5) ? (argv[5] ? "; secure" : "") : "");

}


GetCookie = function (strName) {
  if ((typeof(strName) == "string") && strName.length) {
    var i = 0, j;

    var strFind    = strName + "=";
    var strCookie  = document.cookie;

    do {
      j = i + strFind.length;

      if (strCookie.substring(i, j) == strFind) {
        var nEnd = strCookie.indexOf(";", j);

        if (nEnd < 0) nEnd = strCookie.length;

                    return unescape(strCookie.substring(j, nEnd));
                }
          }

        while(i = strCookie.indexOf(" ", j) + 1);

  }

  return null;
}


DeleteCookie = function (strName) {
  SetCookie(strName, 0, (new Date(0)).toGMTString(), null, "/");
}

DeleteAllCookie = function () {
  var arr = new Array();
  var str = document.cookie;

  var i = 0, nBeg = 0, nEnd;

  do {
    if ((nEnd = str.indexOf("=", nBeg)) > -1) arr[i] = str.substring(nBeg, nEnd);
  }

  while (i++, nBeg = str.indexOf(" ", nEnd) + 1);
    for(i = 0; i < arr.length; i++) {
            DeleteCookie(arr[i]);
    }
}


IsCookieEnabled = function () {
  if (typeof(navigator.cookieEnabled) != "undefined") {
  
          return navigator.cookieEnabled;
  
  } else {
          // свойство navigator.cookieEnabled не поддерживается
    // установим и получим тестовую куку

    var _c = "__V_TEST_COOKIE_NAME_";

    SetCookie(_c, "1");

    if(GetCookie(_c) != null) {
      DeleteCookie(_c);
      return true;
    }

  return false;
  }
}

construct_date = function (date_string) {
  var convert = {
    s : 1000,
    m : 60000,
    h : 3600000,
    d : 86400000,
    M : 2592000000,
    y : 31536000000
    };

  var re = new RegExp("([0-9]+)([smhdMy])","g");
  var arr = re.exec(date_string);
  var number = RegExp.$1;
  var modificator = RegExp.$2;

  if (number == 0) return 0;
  return number*convert[modificator];
}