var map_en = ["SHH","shh","SH","sh","JO","jo","ZH","zh","KH","kh","CH","ch","JJ","jj","EH","eh","JU","ju","JA","ja","A","a","B","b","V","v","G","g","D","d","E","e","Z","z","I","i","K","k","L","l","M","m","N","n","O","o","P","p","R","r","S","s","T","t","U","u","F","f","'","'","C","c","Y","y","\"","\"","[Б]","[/Б]","[И]","[/И]","[У]","[/У]","[УРЛ]","[/УРЛ]"];
var map_ru = ["Щ","щ","Ш","ш","Ё","ё","Ж","ж","Х","х","Ч","ч","Й","й","Э","э","Ю","ю","Я","я","А","а","Б","б","В","в","Г","г","Д","д","Е","е","З","з","И","и","К","к","Л","л","М","м","Н","н","О","о","П","п","Р","р","С","с","Т","т","У","у","Ф","ф","Ь","ь","Ц","ц","Ы","ы","Ъ","ъ","[B]","[/B]","[I]","[/I]","[U]","[/U]","[URL]","[/URL]"];
var smiles = [[["005","26","24"],["088","51","28"],["079","22","26"],["024","27","35"],["081","31","32"],["010","21","21"],["012","32","27"],["022","21","26"],["031","24","26"],["057","27","26"],["075","31","26"],["083","36","27"],["058","30","28"],["053","27","26"]],[["092","39","34"],["008","21","25"],["014","21","25"],["015","21","25"],["019","21","25"],["020","21","25"],["025","21","25"],["040","21","25"],["043","29","25"],["056","35","25"],["070","28","28"],["087","31","26"],["111","34","23"],["026","22","21"],["037","23","26"],["086","32","26"]],[["003","35","24"],["004","35","24"],["006","36","24"],["007","35","25"],["009","35","24"],["011","40","24"],["016","36","25"],["055","38","25"],["059","35","24"],["068","40","23"],["078","38","30"],["067","48","30"],["106","35","27"],["102","41","25"],["105","36","24"],["109","36","28"]],[["095","153","40"],["062","38","28"],["061","37","26"],["074","36","33"],["064","46","48"],["073","38","26"],["077","35","31"]]];

var categ = [[],["game",117],["lib",91],["vlast",109]];
var fname = [[],["trade",84],["about",72],["wind",152],["contact",128],["bugs",54],["off",70],["lic",106],["hist",144],["art",101],["faq",57],["clan",65],["law",183],["comitet",232],["contact",128]];

var detect = 0;
var d = document;
var mo = ["","Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря"];
var Tag = [["[B]","[/B]"],["[I]","[/I]"],["[U]","[/U]"],["[URL]","[/URL]"]];
var smiles_table;
var fobj;
var time,timef;

var baseHeight;
var theSelection = false;

function ForumAuthTable()
{
    if(!fmain[4]) d.write('<div id="authForm"><span>Вы не авторизированы</span><a href="javascript: AuthWin(1);"><img src="/images/butauth.gif" width="82" height="19" border="0"></a></div>');
    else d.write('<div id="emptyForm"><span>Добро пожаловать, <BR>'+fmain[8]+'</span><a href="/action/logout.php"><img src="/images/b_logout.gif" width="82" height="19" border="0"></a></div>');
}

function ForumAuthForm()
{
    d.write('<div id="enterBlock" style="display: none"><div id="posRel"><FORM action="/action/flogin.php" method="POST"><div id="bClose"><a href="javascript: AuthWin(0);"><img src="/images/b_close.gif" onMouseOver="this.src=\'/images/b_close_o.gif\'" onMouseOut="this.src=\'/images/b_close.gif\'" width="25" height="16" border="0" alt=""></a></div><div id="enterForms"><table cellpadding="0" cellspacing="0" width="146" height="46"><tr><td><input type="text" value="Логин" name="login" onfocus="if(this.value==\'Логин\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\'Логин\';"></td></tr><tr><td height="12"><img src="/images/spacer.gif" width="1" height="12" border="0"></td></tr><tr><td><input type="password" value="1234567890" name="pass" onfocus="if(this.value==\'1234567890\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\'1234567890\';"></td></tr></table></div><div id="bEnter"><input type=image src="/images/b_enter.gif" width="75" height="19" border="0"></div></FORM></div></div>');
}

function ForumTop()
{
    ForumAuthForm();
    d.write('<div id="darker" style="display: none"></div>');
    d.write('<div id="container">');
    d.write('<div id="topLineBg">');
    d.write('<table cellpadding="0" cellspacing="0" align="center" width="1000" border="0">');
    d.write('<tr><td width="230"><img src="/images/ftop_1.gif" width="230" height="123" border="0"></td><td class="topBg"><a href="http://www.unit-online.ru" style="width: 170px; height: 80px; position:absolute; margin-left:175px; margin-top:32px;"></a>');
    ForumAuthTable();
    d.write('</td><td width="230"><img src="/images/ftop_2.gif" width="230" height="123" border="0"></td></tr></table>');
    d.write('</div>');
}

function ForumBottom()
{
    d.write('<div id="bottomLinks">Разработано Vizor Interactive, LLC © 2008-2012.<br><br>'+top_small(1)+'<br><br></div>');
}

function SearchPanel()
{
    d.write('<div id="searchPanel">');
    d.write('<div id="sCont">');
    d.write('<div id="sButton"><a href="#"><img src="/images/sbutton.gif" width="34" height="21" border="0"></a></div>');
    d.write('<div id="sForm"><input type="text" value="Поиск" name="s"></div>');
    d.write('<div id="sbg"><img src="/images/search.png" width="212" height="44" border="0"></div>');
    d.write('</div>');
    d.write('</div>');
}

function Nickname(nick,level,sign,ali,invis,mode)
{
    var nick_s = (nick ? sh_sign_s(sign)+'<B>'+(!mode ? nick : '<a href="javascript: FSay(\''+nick+'\');" class=anick>'+nick+'</a>')+'</B> ['+level+']&nbsp;<a href="#"><img src="/images/ico_info.gif" width="9" height="9" border="0"></a>' : '');
    return (!invis ? nick_s : '<B><I>невидимка</I></B>'+(!nick_s ? '' : ' ('+nick_s+')'));
}

function sh_sign_s(sign)
{
    if(sign && sign!='0') return '<img src="http://www.unit-online.ru/img/icon/clan'+sign+'.png" width=16 height=12 border=0>&nbsp;';
    else return '';
}

function AuthWin(mode)
{
    if(!detect)
    {
        if(tb_detectMacXFF()) d.getElementById("darker").className = "TB_overlayMacFFBGHack";
        else d.getElementById("darker").className = "TB_overlayBG";
    }
    d.getElementById("darker").style.display = (mode == 1 ? "block" : "none");
    d.getElementById("enterBlock").style.display = (mode == 1 ? "block" : "none");
}

function tb_detectMacXFF() 
{
    detect = 1;
    var userAgent = navigator.userAgent.toLowerCase();
    if(userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) 
    {
        return true;
    }
}

function PageLinks(allt,tid)
{
    var allp = Math.ceil(allt/20);
    var j = 0;
    var r = '';
    if(fmain[2] || tid) 
    {
        var temp = fmain[2] ? fmain[2] : tid; 
        for(j = 1; j<=allp; j++) r += ' <a href="/'+fmain[0]+'/'+fmain[1]+'/'+temp+'/'+j+'/">'+(j != fmain[3] ? j : (fmain[2] ? '<B>'+j+'</B>' : j))+'</a>';
    }
    else 
    {
        for(j = 1; j<=allp; j++) r += ' <a href="/'+fmain[0]+'/'+j+'/">'+(j != fmain[1] ? j : '<B>'+j+'</B>')+'</a>';
    }
    return r;
}

function ForumAct()
{
    var r = '';
    if(fmain[4] & 65536) r += '<td><a href="/action/?act=10">Создать категорию</a></td><td align="center"><img src="http://forum.unit-online.ru/images/design/_dot.gif" width="11" height="11"></td>';
    if(fmain[4] & 32768) r += '<td><a href="/action/?act=9">Создать форум</a></td><td align="center"><img src="http://forum.unit-online.ru/images/design/_dot.gif" width="11" height="11"></td>';
    return r;
}

function TopicAct(id,cl,mode)
{
    var r = '';
    if(fmain[4] & 32) r += '[ <a href="/action/?act=2&f='+fmain[0]+'&p='+fmain[1]+'&id='+id+'&tp='+fmain[3]+'&m='+mode+'" class="fact">'+(!cl ? 'Закрыть тему' : 'Открыть тему')+'</a> ] ';
    if(fmain[4] & 64) r += '[ <a href="/action/?act=3&f='+fmain[0]+'&p='+fmain[1]+'&id='+id+'&tp='+fmain[3]+'&m='+mode+'" class="fact">Переместить тему</a> ] ';
    if(fmain[4] & 128) r += '[ <a href="/action/?act=4&f='+fmain[0]+'&p='+fmain[1]+'&id='+id+'&tp='+fmain[3]+'&m='+mode+'" class="fact">Удалить тему</a> ] ';
    if(fmain[4] & 256) r += '[ <a href="/action/?act=5&f='+fmain[0]+'&p='+fmain[1]+'&id='+id+'&tp='+fmain[3]+'&m='+mode+'" class="fact">Изменить тему</a> ]';
    if(r) return (!mode ? '<br>'+r : '<br><p>'+r+'</p>');
    else return '';
}

function ReplyAct(del,rid)
{
    var r = '';
    if(fmain[4] & 2048) r += '[ <a href="/action/?act=6&f='+fmain[0]+'&p='+fmain[1]+'&id='+fmain[2]+'&tp='+fmain[3]+'&rid='+rid+'" class="fact">'+(!del ? 'Скрыть сообщение' : 'Открыть сообщение')+'</a> ] ';
    if(fmain[4] & 4096) r += '[ <a href="/action/?act=7&f='+fmain[0]+'&p='+fmain[1]+'&id='+fmain[2]+'&tp='+fmain[3]+'&rid='+rid+'" class="fact">Удалить сообщение</a> ] ';
    if(fmain[4] & 8192) r += '[ <a href="/action/?act=8&f='+fmain[0]+'&p='+fmain[1]+'&id='+fmain[2]+'&tp='+fmain[3]+'&rid='+rid+'" class="fact">Изменить сообщение</a> ]';
    if(r) return '<br><p>'+r+'</p>';
    else return '';
}

function ForumPath2()
{
    return '<a href="/"><img src="/images/title/'+categ[fdata[0]][0]+'.png" width="'+categ[fdata[0]][1]+'" height="25" border="0"></a><a href="/'+fmain[0]+'/'+fmain[1]+'/"><img src="/images/title/'+fname[fmain[0]][0]+'.png" width="'+fname[fmain[0]][1]+'" height="25" border="0"></a>';
}

function ForumPath()
{
    return '<a href="/"><font class=fTitle>'+fdata[1]+'</font></a><font class=fTitle> / </font><a href="/'+fmain[0]+'/'+fmain[1]+'/"><font class=fTitle>'+fdata[2]+'</font></a>';
}

function ObjLink(ObjID)
{
    fobj = d.getElementById(ObjID);
    if(fobj)
    {
        fobj.focus();
        return 1;
    }
    else return 0;
}

function FSay(nick)
{
    if(ObjLink('MESSAGE')) 
    {
        InsertText('для [B]' + nick + '[/B]: \n');
    }
}

function InsertSmile(smcode)
{
    if(ObjLink('MESSAGE')) 
    {
        InsertText(':' + smcode + ':');
        HideSmiles();
    }
}

function ClearTime()
{
    if(time) clearTimeout(time);
}

function CloseSmiles() 
{
    time = setTimeout("HideSmiles()",500);
}

function ShowSmiles() 
{
    d.getElementById('SMILES').style.display = 'block';
    if(!smiles_table) smiles_table = GenerateSmiles();
    d.getElementById('SMILES').innerHTML = '<table cellspacing=0 cellpadding=0 border=0 width=100%><tr><td>'+smiles_table+'</td></tr></table>';
    ClearTime();
}

function HideSmiles() 
{
    d.getElementById('SMILES').style.display = 'none';
}

function GenerateSmiles()
{
    var k,m,smtemp = '';
    for(k=0; k<smiles.length; k++)
    {
        if(fmain[5] & (Math.pow(2,k)))
        {
            for(m=0; m<smiles[k].length; m++) smtemp += '<img src=http://forum.unit-online.ru/images/smiles/'+smiles[k][m][0]+'.gif width='+smiles[k][m][1]+' height='+smiles[k][m][2]+' border=0 align=absmiddle onClick="InsertSmile(\''+smiles[k][m][0]+'\');" class=hand> ';
        }
    }
    return smtemp;
}

function Unlock(DisabledTime)
{
    d.getElementById('SUBBUT').disabled = true;
    timef = setTimeout("UnlockButton()",(1000*DisabledTime));
}

function UnlockButton()
{
    d.getElementById('SUBBUT').disabled = false;
    clearTimeout(timef);
}

function translate()
{
    var obj_titl = d.getElementById('MTITLE');
    var obj_mess = d.getElementById('MESSAGE');
    obj_titl.value = trans(obj_titl.value);
    obj_mess.value = trans(obj_mess.value);
}

function convert(str)
{
    var m;
    for(m=0; m<map_en.length; m++)
    {
        while(str.indexOf(map_en[m]) >= 0) str = str.replace(map_en[m],map_ru[m]);
    }
    return str;
}

function trans(txt)
{
    var strarr = txt.split(' ');
    var reg = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
    var m;

    for(m=0; m<strarr.length; m++)
    {
        if(!reg.test(strarr[m]) && strarr[m].indexOf("Re:") < 0 && strarr[m].indexOf("unit-online.ru") < 0) strarr[m] = convert(strarr[m]);
    }
    return strarr.join(' ');
}

function Init()
{
    if(this.isIE && typeof(baseHeight) != 'number')
    {
        if(fobj = d.getElementById('MESSAGE')) 
        {
            baseHeight = d.selection.createRange().duplicate().boundingHeight;
            d.body.focus();
        }
    }
}

function BBTags(TagID)
{
      theSelection = false;
      if(ObjLink('MESSAGE'))
      {
	    if((this.versionMajor >= 4) && this.isIE)
	    {
	          theSelection = d.selection.createRange().text;
		  if(theSelection)
		  {
		        d.selection.createRange().text = Tag[TagID][0] + theSelection + Tag[TagID][1];	
		  	
		  	var caret_pos = getCaretPosition(fobj).end + theSelection.length + Tag[TagID][0].length + Tag[TagID][1].length;
		  	var range = fobj.createTextRange(); 
       		  	range.move("character",caret_pos); 
		  	range.select();
	    		fobj.focus();
	    		
			theSelection = '';
			return;
                  }
	    }
	    else if(fobj.selectionEnd && (fobj.selectionEnd - fobj.selectionStart > 0))
	    {
		  Wrap(fobj,Tag[TagID][0],Tag[TagID][1]);
     		  fobj.focus();
     		  theSelection = '';
     		  return;
            }
            
            var caret_pos = getCaretPosition(fobj).sta;
	    var new_pos = caret_pos + Tag[TagID][0].length;		
	    
	    InsertText(Tag[TagID][0] + Tag[TagID][1]);

	    if(!isNaN(fobj.selectionStart)) fobj.setSelectionRange(new_pos,new_pos);
	    else if(d.selection)
	    {
	          var range = fobj.createTextRange();
       		  range.move("character",new_pos); 
		  range.select();
		  storeCaret(fobj);
            }
	    fobj.focus();
	    return;
      }
}

function InsertText(str)
{
      if(!isNaN(fobj.selectionStart))
      {
	    var sel_start = fobj.selectionStart;
	    var sel_end = fobj.selectionEnd;
	    Wrap(fobj,str,'');
	    fobj.selectionStart = sel_start + str.length;
	    fobj.selectionEnd = sel_end + str.length;
      }	
      else if(fobj.createTextRange && fobj.caretPos)
      {
	    if(baseHeight != fobj.caretPos.boundingHeight) 
	    {
	          fobj.focus();
		  storeCaret(fobj);
            }		
	    var caret_pos = fobj.caretPos;
	    caret_pos.text = (caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? (caret_pos.text + str + ' ') : (caret_pos.text + str));
      }
      else fobj.value += str;
      fobj.focus();
}

function Wrap(tobj,o,c)
{
      var selLength = tobj.textLength;
      var selStart = tobj.selectionStart;
      var selEnd = tobj.selectionEnd;
      var scrollTop = tobj.scrollTop;

      if(selEnd == 1 || selEnd == 2) selEnd = selLength;

      var s1 = (tobj.value).substring(0,selStart);
      var s2 = (tobj.value).substring(selStart,selEnd)
      var s3 = (tobj.value).substring(selEnd,selLength);

      tobj.value = s1 + o + s2 + c + s3;
      tobj.selectionStart = selEnd + o.length + c.length;
      tobj.selectionEnd = tobj.selectionStart;
      tobj.focus();
      tobj.scrollTop = scrollTop;
      return;
}

function storeCaret(tobj)
{
      if(tobj.createTextRange) tobj.caretPos = d.selection.createRange().duplicate();
}

function caretPosition()
{
      var sta = null;
      var end = null;
}

function getCaretPosition(tobj)
{
      var caretPos = new caretPosition();
      if(tobj.selectionStart || tobj.selectionStart == 0)
      {
            caretPos.sta = tobj.selectionStart;
	    caretPos.end = tobj.selectionEnd;
      }
      else if(d.selection)
      {
	    var range = d.selection.createRange();
	    var range_all = d.body.createTextRange();
	    range_all.moveToElementText(tobj);
	    var sel_start;
	    for(sel_start = 0; range_all.compareEndPoints('StartToStart',range) < 0; sel_start++) range_all.moveStart('character',1);
	    tobj.sel_start = sel_start;
	    caretPos.sta = tobj.sel_start;
	    caretPos.end = tobj.sel_start;	    	
      }
      return caretPos;
}

