Код лежит открыто на странице
function quoteSelection(author, id, time)
{
if (!sel) assignSel();
if (sel && (sel != ""))
addText("[quote author="+author+" link=msg="+id+"#msg"+id+" date="+time+"]\n" + sel + "\n[/quote]\n");
else
alert("First select text you want to quote and then click this button again.");
}
function addText(text) {
var textarea = document.forms.postmodify.message;
var scrollPos = document.body.parentNode.scrollTop;
if (!window.getSelection)
{
textarea.focus();
sel = document.selection.createRange();
sel.text = text;
}
else if (typeof(textarea.selectionStart) != "undefined")
{
var edScrollPos = textarea.scrollTop;
var begin = textarea.value.substr(0, textarea.selectionStart);
var end = textarea.value.substr(textarea.selectionEnd);
var curPos = begin.length + text.length + (navigator.appName == "Opera" ? 3 : 0);
textarea.value = begin + text + end;
textarea.setSelectionRange(curPos, curPos);
textarea.scrollTop = edScrollPos;
}
else
textarea.value += text;
textarea.focus();
document.body.parentNode.scrollTop = scrollPos;
textchange(textarea);
}
function addBBC(code)
{
textarea = document.forms.postmodify.message;
if (!window.getSelection)
{
textarea.focus();
var select = document.selection.createRange();
select.text = "["+code+"]"+select.text+"[/"+code+"]";
// textarea.focus();
}
else if (typeof(textarea.selectionStart) != "undefined")
{
var edScrollPos = textarea.scrollTop;
var i_st = textarea.selectionStart+2+code.length;
var i_end = textarea.selectionEnd+2+code.length;
var begin = textarea.value.substr(0, textarea.selectionStart);
var select = "["+code+"]"+textarea.value.substr(textarea.selectionStart, textarea.selectionEnd-textarea.selectionStart)+"[/"+code+"]";
var end = textarea.value.substr(textarea.selectionEnd);
textarea.value = begin + select + end;
textarea.setSelectionRange(i_st, i_end);
textarea.focus();
textarea.scrollTop = edScrollPos;
}
else
textarea.value += "["+code+"]"+"[/"+code+"]";
textchange(textarea);
}
function getSelSource()
{
var html_selection;
if (window.getSelection)
{
var x = document.createElement("div");
x.appendChild(window.getSelection().getRangeAt(0).cloneContents());
html_selection=x.innerHTML;
}
else
{
html_selection=document.selection.createRange().htmlText;
}
// code? other bbc?
if (html_selection)
html_selection = html_selection
//.replace(/^[\s\S]*<div class="?inner"*>/ig, "")
//.replace(/<\/div>[\s\S]*/ig, "")
.replace(/<blockquote class="bbc_(standard|alternate)_quote">/ig, "[quote]")
.replace(/<(\/)?blockquote>/ig, "[$1quote]")
.replace(/[\r\n]/g, "")
//.replace(/\n/g, "")
.replace(/<br ?(\/?)>/ig, "\n")
.replace(/<hr ?(\/?)>/ig, "[hr]")
.replace(/<img[^>]*alt="?([^>"\s]*)"?[^>]*class="?smiley"?[^>]*>/ig, "$1")
.replace(/<img[^>]*class="?smiley"?[^>]*alt="?([^>"\s]*)"?[^>]*>/ig, "$1")
.replace(/<img[^>]*"?[^>]*alt="([^>"]*)"[^>]*>/ig, "$1")
.replace(/<div class="?quoteheader"*><a\s+href="[^"]*index.php\?([^">]*)">[^<]*"([^<"]*)"[^<]*<\/a><\/div>\s*\[quote\]/ig, "[quote author=\"$2\" link=$1]")
.replace(/<div class="?quoteheader"*><a\s+href="[^"]*index.php\?([^">]*)">[^<]*<\/a><\/div>\s*\[quote\]/ig, "[quote link=$1]")
.replace(/<(\/)?(b|i|sub|sup)>/ig, "[$1$2]").replace(/<(\/)?del>/ig, "[$1s]")
//.replace(/<span class="?bbc_u"*>()
.replace(/<[^>]+>/g, "")
.replace(/ /g, " ").replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&")
.replace(/^\s+|\s+$/g,"")
.replace(/\[quote\]\s*\[\/quote\]/g,"")
;
return html_selection;
}
//]]></script>
Кстати, а чего не в
.js?
пусть кто-нибудь возьмет да починит 
Ктонибудем будет не Bʰudʰ.
У меня с регэкспами невзаимноуважение.

Записан
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо