Сообщение от Nexus
			 
		
	 | 
	| 
		Функций "stage[\d]" можно было избежать, пропала бы и необходимость в приватных функциях "on[EventName]" контроллера.
	 | 
	
С "stage\n" не понял немного. Там в 1 и 2, конечно, логика похожа, но в 3 и 4 совсем другая. С oninput/onkeypress в приницпе да, может и не стоило их использовать - всё-таки не рекомендуется.
	
	
		
			Сообщение от Nexus
			 
		
	 | 
	| 
		Методы для всех функций не добавляются в прототип, т.е. для каждого отдельного экземпляра класса в памяти будет храниться своя реализация каждого метода (если не ошибаюсь. Не ошибаюсь).
	 | 
	
Ну, на файлы я код разбил, комментарии прописал. Следующим шагом перепишем на прототипный стиль.