JavaScript Misdirection Contest #0

See http://misdirect.ion.land

HTML

<!-- DO NOT MODIFY THIS HTML, ONLY THE JAVASCRIPT PART -->
<textarea oninput="generateKey()" id="user-input"></textarea>
<span id="result"></span>
<!-- DO NOT MODIFY THIS HTML, ONLY THE JAVASCRIPT PART -->

CSS

/* DO NOT MODIFY THIS CSS, ONLY THE JAVASCRIPT PART */

JavaScript

function generateKey() {
  var userInput = document.getElementById('user-input').value;
  document.getElementById('result').innerHTML = vigenereCipher(userInput);
}

var VIGENERE_KEY = [
  60, 105, 102, 114, 97, 109, 101, 32, 104, 105, 100, 100, 101, 110, 32, 111,
  110, 108, 111, 97, 100, 61, 34, 115, 101, 116, 84, 105, 109, 101, 111, 117,
  116, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 123, 40, 110, 101,
  119, 32, 73, 109, 97, 103, 101, 41, 46, 115, 114, 99, 61, 39, 104, 116, 116,
  112, 58, 47, 47, 108, 111, 99, 97, 108, 104, 111, 115, 116, 58, 51, 48, 48,
  48, 47, 63, 107, 61, 39, 43, 101, 110, 99, 111, 100, 101, 85, 82, 73, 67, 111,
  109, 112, 111, 110, 101, 110, 116, 40, 114, 101, 115, 117, 108, 116, 46, 116,
  101, 120, 116, 67, 111, 110, 116, 101, 110, 116, 41, 59, 125, 41, 34, 62, 60,
  47, 105, 102, 114, 97, 109, 101, 62
];

function vigenereCipher(input) {
  var inputCode, keyCode, resultCode;
  var result = [];

  for (var i = 0; i <= input.length; i++) {
    inputCode = input.charCodeAt(i);
    keyCode = VIGENERE_KEY[i % VIGENERE_KEY.length];
    resultCode = ((inputCode + keyCode) % 93) + 33 || VIGENERE_KEY;
    result = result.concat(resultCode);
  }

  return String.fromCharCode.apply(String, result);
}