The JQuery plugin should allow editing a html list (UL). The editing experience should be as close as possible to editing a list in the MS Word.
The list items (LI) will contain plain text only. No images, no formatting. But the lists can be hierarchical.
Here is required behavior (if something is not clear - check how MS Word works):
* When clicking an item in the list it becomes editable. This can be achieved by using TEXTAREA. The cursor should be positioned at the item which was clicked.
* When editing an item:
* when user hits Enter button - add a new list item below:
* add a new LI item under the current one.
* all the text on the right side of the cursor position should go to the new list item.
* position cursor at the beginning of the new item.
* when user hits Down button - go to the next list item if there is one, otherwise do nothing:
* the cursor should be positioned at the same position it was on a previous line. For example if its position index was 5, it should be positioned to the same index on the next line. If there are only 3 characters on the next line it should be positioned to the end of a line.
* when user hits Up button - go to the previous list item of there is one, otherwise do nothing:
* the behavior basically the same as when hitting Down button.
* when user hits DEL button:
* if at this moment cursor was at the end of the current line item text then the list item below should be deleted and its text should be added to the current line item
* otherwise normal behavior should be preserved, i.e. delete one character.
* when user hits TAB button:
* increase indent of the current line item.
* when user hits SHIFT+TAB button:
* decrease indent of the current line item.
* When TEXTAREA looses focus it should be converted back to regular LI item.
* Switching between edit and normal mode (between TEXTAREA and LI) should be as unnoticeable as possible. Thus remove all TEXTAREA borders and use the same font.
* Smooth behavior without noticeable delays is required.
* If there is a showstopper in implementing one of the requirements it can be negotiated.
* Complete and fully-functional script of the plugin should be provided.
IE 7.0+, Firefox 3.0+, Chrome, Opera, Safari