function Insert_BBQuote(author, quote)
{
    document.getElementById('message').value += '[quote=' + author + ']' + quote + '[/quote]';
}

function Inset_JustText(text, space)
{
    if (space==1)
        text += ' ';
    document.getElementById('message').value += text;
}

/* Обрамление тегами BB-code, текст под курсором, коды смайликов, захват выделения (быстрая цитата).
Author: 12345с, isvetlov/at/hotmail_com */
brkL="[";brkR="]";selted='';
function insPic(s1,s2,s3)
{
    if(!d.all&&selted==''&&s3==3)
    {
        s1=s2;
        s2=brkL+'/'+s2+brkR;
        s3='';
    }
    if(s3==3)
    {
        s1+=s2;
        s2='';
    }
    s1=brkL+s1+(s2==brkR?'=':brkR);
    if(s3==2)
    {
        s1+=s2;
        s2='';
    }
    var isPic=s2==null;
    var s=insField.value;
    var insPosL,insPosR;
    var scrl=insField.scrollTop;
    if(insField.selectionEnd==null)
    {
        var ch=0;
        if(d.selection&&d.selection.createRange)
        {
            var tR=d.selection.createRange();
            var ch='character';
            var tR1=d.body.createTextRange();
        }
        if(!ch||tR.parentElement&&tR.parentElement()!=insField)
        {
            insPosL=insPosR=s.length;
        }
        else
        {
            insPosL=tR.text.length;
            if(insField.type=='textarea')
            {
                tR1.moveToElementText(insField);
                tR.setEndPoint('StartToStart',tR1);
                insPosR=tR.text.length;
            }
            else
            {
                tR.moveStart('textedit',-1);
                insPosR=tR.text.length;
            }
            insPosL=insPosR-insPosL;
        }
    }
    else
    {
        insPosL=insField.selectionStart;
        insPosR=insField.selectionEnd;
        if(insBeg&&self.opera&&!insPosL&&!insPosR)
        {
            insPosL=insPosR=s.length;insBeg=0;
        }
    }
    
    var insText=s.substring(insPosL,insPosR);
    
    if((isInSel=selted==insText)&&s3==3)
    {
        isInSel=insText.length;insText='';
    }
    
    if(d.all)insField.defaultValue=s;
    else defa=s;

    if(isPic&&!(s3==2&&insText!=''))
    {
        s2=s1;s1='';
    }

    insField.value=s.substring(0,insPosL)+s1+insText+s2+s.substring(insPosR,s.length);
    if(isInSel&&s3==3)insPosR-=isInSel;
    var insCursor=insPosR+s1.length+(isPic||insPosL!=insPosR?s2.length:0);
    var insCursorL=insCursor;
    
    if(s3==1)
    {
        insCursorL=insPosL+s1.length;insCursor=s1.length+insPosR;
    }

    var a1=s.substr(0,s3!=3?insPosR:insPosR+isInSel).match(/\r\n/g);
    if(d.body.createTextRange)
    {
        setTimeout("var t=insField.createTextRange();t.collapse();t.moveEnd('"+ch+"',"+(insCursor-(a1?a1.length:0))+");t.moveStart('"+ch+"',"+(insCursorL-((a1=s3!=3?s.substr(0,s3==1?insPosL:insPosR).match(/\r\n/g):a1)?a1.length:0))+");t.select();",1);
    }
    else
    {
        if(d.all)insField.focus();
        if(insField.selectionEnd!=null)
        {
            insField.selectionStart=insCursorL;insField.selectionEnd=insCursor+(d.all?1:0);
            setTimeout("insField.focus();if(d.all)insField.selectionEnd--",50);
            
            if(d.all)
            {
                var tR=d.selection.createRange();
                if(insCursorL==insCursor)tR.collapse();
                tR.select();
            }
            else if(scrl>0)insField.scrollTop=scrl;
        }
    }
}
function insTag(s,c){insPic(s,(c?c:'')+brkL+'/'+s+brkR+(c?', ':''),c?2:null);}
function insTagSel(s){insPic(s,brkL+'/'+s+brkR,1);}
function insTagArg(s){insPic(s,brkR);}
function insBack(){with(insField){var s=d.all?value:defa;value=d.all?defaultValue:defa;if(d.all)defaultValue=s;else defa=s;}}

d=document;
d.onmouseup=function(){if(self.opera)str=d.getSelection();}

function insCapt(s){insPic(s+brkR
  +(selted=(d.getSelection?(self.str?str:(d.all?(d.getSelection()
    ?d.getSelection():d.selection.createRange().text):getSelection()))
    :(d.selection?d.selection.createRange().text:'')))
  +brkL+'/',s,3);}
  
onload=function()
{
	insField=d.getElementById('message');insBeg=1;
}
