function getForumCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) {
		endstr = document.cookie.length;
	}
	return document.cookie.substring(offset, endstr);
}

function getForumCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) {
			return getForumCookieVal(j);
		}
	i = document.cookie.indexOf(" ", i) + 1;
	if (i == 0) break;
	}
	return null;
}

function escapeEx(str) {
	var ret = '';
	for (i=0; i<str.length; i++) {
		var n = str.charCodeAt(i);
		if (n >= 0x410 && n <= 0x44F) n -= 0x350;
		else if (n == 0x451) n = 0xB8;
		else if (n == 0x401) n = 0xA8;
		if ((n < 65 || n > 90) && (n < 97 || n > 122) && n < 256) {
			if (n < 16) ret += '%0'+n.toString(16);
			else ret += '%'+n.toString(16);
		} else ret += String.fromCharCode(n);
	} return ret;
}

function unescapeEx(str) {
	var ret = '';
	var arr = str.split('%');
	for (i=0; i<arr.length; i++) {
		if (arr[i]) {
			if (!i) {
				ret+=arr[i];
			} else {
				n = arr[i].substr(0,2).toString();
				n = parseInt('0x'+n,16);
				if (n >= 0xC0 && n <= 0xFF) n += 0x350;
				else if (n == 0xB8) n = 0x451;
				else if (n == 0xA8) n = 0x401;
				ret+=String.fromCharCode(n)+arr[i].substr(2,arr[i].lenght).toString();;
			}
		}
	} return ret;
}
