


var trans = [];
var snart = [];
for(var i=0x410;i<=0x44F;i++)
{
	trans[i]=i-0x350;
	snart[i-0x350] = i;
}
trans[0x401]= 0xA8;
trans[0x451]= 0xB8;
snart[0xA8] = 0x401;
snart[0xB8] = 0x451;

 
function rawurlencode(str)
{
	if(!str) return '';
	if(!trans.length)
		return str;
	var ret=[];
	for(var i=0;i<str.length;i++)
	{
		var n=str.charCodeAt(i);
		if(typeof trans[n]!='undefined')
			n = trans[n];
		if (n <= 0xFF)
			ret.push(n);
	}
 
	var strb = window.escape(String.fromCharCode.apply(null,ret));
	return strb.replace(/\+/g, '%2B');
}
 
function rawurldecode(str)
{
	if(!str) return '';
	if(!snart.length)
		return str;
	var ret=[];
	str = unescape(str);
	for(var i=0;i<str.length;i++)
	{
		var n=str.charCodeAt(i);
		if(typeof snart[n]!='undefined')
			n = snart[n];
		ret.push(n);
	}
 
	return String.fromCharCode.apply(null,ret);
}
