function toggleEncoding(txt) {
var letters = "?,/.а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";
return txt.replace(new RegExp('[' + letters.replace(/([\[\]\?])/g, '\\$1') + ']', 'gi'), function(letter) {
var index = letters.indexOf(letter);
if (index >= 0) {
return letters[index & 1 ? index - 1 : index + 1];
}
return letter;
});
}
(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('Пшму фт учфьзду ща сщву ерфе нщг вщ тще цщкл щк шы тще фы ше ырщгдвю'));
})();