add: if (charCode == 40) { RTSH.sugDown(); return; } else if (charCode == 38) { RTSH.sugUp(); } else if (charCode == 32 && evt.ctrlKey) { RTSH.createSuggestion(); } else { RTSH.hideSuggestion(); } 
context: 	keyHandler : function(evt) {		evt = (evt) ? evt : (window.event) ? event : null;	  	if(evt) {	    	charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));		    if((chars.indexOf('|'+charCode+'|')!=-1) && (!evt.ctrlKey && !evt.altKey)) { // syntax highlighting			 	RTSH.syntaxHighlight();			  	RTSH.findString();			}			else if(charCode==46||charCode==8) { // save to history when delete or backspace pressed			 	RTSH.actions.history[RTSH.actions.next()] = editor.innerHTML;			}			else if((charCode==90||charCode==89) && evt.ctrlKey) { // undo and redo				(charCode==89||evt.shiftKey) ? RTSH.actions.redo() : RTSH.actions.undo() ;				evt.returnValue = false;				if(browser.ff)evt.preventDefault();			}			else if(charCode==86 && evt.ctrlKey)  { // paste				// TODO: pasted text should be parsed and highlighted			}		}	},
meta: 8954	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8954/4d53646a36445a7215520b48fe65a517d64b23be/rtsh.js/buggy/Webpage/rtshjs-v.0.84/rtsh.js