// JavaScript Document
//--------------------------------------------
// Set up our simple tag open values
//--------------------------------------------
//translit
var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
//translit

<!--var fombj    = document.msg;-->

var ua_vers   = parseInt(navigator.appVersion);

var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);

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

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

//==========================================
// TRANSLITIRATE (Main)
//==========================================

function translit()
{
		var obj_ta = document.msg.comments;
        //----------------------------------------
        // It's IE!
        //----------------------------------------
        if ( (ua_vers >= 4) && is_ie && is_win)
        {
        if (obj_ta.isTextEdit)
                {
            obj_ta.focus();
                        var sel = document.selection;
                        var rng = sel.createRange();
                        rng.colapse;
            if((sel.type == "Text" || sel.type == "None") && rng != null)
                        {
                                rng.text = dotranslate(rng.text);
                        }
                }
        else
        {
            obj_ta.value = dotranslate(obj_ta.value);
        }
        }
        //----------------------------------------
        // It's MOZZY!
        //----------------------------------------

        else if ( obj_ta.selectionEnd )
        {
        var ss = obj_ta.selectionStart;
                var st = obj_ta.scrollTop;
                var es = obj_ta.selectionEnd;

                if (es <= 2)
                {
                        es = obj_ta.textLength;
                }

                var start  = (obj_ta.value).substring(0, ss);
                var middle = (obj_ta.value).substring(ss, es);
                var end    = (obj_ta.value).substring(es, obj_ta.textLength);

                //-----------------------------------
                // text range?
                //-----------------------------------

                if (obj_ta.selectionEnd - obj_ta.selectionStart > 0)
                {
                        middle = dotranslate(middle);
                }

                obj_ta.value = start + middle + end;

                var cpos = ss + (middle.length);

                obj_ta.selectionStart = cpos;
                obj_ta.selectionEnd   = cpos;
                obj_ta.scrollTop      = st;


        }
        //----------------------------------------
        // It's CRAPPY!
        //----------------------------------------
        else
        {
                obj_ta.value = dotranslate(obj_ta.value);
        }

        obj_ta.focus();

        return;
}

//==========================================
// TRANSLITIRATE (String convertion)
//------------------------------------------

function dotranslate(text)
{
    var txtnew = "";
    var symb = 0;
    var subsymb = "";
    var trans = 1;
    for (kk=0;kk<text.length;kk++)
    {
        subsymb = text.substr(kk,1);
        if ((subsymb=="[") || (subsymb==""))
        {
            trans = 0;
        }
        if ((subsymb=="]") || (subsymb==">"))
        {
            trans = 1;
        }
        if (trans)
        {
            symb = transsymbtocyr(txtnew.substr(txtnew.length-1,1), subsymb);
        }
        else
        {
            symb = txtnew.substr(txtnew.length-1,1) + subsymb;
        }
        txtnew = txtnew.substr(0,txtnew.length-1) + symb;
    }
    return txtnew;
}

//==========================================
// TRANSLITIRATE (Symbol convertion)
//------------------------------------------

function transsymbtocyr(pretxt,txt)
{
        var doubletxt = pretxt+txt;
        var code = txt.charCodeAt(0);
        if (!(((code>=65) && (code<=123))||(code==35)||(code==39))) return doubletxt;
        var ii;
        for (ii=0; ii<lat_lr2.length; ii++)
        {
                if (lat_lr2[ii]==doubletxt) return rus_lr2[ii];
        }
        for (ii=0; ii<lat_lr1.length; ii++)
        {
                if (lat_lr1[ii]==txt) return pretxt+rus_lr1[ii];
        }
        return doubletxt;
}


var paste_user_name 	= ""
var IE5 		= (navigator.userAgent.indexOf('MSIE')!=-1) && (navigator.userAgent.indexOf('Opera')==-1)
var Opera7 		= (navigator.userAgent.indexOf('Opera')!=-1) && (navigator.userAgent.charAt(navigator.userAgent.indexOf('Opera')+6)>=7)

function p1(text){ 
if (text!="") paste("[b]"+text+"[/b]\n", 1)
}

function p5(obj,text){
if (text!="" && obj ) obj.value = text;
}

function p2(text){ 
if (text!="") {
	if ((paste_user_name!="") && (document.msg.comments.value.indexOf("[b]"+paste_user_name+"[/b]")==-1)) {
		if (document.msg.comments.value!='') paste("\n", 0)
		paste("[b]"+paste_user_name+"[/b]\n", 0)
	} else {
		if (document.msg.comments.value!='') paste("\n", 0)
	}
	paste("[quote]"+text+"[/quote]\n", 0)
}
}

function paste(text){ 
if ((document.selection)) {
	document.msg.comments.focus()
	document.msg.document.selection.createRange().text = text
} else document.msg.comments.value += text
}

function get_mouse_location(e)
{
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all 
var ns4=document.layers

eventX=ie4? e.x + document.body.scrollLeft : ns6? e.pageX  : e.x + document.body.scrollLeft;
eventY=ie4? e.y + document.body.scrollTop  : ns6? e.pageY  : e.y + document.body.scrollTop;

/*alert(eventX);
alert(eventY);
*/

//eventX=ie4? event.clientX : ns6? e.clientX : e.x + document.body.scrollLeft;
//eventY=ie4? event.clientY : ns6? e.clientY : e.y + document.body.scrollTop;
}

function on_mouseup(){
setTimeout("paste_window("+eventX+","+eventY+")", 50);
}

function on_scroll(){
if (document.postform != null) 
	if (post.style.position != "") setTimeout('post.style.top=document.body.scrollTop+document.body.offsetHeight-post.offsetHeight-5', 50)
}

function paste_window(X, Y){
if (document.selection.createRange().text != '')
{
	//document.getElementById("float_paste")
	document.getElementById("float_paste").style.display="";
	document.getElementById("float_paste").style.left=X-40;
	document.getElementById("float_paste").style.top=Y-40;
	setTimeout('document.getElementById("float_paste").style.display="none"', 2500);
	//setTimeout("float_pase.style.display='none'", 2500);
	//setTimeout('float_paste.style.top=-50;', 2500);
	
}
}

function get_selection() {
if (document.getSelection){
	selection = document.getSelection();
	if (!Opera7){
		selection = selection.replace(/\r\n\r\n/gi, "_doublecaret_");
		selection = selection.replace(/\r\n/gi, " ");
		while (selection.indexOf("  ") !=-1) selection = selection.replace(/  /gi, ""); 
		selection = selection.replace(/_doublecaret_/gi, "\r\n\r\n");
	}
} else
      selection = document.selection.createRange().text;
	  //if (Opera7) bbstyle(6);
//if ((document.activeElement) && (document.activeElement.id!='idpaste')) paste_user_name=unescape(document.activeElement.id);
}

//------------------------------------------------------------------
var maxSz=6000,flag=false,wKbd;
var erSzCom="Сообщение превышает допустимый размер "+maxSz+" символа";

function output(pr) {
  if(flag) return;
  if(!validate()) return;
  bbstyle(-1); document.msg.preview.value=pr; flag=true; document.msg.submit();
  }

function clear() {
  with(document.msg) {
      subj.value=name.value=comments.value=email.value=''; subj.focus();
      }
  razmer();
  }

function clearText() {
  document.msg.comments.value=''; document.msg.comments.focus(); razmer();
  }

function validate() {
  if(document.msg.comments.value.length==0)    { alert(erCom);   return(0); }
  if(document.msg.comments.value.length>maxSz) { alert(erSzCom); return(0); }
  return(1);
  }

function razmer() { document.msg.sz.value=document.msg.comments.value.length; }

/* -------------------------------------------------------------------------------- */

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC=navigator.userAgent.toLowerCase(); // Get client info
var clientVer=parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win=((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var theSelection = false;

// Helpline messages
b_help = "Жирный текст: [b]текст[/b]";
i_help = "Наклонный текст: [i]текст[/i]";
u_help = "Подчёркнутый текст: [u]текст[/u]";
q_help = "Цитата: [quote]текст[/quote]";
c_help = "Код (программа): [enpost]код[/enpost]";
l_help = "Список: [list]текст[/list]";
o_help = "Нумерованный список: [list=]текст[/list]";
p_help = "Вставить картинку: [img]http://image_url[/img]";
w_help = "Вставить ссылку: [url]http://url[/url] или [url=http://url]текст ссылки[/url]";
a_help = "Закрыть все открытые теги";
e_help = "Очистить сообщение";
s_help = "Выдели мышкой - вставь цитату";
t_help = "Преобразовать выделенный текст из транслитерации в кириллицу";
//s_help = "Цвет шрифта: [color=red]текст[/color]  Подсказка: можно использовать color=#FF0000";
//f_help = "Размер шрифта: [size=x-small]маленький текст[/size]";

// Define the bbCode tags
bbcode=new Array();
bbtags=new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[enpost]','[/enpost]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');

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

// Replacement for arrayname.push(value) not implemented in IE until version 5.5
// Appends element to the array
function arraypush(thearray,value) { thearray[getarraysize(thearray)]=value; }

// Replacement for arrayname.pop() not implemented in IE until version 5.5
// Removes and returns the last element of an array
function arraypop(thearray) {
  thearraysize=getarraysize(thearray); retval=thearray[thearraysize-1];
  delete thearray[thearraysize-1];     return retval;
  }

/*function emoticon(text) {
  var txtarea=document.msg.comments; text=' '+text+' ';
  if(document.selection) { // ie
      var caretPos=txtarea.caretPos;
      caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==' '?
        caretPos.text+text+' ':caretPos.text+text;
      }
  else { // mozilla/netscape
      if(txtarea.selectionStart || txtarea.selectionStart=='0') {
          var startPos=txtarea.selectionStart;
          var endPos=txtarea.selectionEnd;
          var area=txtarea.value;
          txtarea.value=area.substring(0,startPos)+text+ 
                        area.substring(endPos,area.length);
          txtarea.selectionStart=txtarea.selectionEnd=startPos+text.length;
          } 
      else { txtarea.value+=text; }
      }
  txtarea.focus();
  }
*/

function emoticon(text) {
	var txtarea = document.msg.comments;
	text = ' ' + text + ' ';
	if (txtarea.createTextRange && txtarea.caretPos) {
		var caretPos = txtarea.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
		txtarea.focus();
	} else {
		txtarea.value  += text;
		txtarea.focus();
	}
}

function bbstyle(bbnumber) {
  var txtarea=document.msg.comments;
  txtarea.focus(); donotinsert=false; theSelection=false; bblast=0;
  if(bbnumber==-1) { // Close all open tags & default button names
      while(bbcode[0]) {
          butnumber=arraypop(bbcode)-1; txtarea.value+=bbtags[butnumber+1];
          //buttext=eval(nm+ butnumber+'.value');
          eval('document.images["code'+ butnumber +'"].className="buttonborder1"');
		  //eval(nm+butnumber+'.value="'+buttext.substr(0,(buttext.length-1))+'"');
          }
      txtarea.focus(); return;
      }
  if((clientVer>=4) && is_ie && is_win) {
      theSelection=document.selection.createRange().text; // Get text selection
      if(theSelection) { // Add tags around selection
          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;
      }
 // Find last occurance of an open tag the same as the one just clicked
  for(i=0; i<bbcode.length; i++) {
      if(bbcode[i]==bbnumber+1) { bblast=i; donotinsert=true; }
      }
  if(donotinsert) { 
 // Close all open tags up to the one just clicked & default button names
      while(bbcode[bblast]) {
          butnumber=arraypop(bbcode)-1; txtarea.value+=bbtags[butnumber+1];
//          buttext=eval(nm+butnumber+'.value');
//         eval(nm+butnumber+'.value ="'+buttext.substr(0,(buttext.length-1))+'"');
	      eval('document.images["code'+ butnumber +'"].className="buttonborder1"');	  
          }
      txtarea.focus(); return;
      } 
  else { // Open tags
      txtarea.value+=bbtags[bbnumber]; arraypush(bbcode,bbnumber+1);
      //eval(nm+bbnumber+'.value+="*"'); 
	  eval('document.images["code'+ bbnumber +'"].className="buttonborder2"');	  
	  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);
  var s2sz=open.length+s2.length+close.length;
  txtarea.value=s1+open+s2+close+s3; 
  txtarea.selectionStart=txtarea.selectionEnd=selStart+s2sz;
  txtarea.focus();
  }

// Insert at Claret position. Code from
function storeCaret(textEl) {
  if(textEl.createTextRange) textEl.caretPos=document.selection.createRange().duplicate();
  }
  
  function helpline(help) {
	document.msg.helpbox.value = eval(help + "_help");
}
//* ответить *//
function answer(answ_id){
            var elem = document.getElementById(answ_id);
            var answ_text = (elem.innerText!=null) ? elem.innerText : elem.textContent || "";
            p2(answ_text);
                        }
							
