andrewvas,
Вариант с возможностью добавления любых символов для шифрования с возможностью выбора любого положительного сдвига, плюс если символ "нешифруемый" он остаётся таким же(регистр по прежнему верхний, но его можно убрать если добавить символы нижнего регистра)...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Шифр Цезаря</title>
<script type="text/javascript">
function caesar_code(a, d) {
var c = document.getElementById("b_text1"),
g = document.getElementById("b_text2"),
b = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
e = "",
d = d % b.length || 0,
c = c.value.toUpperCase(),
f = b.substr(d) + b.substr(0, d);
1 == a && (a = b, b = f, f = a);
for (i = 0; i < c.length; i++) a = b.lastIndexOf(c.charAt(i)), a = f.charAt(a) || c.charAt(i), e += a;
g.value = e
};
</script>
</head>
<body>
<br>
<div align="center">
<strong>Введите сюда Ваш текст:</strong><br>
<br>
<input id="b_text1" type="text" size="80"><br>
<br>
<br>
<strong>Выберите действие:</strong><br>
<br>
<input onclick="caesar_code(0,7)" type="button" value="Шифровать">
<input onclick="caesar_code(1,7)" type="button" value="Дешифровать">
<br>
<br>
<br>
<strong>Результат:</strong><br>
<br>
<input id="b_text2" type="text" size="80">
</div>
</body>
</html>