﻿
var maxSmileCount = 20;
var SpecAttrName = "smileName";
var smiles_CodePreffix = "|_SMILE_IMG_";
var smiles_CodePostfix = "|";
var smiles_SpecAttrName = "smileName";
var Current_UserName = "";

var AttachControlStatus = (Current_UserName.length == 0) ? "disabled='false'" : "";

var URL_Constructor = new Function("msgId", "Page", "return ('/analytics/forum/' + msgId + '/' + Page + '/15/')");
var URL_Constructor_mode0 = new Function("msgId", "Page", "return ('/analytics/forum/' + msgId + '/' + Page + '/0/')");
var URL_Constructor_add = new Function("base_ref", "t_mode", "m_mode", "o_mode", "return (base_ref + (((t_mode>0)||(m_mode>0)||(o_mode>0))?(t_mode + '/'):'') + (((m_mode>0)||(o_mode>0))?(m_mode + '/'):'') + ((o_mode>0)?(o_mode + '/'):''))");
var URL_Constructor_add_strong = new Function("base_ref", "t_mode", "m_mode", "o_mode", "return (base_ref + (t_mode + '/') + (m_mode + '/') + (o_mode + '/'))");
function EMdecodeNew(EMtext,AutorStr) {
    var res = "";
    var resOut = "";
    var j;
   
    for (i = 0; i < EMtext.length; i += 3) {
        if ((i + 2) < EMtext.length)
            for (j = (i + 1); j < (i + 3); j++) {
            res += EMtext.substr(j, 1);
        }
        res += EMtext.substr(i, 1);
    }
    j = j + 1;
    for (; j < EMtext.length; j++) {
        res += EMtext.substr(j, 1);
    }
    
    resOut = res.replace("#", "@");
   //<script language=javascript>document.write('<a href=mai" + "lto:EMdecode("+res2+");>" + AuthorStr + "</a>');</script>
    return '<a href=mailto:' + resOut + ' >' + AutorStr + '</a>';
    //return resOut;
    
}
function CreatePager(curPage, maxPage) {

    document.getElementById("PageToolBarObj").setAttribute("page_num", curPage);

    var begin_page = parseInt(curPage / 10);
    if ((begin_page > 0) && ((curPage % 10) == 0))
        begin_page--;
    begin_page = (begin_page * 10) + 1;

    var tmp_str = "<span class=grey>Страница:</span>";

    if (begin_page > 1)
        tmp_str += " <a href='" + URL_Constructor(0, begin_page - 1) + "' onclick=\"return HrefPagerClick(this.href);\">...</a>";

    var i = 0;

    for (i = 0; ((i < 10) && ((begin_page + i) <= maxPage)); i++) {
        if (((begin_page + i) == curPage))
            tmp_str += " <span>" + curPage + "</span>";
        else
            tmp_str += " <a href='" + URL_Constructor(0, begin_page + i) + "' onclick=\"return HrefPagerClick(this.href);\">" + (begin_page + i) + "</a>";
    }

    if ((begin_page + 9) < maxPage)
        tmp_str += " <a href='" + URL_Constructor(0, begin_page + 10) + "' onclick=\"return HrefPagerClick(this.href);\">...</a>";

    var pag_tag = document.getElementById("ForumIndex1_TopPager");
    pag_tag.innerHTML = tmp_str;

    document.getElementById("ForumIndex1_Pager").innerHTML = pag_tag.innerHTML;
}

function ProcessRootData(dest_tag_id, data, isLin, isRoot, curPage, maxPage) {

    CreatePager(curPage, maxPage);
    var dest_tag = document.getElementById(dest_tag_id);

    if (dest_tag.hasChildNodes() == true) {
        i = dest_tag.firstChild;
        var is_exit = false;
        while (is_exit != true) {
            if (i.id == 'ChildN') {
                dest_tag.removeChild(i);
                is_exit = true;
            }


            if (i == dest_tag.lastChild)
                is_exit = true;
            else
                i = i.nextSibling;
        }
    }

    ProcessLoadedData(dest_tag_id, data, isLin, isRoot);
}

function ProcessLoadedData(dest_tag_id, data, isLin, isRoot) {

    var text = "<DIV id='ChildN'";
    var dest_tag = document.getElementById(dest_tag_id);
    var i;

    if ((isLin == 1) && (isRoot != 1))
        text += " class='message-content' style='display:block'";

    if (data.length == 0)
        text += " style='display:none'";
    text += ">";

    if (dest_tag == null) {

        document.getElementById("WaitingRootBox").style.display = "none";
        return;
    }

    if (dest_tag.hasChildNodes() == true) {
        i = dest_tag.firstChild;
        var is_exit = false;
        while (is_exit != true) {
            if (i.id == 'ChildN') {
                document.getElementById("WaitingRootBox").style.display = "none";
                return;
            }


            if (i == dest_tag.lastChild)
                is_exit = true;
            else
                i = i.nextSibling;
        }
    }

    var author_ref = "";

    for (i = 0; i < data.length; i++) {
        author_ref = "";

        if (data[i][6].length > 0) {
            author_ref = "<a href=mai" + "lto:" + EMdecode(eval(data[i][6])).replace("#", "@") + " title='Написать автору'" + ">" + data[i][5] + "</a>";
        }
        else {
            author_ref = data[i][5];
        }

        author_ref += data[i][3];

        if (isLin == 1)
            text += ("<div id='m_" + data[i][0] + "'><p class='caption'><span></span><span></span><b>" + data[i][2] + "</b> (<span class='time'>" + author_ref + ((data[i][4].length > 0) ? (" [" + data[i][4] + "]") : "") + "</span>)</p></div>");
        else
            text += ("<div class='message' id='m_" + data[i][0] + "'><p class='caption'><a class='expand' href='" + URL_Constructor(data[i][0], 0) + "' onclick=\"return HrefClick(this,0,0);\"><span id='StN'>+</span></a><a href='' onmouseover=\"this.firstChild.src='/Images/tb/toolbar-mouse.gif';\" onmouseout=\"this.firstChild.src='/Images/tb/toolbar.gif';\" onclick=\"return openToolBar(this," + data[i][0] + ");\"><img src='/Images/tb/toolbar.gif' alt='Панель управления' border='0' height='18' width='18'/></a> <a class='expand' href='" + URL_Constructor(data[i][0], 0) + "' onclick='return HrefClickAll2(this);'>" + data[i][2] + "</a> (<span class='time'>" + author_ref + ((data[i][4].length > 0) ? (" [" + data[i][4] + "]") : "") + "</span>)</p></div>");
    }
    text += "</DIV>";
    dest_tag.innerHTML += text;

    document.getElementById("WaitingRootBox").style.display = "none";
}

function ProcessLoadedText(dest_tag_id, data, attachments, useStN) {

    var text = "";
    var dest_tag = document.getElementById(dest_tag_id);
    var i;
    var ChNode;
    var hasCh = false;

    if (dest_tag == null) {

        document.getElementById("WaitingRootBox").style.display = "none";
        return;
    }

    if (dest_tag.hasChildNodes() == true) {
        i = dest_tag.firstChild;
        var is_exit = false;
        while (is_exit != true) {
            if (i.id == 'MsgN') {
                document.getElementById("WaitingRootBox").style.display = "none";
                return;
            }

            if (i.id == 'ChildN') {
                ChNode = i;
                hasCh = true;
            }


            if (i == dest_tag.lastChild)
                is_exit = true;
            else
                i = i.nextSibling;
        }
    }

    text += ("<p class='text'>" + data + "</p>");
    if (attachments != null)
        if (attachments.length > 0) {
        text += "<div class='attachments'><ul class='files'>";

        for (i = 0; i < attachments.length; i++) {
            text += ("<li class='" + attachments[i][4] + "'><a href='/getforumfile.aspx?folderId=18&msgId=" + dest_tag_id.substring(2) + "&id=" + attachments[i][0] + "' title='" + attachments[i][5] + "'>" + attachments[i][5] + "</a> (" + attachments[i][4] + ",&nbsp;" + attachments[i][3] + ")</li>");
        }
        text += "</ul></div>";
    }


    var tmp_str_repl = "<span>Ответить</span>";


    text += ("<div class='re'>" + tmp_str_repl + writeForm3(dest_tag_id, 0, Current_UserName, 1) + "</div>");

    if (hasCh == true) {
        var new_node = document.createElement("div");
        new_node.id = "MsgN";
        new_node.style.display = "block";
        new_node.innerHTML = text;
        dest_tag.insertBefore(new_node, ChNode);
    }
    else {
        dest_tag.innerHTML += ("<DIV id='MsgN' class='message-content' style='display:block'>" + text + "</div>");
    }

    AddInputFileControl(dest_tag_id, 1);

    if (useStN == 1)
        if (dest_tag.firstChild.firstChild.firstChild.id == 'StN')
        dest_tag.firstChild.firstChild.firstChild.innerHTML = '-';

    document.getElementById("WaitingRootBox").style.display = "none";
}


function HrefClick(cl_obj, t_mode, m_mode) {


    document.getElementById("WaitingRootBox").style.display = "inline";
    closeToolBar();
    var parent_div_tag = cl_obj.parentNode.parentNode;
    var hasM = false;
    var hasCh = false;
    var i;

    if (parent_div_tag.hasChildNodes() == true) {
        i = parent_div_tag.firstChild;
        var is_exit = false;
        while (is_exit != true) {
            if (i.id == 'MsgN') {

                i.style.display = ((i.style.display == 'block') ? 'none' : 'block');
                if (cl_obj.firstChild.id == 'StN')
                    cl_obj.firstChild.innerHTML = ((i.style.display == 'block') ? '-' : '+');
                hasM = true;
            }
            if (i.id == 'ChildN')
                hasCh = true;


            if (i == parent_div_tag.lastChild)
                is_exit = true;
            else
                i = i.nextSibling;
        }
    }

    if ((hasM != true) || (hasCh != true)) {

        window.frames['FrameForLoadData'].window.location.replace(URL_Constructor_add(cl_obj.href, t_mode, m_mode, 0));
    }
    else {
        document.getElementById("WaitingRootBox").style.display = "none";
    }
    return false;
}

function RefreshNode(cl_obj) {


    closeToolBar();
    ClearChilds(cl_obj);
    HrefClick(cl_obj, 3, 0);
    return false;
}

function HrefClickAll2(cl_obj) {

    document.getElementById("WaitingRootBox").style.display = "inline";
    var hasM = false;
    var hasCh = false;

    var ChVisible = ReverseChildVisible(cl_obj.parentNode.firstChild, 'ChildN', -1);
    var MVisible = ReverseChildVisible(cl_obj.parentNode.firstChild, 'MsgN', (ChVisible == "block") ? -1 : 0);


    if (cl_obj.parentNode.firstChild.firstChild.id == 'StN')
        cl_obj.parentNode.firstChild.firstChild.innerHTML = ((MVisible == 'block') ? '-' : '+');

    if (MVisible != "")
        hasM = true;

    if (ChVisible != "")
        hasCh = true;

    if ((hasM != true) || (hasCh != true)) {

        window.frames['FrameForLoadData'].window.location.replace(cl_obj.href);
    }
    else {
        document.getElementById("WaitingRootBox").style.display = "none";
    }

    return false;
}

function HrefPagerClick(href_for_new_page) {
    document.getElementById("WaitingRootBox").style.display = "inline";
    closeToolBar();

    window.frames['FrameForLoadData'].window.location.replace(href_for_new_page);
    return false;
}

function ReverseChildVisible(cl_obj, ChildId, NewStatus) {


    var next_node = cl_obj.parentNode.nextSibling;
    var del_node;
    var parent_node = cl_obj.parentNode.parentNode;
    var result = "";

    var is_exit = false;
    while (is_exit != true) {
        if (next_node != null) {
            if (next_node == parent_node.lastChild) {
                is_exit = true;
            }
            if (next_node.id == ChildId) {
                if (next_node.style.display == '')
                    next_node.style.display = 'block';

                if (next_node.hasChildNodes() == true) {
                    switch (NewStatus) {
                        case -2:

                            break;
                        case -1:
                            next_node.style.display = ((next_node.style.display == 'block') ? 'none' : 'block');
                            break;
                        case 0:
                            next_node.style.display = 'none';
                            break;
                        case 1:
                            next_node.style.display = 'block';
                            break;
                    }
                    result = next_node.style.display;
                }
                else {
                    switch (NewStatus) {
                        case -2:
                            result = next_node.style.display;
                            break;
                        case -1:
                            result = ((next_node.style.display == 'block') ? 'none' : 'block');
                            break;
                        case 0:
                            result = 'none';
                            break;
                        case 1:
                            result = 'block';
                            break;
                    }
                }
                is_exit = true;
            }
            next_node = next_node.nextSibling;
        }
        else {
            is_exit = true;
        }
    }
    return result;
}

function ClearChilds(cl_obj) {

    var next_node = cl_obj.parentNode.nextSibling;
    var del_node;
    var parent_node = cl_obj.parentNode.parentNode;

    var is_exit = false;
    while (is_exit != true) {
        if (next_node != null) {
            if (next_node == parent_node.lastChild) {
                is_exit = true;
            }
            del_node = next_node;
            next_node = next_node.nextSibling;
            parent_node.removeChild(del_node);
        }
        else {
            is_exit = true;
        }
    }
}


function openToolBar(cl_obj, msgId) {
    var ToolBarObj = document.getElementById("ToolBarObj");
    var parent_node = ToolBarObj;
    var next_node = parent_node.firstChild;

    var is_exit = false;
    while (is_exit != true) {
        if (next_node != null) {
            if (next_node == parent_node.lastChild) {
                is_exit = true;
            }
            if (next_node.nodeName == "A")
                next_node.setAttribute("MsgId", msgId);
            next_node = next_node.nextSibling;
        }
        else {
            is_exit = true;
        }
    }

    ToolBarObj.style.left = relObjLeft(cl_obj);
    ToolBarObj.style.top = relObjTop(cl_obj);
    ToolBarObj.style.visibility = "visible";
    return false;
}

function openToolBar2() {
    document.getElementById("ToolBarObj").style.visibility = "visible";
}

function closeToolBar() {
    document.getElementById("ToolBarObj").style.visibility = "hidden";
}

function relObjLeft(cl_obj) {
    var pos = cl_obj.offsetLeft;
    while (cl_obj.offsetParent != null) {
        cl_obj = cl_obj.offsetParent;
        pos += cl_obj.offsetLeft;
        if (cl_obj.tagName == 'BODY')
            break;
    }
    return pos + 'px';
}
function relObjTop(cl_obj) {
    var pos = cl_obj.offsetTop;
    while (cl_obj.offsetParent != null) {
        cl_obj = cl_obj.offsetParent;
        pos += cl_obj.offsetTop;
        if (cl_obj.tagName == 'BODY')
            break;
    }
    return pos + 'px';
}

function ToolBarEvent(this_obj, ctrl_id) {
    document.getElementById("WaitingRootBox").style.display = "inline";
    closeToolBar();


    var msgId = this_obj.getAttribute("MsgId");
    var Msg_tag = document.getElementById("m_" + msgId);

    switch (ctrl_id) {
        case 1:

            ClearChilds(Msg_tag.firstChild.firstChild);
            HrefClick(Msg_tag.firstChild.firstChild, 3, 0);
            break;
        case 2:

            ClearChilds(Msg_tag.firstChild.firstChild);
            HrefClick(Msg_tag.firstChild.firstChild, 3, 3);
            break;
        case 3:

            ClearChilds(Msg_tag.firstChild.firstChild);
            HrefClick(Msg_tag.firstChild.firstChild, 0, 6);
            break;
        case 4:

            ClearChilds(Msg_tag.firstChild.firstChild);
            RefreshNode(Msg_tag.firstChild.firstChild);
            break;
        case 5:

            break;
        case 6:

            break;
    }

    return false;
}

function RootToolBarEvent(ctrl_id) {

    document.getElementById("WaitingRootBox").style.display = "inline";
    var parent_node = document.getElementById("PageToolBarObj");
    var page_num = parent_node.getAttribute("page_num");
    var sort1_val = parent_node.getAttribute("sort1_val");
    var sort2_val = parent_node.getAttribute("sort2_val");

    var ref_to = URL_Constructor(-1, page_num);

    var tmp_obj;

    switch (ctrl_id) {
        case 1:

            ref_to = URL_Constructor_add(ref_to, 3, 0, 0);
            break;
        case 2:

            ref_to = URL_Constructor_add(ref_to, 3, 3, 0);
            break;
        case 3:

            ref_to = URL_Constructor_add(ref_to, 0, 6, 0);
            break;
        case 4:

            break;
        case 5:

            if (sort1_val == 0) {
                ref_to = URL_Constructor_add_strong(ref_to, 3, 0, 1);
                document.getElementById("PageToolBarObj").setAttribute("sort1_val", 1);
                setCookie("ForumRootSort", "1");

                tmp_obj = document.getElementById("sort1_control");

                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-first-ascend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-first-ascend-blocked.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-first-ascend-blocked.gif";
            }
            else {
                ref_to = URL_Constructor_add_strong(ref_to, 3, 0, 0);
                document.getElementById("PageToolBarObj").setAttribute("sort1_val", 0);
                setCookie("ForumRootSort", "0");

                tmp_obj = document.getElementById("sort1_control");

                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-first-descend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-first-descend-blocked.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-first-descend-blocked.gif";
            }


            tmp_obj = document.getElementById("sort2_control");
            if (sort2_val == 2) {
                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-last-descend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-last-descend.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-last-descend.gif";
            }
            else {
                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-last-ascend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-last-ascend.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-last-ascend.gif";
            }

            break;
        case 6:

            if (sort2_val == 2) {
                ref_to = URL_Constructor_add_strong(ref_to, 3, 0, 3);
                document.getElementById("PageToolBarObj").setAttribute("sort2_val", 3);
                setCookie("ForumRootSort", "3");

                tmp_obj = document.getElementById("sort2_control");

                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-last-ascend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-last-ascend-blocked.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-last-ascend-blocked.gif";
            }
            else {
                ref_to = URL_Constructor_add_strong(ref_to, 3, 0, 2);
                document.getElementById("PageToolBarObj").setAttribute("sort2_val", 2);
                setCookie("ForumRootSort", "2");

                tmp_obj = document.getElementById("sort2_control");

                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-last-descend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-last-descend-blocked.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-last-descend-blocked.gif";
            }


            tmp_obj = document.getElementById("sort1_control");
            if (sort1_val == 0) {
                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-first-descend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-first-descend.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-first-descend.gif";
            }
            else {
                tmp_obj.onmouseover = new Function("this.firstChild.src='/Images/tb/sort-first-ascend-mouse.gif';");
                tmp_obj.onmouseout = new Function("this.firstChild.src='/Images/tb/sort-first-ascend.gif';");
                tmp_obj.firstChild.src = "/Images/tb/sort-first-ascend.gif";
            }

            break;
    }

    window.frames['FrameForLoadData'].window.location.replace(ref_to);

    return false;
}

function ShowToolbar(elm, divShow, oper) {
   
    var el = document.getElementById(elm);  
    var d = document.getElementById(divShow);
    d.style.display = oper;
    d.style.top = el.style.top;
    d.style.left = el.style.left;
    return false;
}
function ProcessTransfer(url, el, isNiceUrl, ddl) {

    var s = document.getElementById(el);
    var f = document.getElementById(ddl);
    var v = f.value+'.'+s.value;
    if (v.length != 0) {
        if (confirm('Вы уверены?')) {
            if (isNiceUrl == 1) {
                v = v + '/';
            }
            document.location.href = url + v;
        }
    }
    else {
        alert('Пожалуйста введите идентификатор новой ветки.');
    }
}
function processForm(slk) {


    elMes = document.getElementById('author' + slk);
    elBody = document.getElementById('message' + slk);
    elHeader = document.getElementById('title' + slk);
    elPNAME = document.getElementById('PNAME');
    if (elMes.value == "") { alert("Отсутствует автор сообщения"); return false; }
    if (elHeader.value.replace(/^\s+|\s+$/g, '').length == 0) { alert("Отсутствует тема сообщения"); return false; }
    if (elBody.value == "") { alert("Отсутствует текст сообщения"); return false; }
    if (elBody.length > 5000) { alert("Длина сообщения должна быть меньше 5000 символов"); return false; }
    if (elHeader.length > 100) { alert("Длина заголовка должна быть меньше 100 символов"); return false; }
    elPNAME.value = slk;
    return true;
}

function writeForm(parent, ticker, UserName, IsAnswer) {
    //var enField;
    //if(UserName.length >2)
    //	{
    var enField = 'readonly="readonly"';
    //}
    document.write('<div id=\"d_'+parent+'"\" class="form"><table class="ReForm">' +
		'<tr><td><label for="author" class="mandatory">Автор:</label></td><td><input type="text" class="text"  maxlength="20" name="author' + parent + '" ' + enField + ' value=' + UserName + '" id="author' + parent + '" /></td></tr>' +
		'<tr><td><label for="title" class="mandatory">Тема:</label></td><td><input type="text" class="text" maxlength="150" name="title' + parent + '" id="title' + parent + '" value="" /></td></tr>' +
		'<tr>' + writeFormToolBar(parent, IsAnswer) + '</tr>' +
		'<tr><td><label for="message" class="mandatory">Сообщение:</label></td><td><textarea name="message' + parent + '"  id="message' + parent + '" rows="7" cols="20"></textarea></td></tr>' +
		'<tr><td>&nbsp;<input type="hidden" name="tid' + parent + '" id="tid' + parent + '" value=' + ticker + '></td><td><input type="submit" class="submit long" value="Отправить" onClick="return processForm(' + parent + ')"; /></td></tr>' +
		'</table></div>');
}

function writeFormBeforeNode(ch_obj_id, ticker, UserName, IsAnswer, isAnonim, isModerator, Header, AuthorId) {
    
    var ch_obj = document.getElementById(ch_obj_id);
    var new_node = document.createElement("div");
    new_node.className = "form";
    new_node.style.display = "none";
    new_node.innerHTML = writeForm3(ch_obj_id, ticker, UserName, IsAnswer, isAnonim, isModerator, Header, AuthorId);

    ch_obj.parentNode.insertBefore(new_node, ch_obj);

    AddInputFileControl(ch_obj_id, 1);
}

function writeForm3(parent, ticker, UserName, IsAnswer, isAnonim, isModerator, AnsHeader,AuthorId) {

    //var enField;
    //if(UserName.length >2)
    //	{
    AttachControlStatus = (isAnonim == 1) ? "disabled='false'" : "";
    var modstr = '';
    var mDis = 'disabled';
    if (isModerator > 0) {
        mDis = '';
    }
    
    
    if(isModerator==1)
		{
		   modstr= '<tr><td></td><td colspan=\'2\'><input type="checkbox" class="mandatory" name="hot' + parent + '" id="hot' + parent + '"  />горячее сообщение</td></tr>';
		  
		}
		var enField = 'readonly="readonly"';
		var fstr = '';
		
		if (isAnonim == 0) {
		    fstr = '<tr><td><label for="message" class="mandatory">Приложения:</label></td><td  colspan=\'2\'><span id="FileList' + parent + '"></span>&nbsp;' +
		'<input type="button" ' + AttachControlStatus + ' name="attach" value="Прикрепить" class="btn_attach_file" onClick="return PrepareFile(\'' + parent + '\');">' +
		'<div id="HidFileList' + parent + '" style="display:none; width:0px; height:0px"></div></td></tr>' +
		'<tr><td></td><td  colspan=\'2\'><table width="100%"><tbody id="FileLink' + parent + '"></tbody></table></td></tr>';
		}
    //	}
    var tmp_str = '<br/><table class="ReForm">' +
		'<tr><td><label for="author" class="mandatory">Автор:</label></td><td><input  type="text"  class="author" '+ mDis +'  maxlength="20" name="author' + parent + '"  value="' + UserName + '" id="author' + parent + '" /></td>' +
		'<td align=\'center\'><a href=\'\' onClick=\' return HideForm('+IsAnswer+',this,'+ticker+');\' ><img src=\'/images2/icon-close.gif\' alt=\'Закрыть\' width=13 heigth=13></a></td></tr>' +
		'<tr><td><label for="title" class="mandatory">Тема:</label></td><td colspan=\'2\'><input type="text" class="text" maxlength="120" name="title' + parent + '" id="title' + parent + '" value="' + AnsHeader + '" /></td></tr>' +
		'<tr>' + writeFormToolBar(parent, IsAnswer) + '</tr>' + modstr+

		'<tr><td valign=\'top\'><label for="message" class="mandatory">Сообщение:</label><br/><br/><br/>' + writeQuote(parent, IsAnswer) + '</td><td  colspan=\'2\'><textarea name="message' + parent + '"  id="message' + parent + '" rows="7" cols="20"></textarea></td></tr>' + fstr+
		
		//'<tr><td><label for="message" class="mandatory">Приложения:</label></td><td  colspan=\'2\'><span id="FileList' + parent + '"></span>&nbsp;' +
		//'<input type="button" ' + AttachControlStatus + ' name="attach" value="Прикрепить" class="btn_attach_file" onClick="return PrepareFile(\'' + parent + '\');">' +
		//'<div id="HidFileList' + parent + '" style="display:none; width:0px; height:0px"></div></td></tr>' +
		//'<tr><td></td><td  colspan=\'2\'><table width="100%"><tbody id="FileLink' + parent + '"></tbody></table></td></tr>' +

		'<tr><td>&nbsp;<input type="hidden" name="tid' + parent + '" id="tid' + parent + '" value=' + ticker + '>' +
		'<input type="hidden" name="Autorid' + parent + '" id="Autorid' + parent + '" value=' + AuthorId + '>' +
		'<input type="hidden" name="f_cout' + parent + '" id="f_cout' + parent + '" value="0"></td><td  colspan=\'2\'><input type="submit" class="customSubmit" value="Отправить" onClick="return processForm(\'' + parent + '\')"; /></td></tr>' +
		'</table>';

    if (IsAnswer == 1)
        return '<div class="form">' + tmp_str + '</div>';
    else
        return tmp_str;
}

function AddInputFileControl(parent, cur_attach_num) {


    var real_files = document.getElementById('FileList' + parent);
    var empty_files = document.getElementById('HidFileList' + parent);

    var new_node;
    var new_node1;


    if ((navigator.appName == "Microsoft Internet Explorer") && (navigator.userAgent.toLowerCase().indexOf("opera") == -1)) {
        new_node = document.createElement("<input type='file' " + AttachControlStatus + " id='" + "File" + parent + "_" + cur_attach_num + "' name='" + "File" + parent + "_" + cur_attach_num + "' class='attach_file'>")
        new_node1 = document.createElement("<input type='file' " + AttachControlStatus + " id='" + "ForDelFile" + parent + "_" + cur_attach_num + "' name='" + "ForDelFile" + parent + "_" + cur_attach_num + "'>")
    }
    else {
        new_node = document.createElement("input");
        new_node.type = "file";
        new_node.id = 'File' + parent + '_' + cur_attach_num;
        new_node.name = 'File' + parent + '_' + cur_attach_num;
        new_node.className = "attach_file";
        if (AttachControlStatus.length > 0)
            new_node.disabled = 'true';

        new_node1 = document.createElement("input");
        new_node1.type = "file";
        new_node1.id = 'ForDelFile' + parent + '_' + cur_attach_num;
        new_node1.name = 'ForDelFile' + parent + '_' + cur_attach_num;
        if (AttachControlStatus.length > 0)
            new_node1.disabled = 'true';
    }

    real_files.appendChild(new_node);
    empty_files.appendChild(new_node1);
}

function PrepareFile(parent) {


    var f_counter = document.getElementById('f_cout' + parent);
    var cur_attach_num = (parseInt(f_counter.value) + 1);


    if (cur_attach_num > 50) {
        alert('Превышено максимальное количество приложений!');
        return;
    }

    var real_file = document.getElementById('File' + parent + '_' + cur_attach_num);
    var empty_f = document.getElementById('ForDelFile' + parent + '_' + cur_attach_num);

    var tmp_str = real_file.value;
    if (tmp_str.length == 0) {
        alert('Не задано имя файла!');
        return;
    }

    empty_f.parentNode.replaceChild(real_file, empty_f);

    AddInputFileControl(parent, cur_attach_num + 1);


    var link_f = document.getElementById('FileLink' + parent);

    new_node = document.createElement("tr");
    new_node.id = 'FileLink' + parent + '_' + cur_attach_num;

    var new_node1 = document.createElement("td");
    new_node1.width = "12px";
    new_node1.innerHTML = '<a href="" onClick="return DeleteFile(\'' + parent + '\', ' + cur_attach_num + ');" title="Удалить приложение"><img src="/images/icon-del.gif" alt="Удалить приложение"></a>';
    new_node.appendChild(new_node1);

    new_node1 = document.createElement("td");
    new_node1.innerHTML = tmp_str;
    new_node.appendChild(new_node1);

    link_f.appendChild(new_node);

    f_counter.value = cur_attach_num;
}

function DeleteFile(parent, cur_attach_num) {
    var obj_for_del = document.getElementById('File' + parent + '_' + cur_attach_num);
    obj_for_del.parentNode.removeChild(obj_for_del);
    obj_for_del = document.getElementById('FileLink' + parent + '_' + cur_attach_num);
    obj_for_del.parentNode.removeChild(obj_for_del);
    return false;
}
function writeQuote(parent, IsAnswer) {
    var cite_button_text = '&nbsp;';
    if (IsAnswer == 1)
        cite_button_text = '<p align="center" class="Quote"><input type="button" class="cite" onmouseover="this.style.background = \'url(/images/tb/quote.gif) no-repeat\';" onmouseout="this.style.background = \'url(/images/tb/quote.gif) no-repeat\';" style="background:url(/images/tb/quote.gif) no-repeat" valign="absmiddle" title="Скопировать в ответ текст исходного сообщения" onClick="return processCite(\'' + parent + '\')"; />&nbsp;<a href="" onClick="processCite(\'' + parent + '\');return false;";>Цитата</a></p>';

    return  cite_button_text;
}
function writeFormToolBar(parent, IsAnswer) {
    var cite_button_text = '&nbsp;';
    //if (IsAnswer == 1)
    //    cite_button_text = '<input type="button" class="cite" onmouseover="this.style.background = \'url(/images/tb/cite-mouse.gif) no-repeat\';" onmouseout="this.style.background = \'url(/images/tb/cite.gif) no-repeat\';" style="background:url(/images/tb/cite.gif) no-repeat" title="Скопировать в ответ текст исходного сообщения" value="" onClick="return processCite(\'' + parent + '\')"; />';

    return '<td align="center">' + cite_button_text + '</td>' +
        '<td colspan=\'2\'>' + writeSmilesElement(parent, 0) + '</td>';
}

function writeSmilesElement(parent, start_index) {
    var smilesString = "";

    var l_enable = "";
    var l_mouseover = "";
    var idx_st = start_index;
    if (idx_st < 0) {
        idx_st = 0;
        l_enable = "-blocked";
    }
    else {
        l_mouseover = 'onmouseover="this.style.background = \'url(/Images/tb/smiles-left-mouse.gif) no-repeat\';" onmouseout="this.style.background = \'url(/Images/tb/smiles-left.gif) no-repeat\';"';
    }

    var idx_end = idx_st + maxSmileCount;
    var r_enable = "";
    var r_mouseover = "";

    if (idx_end >= (smilesArray.length - 1)) {
        idx_st = smilesArray.length - maxSmileCount - 1;
        idx_end = smilesArray.length - 1;
        r_enable = "-blocked";
    }
    else {
        r_mouseover = 'onmouseover="this.style.background = \'url(/Images/tb/smiles-right-mouse.gif) no-repeat\';" onmouseout="this.style.background = \'url(/Images/tb/smiles-right.gif) no-repeat\';"';
    }

    if (idx_st <= 0) {
        idx_st = 0;
        l_enable = "-blocked";
        l_mouseover = "";
    }
    else {
        l_mouseover = 'onmouseover="this.style.background = \'url(/Images/tb/smiles-left-mouse.gif) no-repeat\';" onmouseout="this.style.background = \'url(/Images/tb/smiles-left.gif) no-repeat\';"';
    }

    for (i = idx_st; i <= idx_end; i++) {
        var smileItem = smilesArray[i];
        smilesString += '<input type="button" class="smile" style="background:url(/images/smiles/' + smileItem[3] + '.gif) no-repeat;" title="' + smileItem[2] + '" value="" onClick="return InsSmile(\'' + parent + '\', \'' + smileItem[3] + '\')"; />&nbsp;';
    }

     //'<input type="button" class="smile_scroll" ' + l_mouseover + ' style="background:url(/images/tb/smiles-left' + l_enable + '.gif) no-repeat;" title="Пролистать назад" value="" onClick="return PrevNextSmile(\'' + parent + '\',' + (idx_st - 1) + ');" />' + '&nbsp;' +
     return   smilesString;// +
        //'<input type="button" class="smile_scroll" ' + r_mouseover + ' style="background:url(/images/tb/smiles-right' + r_enable + '.gif) no-repeat;" title="Пролистать вперед" value="" onClick="return PrevNextSmile(\'' + parent + '\',' + (idx_st + 1) + ');" />';
}

function PrevNextSmile(parent, start_index) {

    document.getElementById('message' + parent).parentNode.parentNode.parentNode.firstChild.nextSibling.nextSibling.firstChild.nextSibling.innerHTML = writeSmilesElement(parent, start_index);
}

function processCite(parent) {


    elBody = document.getElementById('message' + parent);
    var str1 = document.getElementById('msg' + parent);
    var can_cite = elBody.getAttribute("can_cite");
    if ((can_cite != null) && (can_cite != "")) {
        elBody.focus();
        return true;
    }

    
        var value = "> " + processStringForImg(str1).replace(/\r\n/g, "\r\n> ") + "\r\n";
        var sel_start = elBody.selectionStart;
        elBody.value = elBody.value.slice(0, sel_start) + value + elBody.value.slice(sel_start);
        elBody.selectionStart = sel_start + value.length;
        elBody.selectionEnd = elBody.selectionStart;



        elBody.setAttribute("can_cite", "false");
        


    elBody.focus();
    return true;
}

function InsSmile(parent, value) {

    elBody = document.getElementById('message' + parent);
    value = smiles_CodePreffix + value + smiles_CodePostfix;

    if (document.selection) {
        elBody.focus();
        var str = document.selection.createRange();
        str.text = str.text + value;
        str.select();
    }
    else {
        var sel_start = elBody.selectionStart;
        elBody.value = elBody.value.slice(0, sel_start) + value + elBody.value.slice(sel_start);
        elBody.selectionStart = sel_start + value.length;
        elBody.selectionEnd = elBody.selectionStart;
        elBody.focus();
    }
}

function processStringForImg(str_obj) {


    var in_str_obj = str_obj.cloneNode(true);

    if (in_str_obj.hasChildNodes() == true) {
        if (in_str_obj.children != null) {
            for (i = 0; i < in_str_obj.children.length; i++) {
                if (in_str_obj.children[i].tagName.toUpperCase() == "IMG") {
                    var attr_obj = in_str_obj.children[i].getAttribute(smiles_SpecAttrName);
                    if ((attr_obj != null) && (attr_obj != ""))
                        in_str_obj.children[i].outerText = attr_obj;
                }
            }
        }
        else {
            var i = in_str_obj.firstChild;
            var is_exit = false;
            while ((is_exit != true) && (i != null)) {
                if (i.nodeName.toUpperCase() == "IMG") {
                    var attr_obj = i.getAttribute(smiles_SpecAttrName);
                    if ((attr_obj != null) && (attr_obj != ""))
                        if (i.outerText == null)
                        i.textContent = attr_obj;
                }


                if (i == in_str_obj.lastChild)
                    is_exit = true;
                else
                    i = i.nextSibling;
            }
        }
    }

    if (in_str_obj.innerText == null) {
        if (in_str_obj.text == null)
            return in_str_obj.textContent;
        else
            return in_str_obj.text;
    }
    else {
        return in_str_obj.innerText;
    }
}

function expandMessage(elt) {


    return expandMessageWithChild(elt);

    msgContainer = elt.parentNode.parentNode;
    divs = msgContainer.getElementsByTagName('div');
    var plusminus = '';
    for (i = 0; i < divs.length; i++)
        if (divs[i].className == 'message-content') {
        divs[i].style.display = divs[i].style.display == 'block' ? 'none' : 'block';
        if (elt.innerHTML.substring(6, 7) == '+') plusminus = '-'; else plusminus = '+';
        plusminus = '<span>' + plusminus + "</span>";
        elt.innerHTML = plusminus + elt.innerHTML.substring(14);
        break;
    }
    return false;
}

function expandMessageWithChild(elt) {


    msgContainer = elt.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;

    if (msgContainer.children.length < 2)
        return false;

    expandMessage2(msgContainer);

    return false;

    divs = msgContainer.getElementsByTagName('div');
    var plusminus = '';
    for (i = 0; i < divs.length; i++)
        if (divs[i].className == 'message-content') {
        divs[i].style.display = divs[i].style.display == 'block' ? 'none' : 'block';
        if (elt.innerHTML.substring(6, 7) == '+') plusminus = '-'; else plusminus = '+';
        plusminus = '<span>' + plusminus + "</span>";
        elt.innerHTML = plusminus + elt.innerHTML.substring(14);
        break;
    }
    return false;
}

function expandMessage2(node) {


    if (node.children.length > 0)
        if (node.children[0].className == "message") {
        if ((node.children[0].children[0].children[0].children[0].children[0].children[0].className == "caption") &&
      (node.children[0].children[0].children[0].children[0].children[0].children[1].className == "message-content")) {
            node.children[0].children[0].children[0].children[0].children[0].children[1].style.display = "block";

            if (node.children[0].children[0].children[0].children[0].children[0].children[0].children[0].innerHTML.substring(6, 7) == '+') plusminus = '-'; else plusminus = '+';
            plusminus = '<span>' + plusminus + "</span>";
            node.children[0].children[0].children[0].children[0].children[0].children[0].children[0].innerHTML = plusminus + node.children[0].children[0].children[0].children[0].children[0].children[0].children[0].innerHTML.substring(14);
        }
    }
    if (node.children.length > 1)
        if ((node.children[1].className == "Mes|") && (node.children[1].id == "Child|")) {
        expandMessage2(node.children[1]);
    }
}
function HideForm(IsAnswer, el, Id) {

    var elt;
   
    if (isIE) {
        if (IsAnswer == 0) {

            elt = document.getElementById('btnNewMessage');
            elt.disabled = '';

            el.parentElement.parentElement.parentElement.parentElement.parentElement.style.display = 'none';
        }
        else {
            document.getElementById('answer_' + Id).style.display = 'block';
           // el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.click = "return showReForm3(this,1);";
           // el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.className = '';
            el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.nextSibling.style.display = 'none';
        }
    }
    else {

        if (IsAnswer == 0) {

            elt = document.getElementById('btnNewMessage');
            elt.disabled = '';

            el.parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
        }
        else {
            
            //el.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.click = "return showReForm3(this,1);";
            //el.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.className = '';
            //el.parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
            document.getElementById('answer_' + Id).style.display = 'block';
            //el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.click = "return showReForm3(this,1);";
            //el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.className = '';
            el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.nextSibling.style.display = 'none';
        }
    }
    
    return false;
}
function showReForm3(elt, IsAnswer, id) {
 
    container = elt.parentNode;
    // var IsAnswer = 1;
   
    //if (container.id == "start_forum_msg") {
        //var IsAnswer = 0;
       
        
    //}
        if (IsAnswer == 0) {
            elt.disabled = 'true';
            container.firstChild.nextSibling.style.display = "block";
        }
        else {
            container.nextSibling.style.display = "block";
              document.getElementById('answer_' + id).style.display = 'none';
               //elt.click = 'return false';
               // elt.className = 'nolink';
            if (container.className == 're-opened') {
                container.className = 're'; 
            }
            else {
                container.className = 're-opened';
               
            };
        }
    return false;
}

function showReForm(elt, IsAnswer) {

    container = elt.parentNode;
    container2 = elt.parentNode;

    if (container2.id == "start_forum_msg")
        container2 = container2.parentNode.parentNode.parentNode.parentNode;

    if (container2.className == 're-opened') {
        container2.className = 're';
    }
    else {
        container2.className = 're-opened';
        if (container.children != null) {

            if (container.children[2].children[0].children[0].children[0].children[1].children[0].value.length == 0)
                container.children[2].children[0].children[0].children[0].children[1].children[0].value = "Аноним";

            if (IsAnswer == 1)
                if (container.children[2].children[0].children[0].children[1].children[1].children[0].value.length == 0)
                container.children[2].children[0].children[0].children[1].children[1].children[0].value = processRe(processStringForImg(container.parentNode.parentNode.children[0].children[0])/*.innerText*/.substr(1));

        }
    };
    return false;
}

function processRe(in_str) {
    var str_array = in_str.match(/^\s?(Re|Ответ)(\[(\d+)\])?:\s?/i);
    var out_str = "";

    if (str_array != null) {
        out_str = "Ответ";
        if ((str_array[3] != "") && (str_array[3] != null))
            out_str += ("[" + (parseInt(str_array[3]) + 1) + "]:");
        else
            out_str += "[2]:";

        out_str += (" " + in_str.substr(str_array[0].length/*str_array.lastIndex*/));
    }
    else {
        out_str = "Ответ: " + in_str;
    }
    return out_str;
};

function EMdecode(EMtext) {
    var res = "";
    var j;
    for (i = 0; i < EMtext.length; i += 3) {
        if ((i + 2) < EMtext.length)
            for (j = (i + 1); j < (i + 3); j++) {
            res += EMtext.substr(j, 1);
        }
        res += EMtext.substr(i, 1);
    }
    j = j + 1;
    for (; j < EMtext.length; j++) {
        res += EMtext.substr(j, 1);
    }
    return res;
};

function setCookie(name, value) {
    var tmp_date = new Date();
    tmp_date.setMonth(tmp_date.getMonth() + 6);
    document.cookie = escape(name) + "=" + escape(value) + ";expires=" + tmp_date.toGMTString() + ";Path=/";
}


smilesArray = new Array(new Array(10, 110, "Довольный", "classic"), new Array(20, 340, "Подмигивающий", "wink"), new Array(30, 390, "Хохочущий", "laugh"), new Array(40, 400, "Улыбающийся", "smiley"), new Array(50, 410, "Счастливый", "happy"), new Array(60, 280, "Краснеющий", "embarrassed"), new Array(70, 290, "Приветливый", "grin"), new Array(100, 150, "Плакса", "cry"), new Array(130, 30, "Плохой", "bandit"), new Array(140, 20, "Злой", "angry"), new Array(150, 130, "Сool", "cool"), new Array(160, 40, "Революционер", "beard"), new Array(170, 60, "Спокойный", "calm"), new Array(180, 80, "Мордастый", "cheeky"), new Array(190, 90, "Бодрый", "cheerful"), new Array(200, 120, "Смущенный", "confused"), new Array(230, 350, "Удивленный", "surprised"), new Array(260, 360, "Соня", "sleeping"), new Array(270, 370, "Нервный", "nervous"), new Array(280, 380, "Тормоз", "tired"));
//smilesArray = new Array(new Array(10, 110, "Довольный", "classic"), new Array(20, 340, "Подмигивающий", "wink"), new Array(30, 390, "Хохочущий", "laugh"), new Array(40, 400, "Улыбающийся", "smiley"), new Array(50, 410, "Счастливый", "happy"), new Array(60, 280, "Краснеющий", "embarrassed"), new Array(70, 290, "Приветливый", "grin"), new Array(80, 300, "Дразнящий", "lick"), new Array(90, 310, "Хороший", "normal"), new Array(100, 150, "Плакса", "cry"), new Array(110, 180, "Депрессия", "depressed"), new Array(120, 190, "Прикольный", "devious"), new Array(130, 30, "Плохой", "bandit"), new Array(140, 20, "Злой", "angry"), new Array(150, 130, "Сool", "cool"), new Array(160, 40, "Революционер", "beard"), new Array(170, 60, "Спокойный", "calm"), new Array(180, 80, "Мордастый", "cheeky"), new Array(190, 90, "Бодрый", "cheerful"), new Array(200, 120, "Смущенный", "confused"), new Array(210, 140, "Косой", "cross_eyed"), new Array(220, 330, "Суперстар", "old_man"), new Array(230, 350, "Удивленный", "surprised"), new Array(240, 50, "Сплин", "bored"), new Array(250, 260, "Перекур", "smoker"), new Array(260, 360, "Соня", "sleeping"), new Array(270, 370, "Нервный", "nervous"), new Array(280, 380, "Тормоз", "tired"), new Array(300, 100, "Китаец", "chinese"), new Array(310, 10, "Пришелец", "alien"), new Array(320, 70, "Кот", "cat"), new Array(330, 160, "Циклоп", "cyclops"), new Array(340, 170, "Жмурик", "dead"), new Array(350, 200, "Собака", "dog"), new Array(360, 210, "Дьявол", "evil"), new Array(370, 220, "Вампир", "vampire"), new Array(380, 230, "Пират", "pirate"), new Array(390, 240, "Ягуар", "jaguar"), new Array(400, 250, "Рэмбо", "rambo"), new Array(410, 270, "Людоед", "ogre"), new Array(420, 320, "Сё Касуги", "ninja"));

function smilesArraySorting(val1, val2) {
    if (val1[0] == val2[0])
        return 0; // val1 = val2
    else if (val1[0] < val2[0])
        return -1; // val1 < val2
    else
        return 1; // val1 > val2
};

smilesArray.sort(smilesArraySorting);
