// Скрипт для вставки текста под курсор.
// Author: PHP-DIRECTOR <black@wmtime.ru>
// Протестировано в IE 6.0, FireFox 1.0.4, Opera 8.0, 8.01
// название текстового поля (<input type='text' id='mess' />)
// вставьте значение атрибута id текстового поля
name = "content_chat";
// позиция курсора по умолчанию
cursor = 0;
// получаем текстовое поле в переменную
function obj() { str = document.getElementById("content_chat"); }
// отслеживаем позицию курсора
function position()
{
 if (!document.selection) { cursor = str.selectionStart; }
}
// вставляем текст под курсор
function InsertText(text)
{
    // если это браузер Opera, то не передаем фокус текстовому полю (иначе будут глюки)
    // убрал потому что не заметил глюка
	//if(navigator.userAgent.indexOf('Opera')==-1) {str.focus();}
	str.focus();
	
    // действия для браузера MSIE, Opera
    if (document.selection) { document.selection.createRange().text = text + ' '; }
    // действия для браузера FireFox, Mozilla
    else
    {
        // разделяем исходную строку на две переменные
        // strFirst - строка ДО вставки текста
        // strEnd - строка ПОСЛЕ вставки текста
        var strFirst = str.value.substr(0, cursor);
        var strEnd   = str.value.substr(cursor, str.value.length);
        // обработка строк (удаление лишних пробелов)
        if(strFirst=='') { var raz1 = ''; var raz2 = ' '; var num = 1; }
        else
        {
        var raz1 = '';  var raz2 = ''; var num = 0;
        // проверяем есть ли на стыке границ строк пробелы, если нет, то сами их добавим
        if (!/^.*(\s{1,})$/.test(strFirst)) { raz1 = " "; num++; }
        if (!/^(\s{1,}).*$/.test(strEnd)) { raz2 = " "; num++; }
        }
        // формируем новую строку (с вставленным текстом ПО СЕРЕДИНЕ)
        // и полученную строку вставляем в текстовое поле
        str.value = strFirst + raz1 + text + raz2 + strEnd;
        // вычисляем новое значение положения курсора
        cursor = strFirst.length + text.length + num;
        // ставим курсор в текстовое поле сразу после вставленного текста
        str.selectionStart = str.selectionEnd = cursor;
    }
}

