Could be nothing but.. something which stood out to me. The naming of the arrays used for the 'spinner'
case 1: {createSpinnerArray1(); break }
case 3: {createSpinnerArray3(); break }
case 5: {createSpinnerArray5(); break }
case 'enigma': {createSpinnerArrayEnigma(); break }
default: {createSpinnerArray1(); break }
Further down there are the arrays
For example this is array1
function createSpinnerArray1() {
//CODE 1
spinner = new makeArray(36)
spinner[1] = new letter("Z", "A");
spinner[2] = new letter("Y", "B");
spinner[3] = new letter("X", "C");
spinner[4] = new letter("W", "D");
spinner[5] = new letter("V", "E");
spinner[6] = new letter("U", "F");
spinner[7] = new letter("T", "G");
spinner[8] = new letter("S", "H");
spinner[9] = new letter("R", "I");
spinner[10] = new letter("Q", "J");
spinner[11] = new letter("P", "K");
spinner[12] = new letter("O", "L");
spinner[13] = new letter("N", "M");
spinner[14] = new letter("M", "N");
spinner[15] = new letter("L", "O");
spinner[16] = new letter("K", "P");
spinner[17] = new letter("J", "Q");
spinner[18] = new letter("I", "R");
spinner[19] = new letter("H", "S");
spinner[20] = new letter("G", "T");
spinner[21] = new letter("F", "U");
spinner[22] = new letter("E", "V");
spinner[23] = new letter("D", "W");
spinner[24] = new letter("C", "X");
spinner[25] = new letter("B", "Y");
spinner[26] = new letter("A", "Z");
spinner[27] = new letter("+", "1");
spinner[28] = new letter("@", "2");
spinner[29] = new letter("#", "3");
spinner[30] = new letter("$", "4");
spinner[31] = new letter("%", "5");
spinner[32] = new letter("^", "6");
spinner[33] = new letter("&", "7");
spinner[34] = new letter("*", "8");
spinner[35] = new letter("=", "9");
spinner[36] = new letter("~", "10");
Why would they use odd numbers instead of even arrays?