вариант без indexOf и RegExp ...
function toggleEncoding(b) {
var c, e = {}, a = 0;
for (c = "?,/.аfб,вdгuдlеtё`ж;зpиbйqкrлkмvнyоjпgрhсcтnуeфaх[цwчxшiщoъ]ыsьmэ'ю.яzАFБ<ВDГUДLЕTЁ~Ж:ЗPИBЙQКRЛKМVНYОJПGРHСCТNУEФAХ{ЦWЧXШIЩOЪ}ЫSЬMЭ\"Ю>ЯZ".split(""); a < c.length; a++) {
var d = c[a],
f = c[++a];
e[d] = f;
e[f] = d
}
a = 0;
b = b.split("");
for (c = b.length; a < c; a++)(d = e[b[a]]) && (b[a] = d);
return b.join("")
};
(function() {
alert(toggleEncoding('тест'));
alert(toggleEncoding('ntcn'));
alert(toggleEncoding('Ctujlyz vyt vfvf ghbujnjdbkf gbhj;rb? b jyb jxtym drecyst! Z b[ dct c]tk!)'));
alert(toggleEncoding('Пшму фт учфьзду ща сщву ерфе нщг вщ тще цщкл щк шы тще фы ше ырщгдвю'));
})();