Уже давно понравилась идея на сайте вконтакте.ру, когда вводишь определенное колличество переносов строки, то поле ввода становиться более широкое.
<script type="text/javascript">
function resizeTextarea(event, key)
{
if (event.keyCode == 13) {
if (typeof self.totalEnter != 'number') {
totalEnter = 1;
}
totalEnter++;
if (totalEnter > 3) {
key.rows = key.rows + 1;
}
}
}
</script>
<textarea cols="55" rows="3" name="message" onkeypress="javascript:resizeTextarea(event, this)"></textarea>