<!--
InsertTag_tags = new Array();//Массив, необходимый для стрых браузеров, которые не поддерживают выделение
function InsertTag(id, open, close) {
    var target = document.getElementById(id);
    if (!window.opera)//Даем фокус, если браузер не Opera
        target.focus();
    if (typeof(cursor) != "undefined") {//IE 4.0 (win32) & Opera 8.0
        //alert("IE & Opera");
        if (cursor.text.length) {//Если имеется выделение
            cursor.text = open + cursor.text + close;//Обводим выделенное тегами
            cursor.moveToElementText(target);//Расширяем облость селекции на всё поле ввода
            cursor.collapse(false);//"Сварачиваем" выделение в курсор и ставим его в конец
        } else {//Если имеется курсор без выделенного участка строки
            cursor.text = open + close;//Вставляем теги на место курсора
            cursor.moveEnd("character", -close.length);//Ставим курсор между тегами
        }
        cursor.select();//Переносим селекцию
        return;//Завершаем работу функции.
    }
    if (typeof(cursorStart) != "undefined") {//Gecko
        var start = target.value.substring(0, cursorStart),//Получаем строку, находящуюся до выделения
            selected = target.value.substring(cursorStart, cursorEnd),//Получаем выделенную строку (или пустую строку, если ничего не выделено)
            end = target.value.substr(cursorEnd);//Получаем строку, находящуюся после выделения
        target.value = start + open + selected + close + end;//Изменяем значение объекта
        target.selectionStart = target.selectionEnd = selected.length ? target.value.length : start.length + open.length;//Устанавливаем позицию курсора
        target.scrollTop = cursorScroll;//Задаем scroll
        return;//Завершаем работу функции.
    }
    if (InsertTag_tags[open + close]) {//Если в глобальном массиве есть ключ с именем тека - добавляем вторую часть тега
        target.value += close;
        InsertTag_tags[open + close] = false;
    } else {//Если в глобальном массиве нету ключа с именем тега или этот ключ имеет значение false - добавляем в конец значения объекта первую часть тега
        target.value += open;
        InsertTag_tags[open + close] = true;
    }
}
function PositionSaver(target) {
    if (document.selection && document.selection.createRange) {//IE 4.0 (win32) & Opera 8.0
        cursor = document.selection.createRange().duplicate();
        return;
    }
    if (typeof(target.selectionStart) != "undefined") {//FireFox & Mozilla
        cursorStart = target.selectionStart;
        cursorEnd = target.selectionEnd;
        cursorScroll = target.scrollTop;
        return;
    }
}

function insert_text_link(){
  var txtarea = document.getElementById("htmlarea");
  var cur = getCursor(txtarea);

  if (cur.start!=cur.end){
    var hreff=window.prompt("Введите URL ссылки", '');
    //(http[s]?|ftp)://([^:/\s]+)((/\w+)*/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)
    var regexx = new RegExp('([A-Za-z][A-Za-z0-9+.-]{1,120}:[A-Za-z0-9/](([A-Za-z0-9$_.+!*,;/?:@&~=-])|%[A-Fa-f0-9]{2}){1,333}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*,;/?:@&~=%-]{0,1000}))?)');
    //'^(http[s]?|ftp)://[a-z/#\.\-]+$');
    //'([A-Za-z][A-Za-z0-9+.-]{1,120}:[A-Za-z0-9/](([A-Za-z0-9$_.+!*,;/?:@&~=-])|%[A-Fa-f0-9]{2}){1,333}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*,;/?:@&~=%-]{0,1000}))?)'


    if (hreff && hreff.match(regexx)) {
        insert_tag('<a href="'+hreff+'">', "</a>");
    }
    else alert("Это не URL");
  }
  else{
    alert("Сначала выделите текст, который вы желаете сделать ссылкой");
  }
}
// -->


