ну, если работает, то Слава Богу 
 
	
	| Сообщение от Joyfit | 
	| $(this).replaceWith("<input type='text' value='" + chosenWord + "' style='width:"+ width + "px' />"); | 
	
как-то это злостно, на каждое слово создавать новое поле. пусть поле будет одно, скрывайте, показывайте его в моменты редактирования, но незачем каждый раз новое создавать, ибо это оператива.
	
	| Сообщение от Joyfit | 
	| $(this).replaceWith("<span class='ew'>" + $(this).val() + "</span>"); | 
	
зачем обрамлять текст span'ом в конце редактирования? (этого я просто не понял) 
	
	| Сообщение от Joyfit | 
	| 
return !(".,!?;:)]}".indexOf(letter) + 1);
 | 
	
Вы слышали что-нибудь о регулярных выражениях?
ну и самое ужасное, Вы имеете на руках jQuery, а пишите код на нативном JS :
	
	| Сообщение от Joyfit | 
	| for (i = 0; i < wordsArray.length; i++) { | 
	
	
	| Сообщение от Joyfit | 
	| for (var i = 0; i < content.length + 1; i++) { | 
	
и т.д
ну и ещё маленький минусик (это не обязательно, но так делать - плохой тон)
finishEdit: function() {
        $("#result input").live("blur", function(){
            if (!(*!*$(this)*/!*.val().indexOf("<script>") + 1)) {
                *!*$(this)*/!*.replaceWith("<span class='ew'>" + *!*$(this)*/!*.val() + "</span>");
            } else {
                *!*$(this)*/!*.remove();
            }
        });
    }
эти вездесущие $(this) каждый раз исполняют 
вот этот кусок кода (вся функция по ссылке). оно Вам надо? кешируйте $(this) в переменной, скажем, $this.
я быстренько обежал код глазами,  в алгоритм не вглядывался (кроме первого, про текстовое поле).