tinymce редактор http://www.tinymce.com/index.php пример редактора: http://tinymce.ru/tiny_mce/examples/full.html
<h4>Пример вызовов вне редактора:</h4>
<p>
<a href="javascript:void(0);" onmousedown="tinyMCE.get('elm1').show();">Визуальный редактор</a> |
<a href="javascript:void(0);" onmousedown="tinyMCE.get('elm1').hide();">Код</a> |
<a href="javascript:void(0);" onmousedown="alert(tinyMCE.get('elm1').getContent());">Получить код alert'ом</a> |
<a href="javascript:void(0);" onmousedown="alert(tinyMCE.get('elm1').selection.getNode().nodeName);">Узнать имя тэга</a> |
<a href="javascript:void(0);" onmousedown="tinyMCE.execCommand('mceInsertContent',false,'<b>Hello world!!</b>');">Вставить html: <code><b>Hello world!!</b></code></a>
</p>
<h4>Работа с выделенным текстом:</h4>
<p>
<a href="javascript:void(0);" onmousedown="tinyMCE.get('elm1').execCommand('Bold');">Сделать жирным</a> |
<a href="javascript:void(0);" onmousedown="alert(tinyMCE.get('elm1').selection.getContent());">Получить код alert'ом</a> |
<a href="javascript:void(0);" onmousedown="alert(tinyMCE.get('elm1').selection.getContent({format : 'text'}));">Получить текст alert'ом</a> |
<a href="javascript:void(0);" onmousedown="tinyMCE.execCommand('mceReplaceContent',false,'<code>{$selection}</code>');">Обрамить тэгом <code><code></code></a>
</p>