function wrap(str, lineWidth)
{
    var len = str.length;
    if ( len < lineWidth ) return str;

    /* Collapse multiple white-space into single space. */
    var output = '';
    for ( var i = 0 ; i < str.length ; ) {
	var c = str.charAt(i);
	output += c;
	if ( c == ' ' || c == '\t' ) {
	    for ( i++ ; i < str.length ; i++ ) {
		var c = str.charAt(i);
		if ( c == ' ' || c == '\t' ) continue;
		else break;
	    }
	    if ( i == str.length ) break;
	} else i++;
    }
    str = output;
    var lines = [];
    var lineLength = 0, lastNewlineAt = -1;
    for ( var i = 0 ; i < str.length ; i++ ) {
	var c = str.charAt(i);
	if ( c == '\n' ) lineLength = 0;
	else lineLength++;
	if ( lineLength >= lineWidth ) {
	    var index = str.lastIndexOf(' ', i);
	    if ( index > lastNewlineAt ) {
		lines.push(str.substring(lastNewlineAt+1, index));
		lastNewlineAt = index;
		lineLength = i - index;
	    }
	}
    }
    lines.push(str.substring(lastNewlineAt+1));
    return lines.join("\n");
}

function doWrap(theForm)
{
    theForm.comments.value = wrap(theForm.comments.value, 70);
}

