var SID = ReadCookie('PHPSESSID', 0);
var RUS = '01234567890123456789012345678901 !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~';

function IntToStr(Int, Len) {
Len = Len || 0;
	Str = String(Int);
	for (CurLen=Str.length;CurLen<Len;CurLen++) Str = '0'+Str;
	return Str;
}

function escape_ext(str) {
	strlen = str.length;
	ret = '';
	for (i=0;i<strlen;i++) {
		str_id = Number(str.charCodeAt(i));
		if ( (str_id>64 && str_id<91) || (str_id>96 && str_id<123) ) ret+= str.charAt(i); else {
			ret+= '_'+IntToStr(str_id, 3);
		}
	}
	return ret;
}

function unescape_ext(str) {
	l = str.length;
	ret = '';
	for (i=0;i<l;i++) if (str.charAt(i) == '_') {
		c = str.substring(i+1, i+4);
		ret+= RUS.charAt(Number(c));
		i+=3;
	} else ret+= str.charAt(i);
	return ret;
}


function ExtractCookieValue(val) {
var endstr = document.cookie.indexOf(';', val);
	if (endstr == -1) endstr = document.cookie.length;
	return document.cookie.substring(val, endstr);
}

function ReadCookie(name, code) {
code = code || 0;
var numofCookies = document.cookie.length;
var cookieLen = name.length;
var x = 0;
	while (x <= numofCookies) {
		y = x+cookieLen+1;
		if (document.cookie.substring(x, y) == name+'=') {
			val_dec = ExtractCookieValue(y);
			if (code == 1) val_dec = unescape_ext(val_dec);
			return val_dec;
		}
		x = document.cookie.indexOf(' ', x)+1;
		if (x == 0) break;
	}
	return null;
}

function WritCookie(name, data, expir, code) {
expir = expir || 1;
code = code || 0;
btoday = new Date();
	if (code == 1) data = escape_ext(data);
	btoday.setDate(btoday.getDate()+expir);
	document.cookie = name+'='+data+'; expires='+btoday.toGMTString()+';';
}
