function SetCookie(strName, oValue)
{
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;

    var oDate = false; // аргумент expires

    if((argc > 2) && (argv[2] != null))
    {
        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" : "") : "");
}

function GetCookie(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;
}

function DeleteCookie(strName)
{
    document.cookie = strName + "=0; expires=" + (new Date(0)).toGMTString();
}

function IsCookieEnabled()
{
    if(typeof(navigator.cookieEnabled) != "undefined")
        return navigator.cookieEnabled;
    else
    {
        var _c = "__V_TEST_COOKIE_NAME_";

        SetCookie(_c, "1");

        if(GetCookie(_c) != null)
        {
            DeleteCookie(_c);
            return true;
        }

        return false;
    }
}

