Hier mal mein Script mit dem ich bisher gearbeitet habe. Ich finde es fair, dass damit auch andere Leute mal rumprobieren dürfen, falls ihr wollt, da dies doch ne ziemliche arbeit war und die braucht nicht mehrmals gemacht werden.

Code:
/*l2.js */
//mit array.slice(0) wird als praktischer Nebeneffekt eine Kopie und keine Referenz des Arrays verwendet.

function setText () {
	set_output("");

  codeArray = input_umwandeln(document.getElementById("Eingabe").value)

  //Formatiere den Text im Eingabefenster, für bessere Lesbarkeit
  input_format(codeArray.slice(0));

	//Formatiert den Input für die Ausgabe
  input_ausgabe(codeArray.slice(0));

  //Anzahl der Zahlen ausgeben
  document.getElementById("zeichen").value = codeArray.length;

	//Gibt die Häufigkeit der Zahlen aus
  zahlenHaeufigkeit( codeArray.slice(0) );

}

function append_output(text) {
document.getElementById("Text").firstChild.nodeValue = document.getElementById("Text").firstChild.nodeValue + text;
}


function set_output(text) {
document.getElementById("Text").firstChild.nodeValue = text;
}

function zahlenHaeufigkeit(Array_mit_Zeichen) {
	append_output("---Zahlenhaufigkeit---\r\n");
  //Ausgabe der Zahlenhäufigkeit
  for (var zaehlArray = new Array() ; zaehlArray.length<100 ; zaehlArray.push(0));

  for (Array_mit_Zeichen ; Array_mit_Zeichen.length>0 ; Array_mit_Zeichen.shift()) {
	  zaehlArray[Array_mit_Zeichen[0]] = zaehlArray[Array_mit_Zeichen[0]]+1;
  }
  var i = 0;
  for(;i<100;i++) {
  	append_output(i + " ");
    if(i < 10) append_output(" ");
  }
  append_output("\r\n");
  for( ; zaehlArray.length>0 ; zaehlArray.shift()) {
  	append_output(zaehlArray[0]+" ");
    if(zaehlArray[0] < 10) append_output(" ");
  }
  append_output("\r\n---\r\n");
}

function input_umwandeln(input) {
//Input in Array umwandeln, als 2stellige Zahlen interpretiert
  var codeArray = new Array();
	for (var temp = input ; temp.length>0 ;) {
  	if(temp.charCodeAt(0)==10 || temp.charCodeAt(0)==32) { temp = temp.slice(1); }
    else{
    	if(temp.charCodeAt(1)==10 || temp.charCodeAt(1)==32) {
        codeArray.push(temp.charAt(0)+temp.charAt(2));
      	temp = temp.slice(3); }
      else {
  			codeArray.push(temp.charAt(0)+temp.charAt(1));
    		temp = temp.slice(2);
      }}}
return  codeArray;
}

function input_format(temp2) {
//Formatiert den Input im Input Fenster
	document.getElementById("Eingabe").value = "";
	for( ; temp2.length > 0 ; temp2.shift() ) {
		document.getElementById("Eingabe").value = document.getElementById("Eingabe").value + temp2[0] + " ";
  }
}

function input_ausgabe(temp) {
//Formatiert den Input für die Ausgabe
append_output("---Formatierter Input---\r\n");
  for(temp = codeArray.slice() ; temp.length > 0 ; temp.shift() ) {
  	 append_output(temp[0] + " ");
  }
	append_output("\r\n---\r\n");
}
Code:
<html><head><title>Entschlüsseln von Level2</title>
<script src="l2.js" type="text/javascript"></script>
</head><body>
<h1>Level2 Entschlüsseln</h1>
<form name="Formular" action="">
Text:

<textarea id="Eingabe" rows="15" cols="50" style="font-size:1em;"></textarea>

<input type="button" name="mach" value="mach!" onclick="setText(); false;">

Zeichenanzahl<input type="Text" id="zeichen" name="zeichenanzahl" value="0" size="3">
</form>
<pre>
<div id="Text" style="font-size:1em;"></div></pre>
</body></html>