

var imageTag = false;
var theSelection = false;


var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion); 

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);




bbcode = new Array();
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[red]','[/red]','[blue]','[/blue]','[green]','[/green]','[quote]','[/quote]');
imageTag = false;




function getarraysize(thearray) {
   for (i = 0; i < thearray.length; i++) {
      if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
         return i;
      }
   return thearray.length;
}


function arraypush(thearray,value) {
   thearray[ getarraysize(thearray) ] = value;
}


function arraypop(thearray) {
   thearraysize = getarraysize(thearray);
   retval = thearray[thearraysize - 1];
   delete thearray[thearraysize - 1];
   return retval;
}


function bbstyle(bbnumber) {

   var txtarea = document.add_post.answer;

   txtarea.focus();
   donotinsert = false;
   theSelection = false;
   bblast = 0;



   if ((clientVer >= 4) && is_ie && is_win)
   {
      theSelection = document.selection.createRange().text;
      if (theSelection) {

         document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
         txtarea.focus();
         theSelection = '';
         return;
      }
   }
   else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
   {
      mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
      return;
   }


   for (i = 0; i < bbcode.length; i++) {
      if (bbcode[i] == bbnumber+1) {
         bblast = i;
         donotinsert = true;
      }
   }

   if (donotinsert) {
      while (bbcode[bblast]) {
            butnumber = arraypop(bbcode) - 1;
            txtarea.value += bbtags[butnumber + 1];
            buttext = eval('document.add_post.addbbcode' + butnumber + '.value');
            eval('document.add_post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
            imageTag = false;
         }
         txtarea.focus();
         return;
   } else {



    
      txtarea.value += bbtags[bbnumber];
      txtarea.value += bbtags[bbnumber+1];
      
      
      
      
      
      txtarea.focus();
      return;
   }
   storeCaret(txtarea);
}


function mozWrap(txtarea, open, close)
{
   var selLength = txtarea.textLength;
   var selStart = txtarea.selectionStart;
   var selEnd = txtarea.selectionEnd;
   if (selEnd == 1 || selEnd == 2)
      selEnd = selLength;

   var s1 = (txtarea.value).substring(0,selStart);
   var s2 = (txtarea.value).substring(selStart, selEnd)
   var s3 = (txtarea.value).substring(selEnd, selLength);
   txtarea.value = s1 + open + s2 + close + s3;
   return;
}



function storeCaret(textEl) {
   if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}


function bbfontstyle(bbopen, bbclose) {
   var txtarea = document.add_post.answer;

   if ((clientVer >= 4) && is_ie && is_win) {
      theSelection = document.selection.createRange().text;
      if (!theSelection) {
         txtarea.value += bbopen + bbclose;
         txtarea.focus();
         return;
      }
      document.selection.createRange().text = bbopen + theSelection + bbclose;
      txtarea.focus();
      return;
   }
   else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
   {
      mozWrap(txtarea, bbopen, bbclose);
      return;
   }
   else
   {
      txtarea.value += bbopen + bbclose;
      txtarea.focus();
   }
   storeCaret(txtarea);
}









// Друзья / Враги

function forum_friend(div, user_id, action)
{
        rnd = Math.random(1);
        // Получаем текст запроса из <input>-поля.
        //var user_id = document.getElementById('user_id').value;
        // Создаем новый объект JSHttpRequest.
        var req = new JsHttpRequest();
        // Код, АВТОМАТИЧЕСКИ вызываемый при окончании загрузки.
        req.onreadystatechange = function() {
                if (req.readyState == 4) {
                        if (req.responseJS) {
                                // Записываем в <div> результат работы.
                                document.getElementById(div).innerHTML = req.responseJS.result||'';
                        }
                        // Отладочная информация.
                        //document.getElementById('debug').innerHTML = req.responseText;
                }
        }
        // Разрешаем кэширование (чтобы при одинаковых запросах
        // не обращаться к серверу несколько раз).
        req.caching = false;
        // Подготваливаем объект.
        req.open('POST', '/js/forum.php', true);
        // Посылаем данные запроса (задаются в виде хэша).
        req.send({ user_id: user_id, action:action, rnd:rnd , div:div});
}

// Подписка

function forum_subscribe(div, action, frm_id, type)
{
        rnd = Math.random(1);
        // Получаем текст запроса из <input>-поля.
        //var user_id = document.getElementById('user_id').value;
        // Создаем новый объект JSHttpRequest.
        var req = new JsHttpRequest();
        // Код, АВТОМАТИЧЕСКИ вызываемый при окончании загрузки.
        req.onreadystatechange = function() {
                if (req.readyState == 4) {
                        if (req.responseJS) {
                                // Записываем в <div> результат работы.
                                document.getElementById(div).innerHTML = req.responseJS.result||'';
                        }
                        // Отладочная информация.
                        //document.getElementById('debug').innerHTML = req.responseText;
                }
        }
        // Разрешаем кэширование (чтобы при одинаковых запросах
        // не обращаться к серверу несколько раз).
        req.caching = false;
        // Подготваливаем объект.
        req.open('POST', '/js/forum.php', true);
        // Посылаем данные запроса (задаются в виде хэша).
        req.send({ frm_id: frm_id, rnd:rnd, action:action, type: type });
}



// Добавление картинки

function add_img_form(action,div)
{
        var req = new JsHttpRequest();
        req.onreadystatechange = function() {
                if (req.readyState == 4) {
                        if (req.responseJS) {
                                document.getElementById(div).innerHTML = req.responseJS.result||'';
                        }
                }
        }
        req.caching = false;
        req.open('POST', '/js/forum.php', true);
        req.send({ action:action, div:div });
}