The WYSIWYG module combined is my favorite for rich text editing in Drupal 6 and Drupal 7. Here's how I set it up.

Drupal JS behaviors

This is a quick snippet showing a basic wrapper for your JS code in Drupal. To understand it, I recommend reading the breakdown of Drupal's JS on drupal.org, which was written for Drupal 6 but mostly applies to Drupal 7 too: https://drupal.org/node/304258