function SetCookie(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" : "") : "");
}

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;
}
