if (document.selection||document.getSelection) {Q=true} else {var Q=false}
var txt=''

function copyQ() {
        txt=''
        if (window.getSelection&&!window.opera) txt = window.getSelection() 
        else if (document.getSelection) txt=document.getSelection()
        else if (document.selection) txt=document.selection.createRange().text
        if (IFrameEdit) txt='\<BLOCKQUOTE\>\<B\>Цитата:\</B\>\<HR\>'+txt+'\<HR\>\</BLOCKQUOTE\>'
        else txt='[Q]'+txt+'[/QUOTE]\n'
}

function insertAtCaret(textObj,textV){    
    textV=textV.replace(/\[\?\]/g,'')
    if (textV==''||!textObj) return
    var ver=8
    if(document.all && !window.opera){
      if (textObj.createTextRange&&textObj.caretPos) {
          var caretPos=textObj.caretPos
          caretPos.text=textV
        }else textObj.value+= textV
        }else
        {var brows=navigator.userAgent.toString()
         var scrollTop, scrollLeft
         if (textObj.type=='textarea'&&textObj.scrollTop)
         {scrollTop=textObj.scrollTop;scrollLeft=textObj.scrollLeft}                
          if(brows.search(/opera\/?(\d*.\d*)/i)!=-1) ver=RegExp.$1 
          if(textObj.selectionStart>=0&&ver>=8){
          if(textObj.textLength != undefined) 
           {var selLength=textObj.textLength 
            var selStart=textObj.selectionStart
            var selEnd=textObj.selectionEnd 
            if (selEnd==1||selEnd==2)selEnd=selLength  
            var s1=(textObj.value).substring(0,selStart) 
            var s2=(textObj.value).substring(selEnd,selLength)
            textObj.value=s1+textV+s2
            textObj.setSelectionRange(selStart+textV.length,selStart+textV.length) 
            } 
            if (typeof scrollTop != 'undefined')
            {textObj.scrollTop=scrollTop;textObj.scrollLeft=scrollLeft}
           }else textObj.value+=textV
        }
}

function pasteQ(){
    if (txt=='') return;
    if (IFrameEdit) frames.message.document.body.innerHTML += txt
    else if (MessageBox ) insertAtCaret(MessageBox ,txt)
}

function myEvent(where,evt,func,op){
if (op=="+")
  {if (where.attachEvent) where.attachEvent("on"+evt,func)
   else if (where.addEventListener) where.addEventListener(evt,func,false)
  }
else {if (where.detachEvent) where.detachEvent("on"+evt,func)
      else if (where.removeEventListener) where.removeEventListener(evt,func,false)
     }
}

function get_e(e){
return (e)?e:(window.event)?event:null
}

function who_fired_event(e) {
e=get_e(e)
if(!e) return
var targ=(e.target)?e.target:(e.srcElement?e.srcElement:null)
if (targ&&targ.nodeType==3) targ=targ.parentNode
return targ
}

function getposOffset(overlay, offsettype){
var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop
var parentEl=overlay.offsetParent
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop
parentEl=parentEl.offsetParent
}
return totaloffset
}

function quote() {
this.sel_started=false
this.insert_over=false
this.mouse_down=false
var instimeout=1000,an_url=""//"http://anonym.to/?"  
var bropacity=(document.all&&!window.opera&&!document.createTextRange)?"filter: alpha(opacity=30);":(!window.opera?"-moz-opacity: 0.3;":"opacity: 0.3;")
var ttxt="<b>&nbsp;Вставить цитату&nbsp;</b>",ttxt2="<font size=-2><b><font color=red>X</font></b>&nbsp;</font>",ttxt3="<span name='an_url' id='an_url'></span>"
document.write('<div id="insert_window" style="position:absolute;visibility:hidden" class=dats><div style="z-index:1000;position:absolute;background-color:black;'+bropacity+'"><span style="visibility:hidden">'+ttxt+ttxt2+ttxt3+'</span></div><div style="z-index:1001;position:relative;top:-7px;left:-7px;cursor:pointer;background-color:#FFFFEE;border-style:solid;border-color:#565656;border-width:1px;color:blue" onmouseout="setTimeout(hide_insert,'+instimeout+');qt.insert_over=false" onmouseover="qt.insert_over=true;copyQ()"><span onmousedown="qt.insert_cite()" align=center>'+ttxt+'</span>'+ttxt3+'<span onclick="qt.remove_insert()" title="Отключить фичу">'+ttxt2+'</span></div></div>')

this.f_not_member=function(evt){
evt=get_e(evt)   
var targ=who_fired_event(evt)
if (targ&&targ.tagName!='TEXTAREA'&&(targ.tagName!='INPUT'&&targ.type!='TEXT'&&targ.type!='PASSWORD')) return true
  else return false
}

this.remove_insert=function() {
var ok=confirm("Вы уверены, что хотите отключить данную опцию?\nОна будет доступна только после очистки cookies.")
if (ok) {Set_Cookie("finsert",1,365);this.hide_insert()}
}

this.insert_mup=function(evt) {
this.mouse_down=false
if (!this.sel_started) return
   else this.sel_started=false
evt=get_e(evt)
var txt2=''
if (IFrameEdit) {
 if (window.getSelection) txt2 = window.getSelection()
 else if (document.getSelection) txt2=document.getSelection()
 else if (document.selection) txt2=document.selection.createRange().text 
}
else txt2 = getSelection();
if(txt2!=''&&this.f_not_member(evt)&&document.getElementById('ForumMessageArea')&&!Get_Cookie('finsert'))
 {
  var coords=getMouseCoords(evt)
  var iw=document.getElementById('insert_window')
  iw.style.left=coords[0]-62
  iw.style.top=coords[1]-17
  var url=this.isUrl(txt2)
  var lnks=document.getElementsByName('an_url')
  if (url!='') {for(var i=0;i<lnks.length;i++) lnks[i].innerHTML="<a href='"+an_url+"http://"+url+"' target=_blank><img src='/forum_images/popup_icon.gif' height=10 alt='^' title='Перейти по анонимной ссылке http://"+url+" в новом окне' width=15 border=0></a>&nbsp;"}
    else {for(var i=0;i<lnks.length;i++) lnks[i].innerHTML=""}
  iw.style.visibility='visible'
  setTimeout(hide_insert,instimeout)
 }
}

this.isUrl=function(s) {
try{var reg=new RegExp("([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\/+@&#;`~=%!]*)(\\.\\w{2,})?)*\\/?","i")
var urls=reg.exec(s)
if (urls!=null) return urls[0]
}

catch(e){};
return ''
}

this.insert_cite=function(){
pasteQ();this.insert_over=false;this.hide_insert()
}

this.hide_insert=function(){
if (!this.insert_over) 
 {
//stupidity of Opera, which doesn't refresh the textarea in case of simple visibility=hidden
  var iw=document.getElementById('insert_window');iw.style.left=-100;iw.style.top=-100}
}
}

function hide_insert() {
qt.hide_insert()
}

function getMouseCoords(e) {
 var posx=0;var posy=0;e=get_e(e)
 if (e.pageX||e.pageY){posx = e.pageX;posy = e.pageY}
  else if (e.clientX||e.clientY)
    {posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft
     posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}
     return [posx,posy]
}

if ((document.attachEvent||document.addEventListener)&&!Get_Cookie('finsert')) {  
  var qt=new quote()
  myEvent(document,'mousedown',(function(evt){if(qt.f_not_member(evt)) qt.mouse_down=true}),"+") 
  myEvent(document,'mousemove',(function(){if(qt.mouse_down&&!qt.sel_started) {qt.sel_started=true;qt.mouse_down=false}}),"+")
  myEvent(document,'mouseup',(function(evt){qt.insert_mup(evt)}),"+")
}
