function code(str, shift) {
var R = "";
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i),
tt = code.ABC.indexOf(char) + shift,
len = code.ABC.length;
if (tt - shift === -1) {
R += char;
continue;
}
if (tt > len - 1)
tt -= len;
if (tt < 0)
tt += len;
R += code.ABC.charAt(tt);
}
return R;
}
code.ABC = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
alert( code("вот как-то так", 1) );
Поясняю:
code.ABC — алфавит. В нём содержатся все символы, которые нужно сдвигать по этому алфавиту.
code(str, shift) — тут shift — это величина сдвига. Может быть отрицательной (сдвиг назад).