﻿function $(e, where) {
  var wh = where || document;
  function getByClassName(c) {
    if (document.getElementsByClassName) {
      return wh.getElementsByClassName(c);
    }
    var _ = wh.getElementsByTagName("*");
    var res = [];
    for (var i = 0; i < _.length; i++) {
      if (_[i].className === c) {
        res.push(_[i]);
      }
    }
    return res;
  }
  var obj = (typeof e !== "string" ? [e] : e.charAt(0) === "#" ? [wh.getElementById(e.substr(1))] : e.charAt(0) === "." ? getByClassName(e.substr(1)) : wh.getElementsByTagName(e));
  var j = 0, i = 0;
  return {
    node: obj[0],
    nodes: obj,
    attr: function (a, v) {
      if (typeof a == "string") {
        for (j = 0; j < obj.length; j++) {
          obj[j].setAttribute(a, v);
        }
      } else {
        for (i in a) {
          for (j = 0; j < obj.length; j++) {
            obj[j].setAttribute(i, a[i]);
          }
        }
      }
      return this;
    },
    removeAttr: function (a, v) {
      if (typeof a == "string") {
        for (j = 0; j < obj.length; j++) {
          obj[j].removeAttribute(a, v);
        }
      } else {
        for (i in a) {
          for (j = 0; j < obj.length; j++) {
            obj[j].removeAttribute(a, a[i]);
          }
        }
      }
      return this;
    },
    html: function (h) {
      for (j = 0; j < obj.length; j++) {
        obj[j].innerHTML = h;
      }
      return this;
    },
    val: function (v) {
      for (j = 0; j < obj.length; j++) {
        obj[j].value = v;
      }
      return this;
    },
    remove: function () {
      for (j = 0; j < obj.length; j++) {
        obj[j].parentNode.removeChild(obj[j]);
      }
    }
  }
}

FreeManga = {
  ajax: function (params, req, callback) {
    var request;
    try {
      request = new XMLHttpRequest();
    } catch (er) {
      try {
        request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (er) {
        try {
          request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (er) {
          request = false;
        }
      }
    }
    request.open(params.method || "GET", params.url, true);
    request.onreadystatechange = function () {
      if (request.readyState == 4) {
        if (!params.f) {
          var resp = "";
          if (request.getResponseHeader("Content-Type").indexOf("/xml") > -1) {
            for (var i = 0; i < request.responseXML.getElementsByTagName("cmd").length; i++) {
              if (request.responseXML.getElementsByTagName("cmd")[i].getAttribute("p") == "content" || request.responseXML.getElementsByTagName("cmd")[i].getAttribute("p") == "innerHTML") {
                resp = request.responseXML.getElementsByTagName("cmd")[i].textContent;
              }
            }
          } else {
            resp = $(document.createElement("div")).html(request.responseText).node.innerHTML;
          }
        } else {
          resp = request.responseText;
        }
        callback.call(null, resp);
      }
    }
    if (params.method && params.method.toLowerCase() == "post") {
      request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    }
    var r = [req];
    if (typeof req != "string") {
      r = [];
      for (f in req) {
        r.push(encodeURIComponent(f) + "=" + encodeURIComponent(req[f]));
      }
    }
    request.send(r.join("&"));
    return this;
  },
  cookies: {
    set: function (sName, sValue, nHours) {
      var expires = "";
      if (nHours) {
        var d = new Date();
        d.setTime(d.getTime() + nHours * 60 * 60 * 1000);
        expires = "; expires=" + d.toGMTString();
      }
      document.cookie = sName + "=" + sValue + expires + "; path=/";
    },
    get: function (sName) {
      var re = new RegExp("(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)");
      var res = re.exec(document.cookie);
      return res != null ? res[3] : null;
    },
    remove: function (sName) {
      FreeManga.cookies.set(sName, "", -1);
    }
  },
  wnd: {
    def: {
      width: 400,
      height: 300
    },
    create: function (params) {
      if ($("#" + params.id).node) {
        $("#" + params.id).remove();
      }
      var newWnd = $(document.createElement("div")).attr({"id": params.id, "class": "Center AJAXwindow"}).html(params.caption ? "<table class=\"W100P\"><tr><td><div class=\"Left AJAXcaption\">" + params.caption + "</div><div class=\"Right CloseLink\"><a href=\"javascript://\" onclick=\"FreeManga.wnd.close('" + params.id + "'); return false; \">&times;</a></div></td></tr><tr><td class=\"AJAXtext\"><div class=\"HR\"></div><div id=\"wndContent" + params.id + "\">" + (params.content || "<div class=\"AJAXloading\" id=\"AJAXloading" + params.id + "\"></div>") + "</div></td></tr></table>" : "<div class=\"AJAXtext Left\" id=\"wndContent" + params.id + "\">" + (params.content || "<div class=\"AJAXloading\"></div>") + "</div><div class=\"Right CloseLink\"><a href=\"javascript://\" onclick=\"FreeManga.wnd.close('" + params.id + "'); return false; \">&times;</a></div>").node;
      newWnd.style.width = (params.width || FreeManga.wnd.def.width) + "px";
      newWnd.style.height = (params.height || FreeManga.wnd.def.height) + "px";
      document.body.appendChild(newWnd);
      if (params.draggable) {
        FreeManga.drag.add($("#" + params.id).node);
      }
      if (params.ajax) {
        FreeManga.ajax({url: params.ajax.url, method: params.ajax.method}, params.ajax.data, function (res) {
          $("#wndContent" + params.id).html(res);
        });
      }
    },
    close: function (wId) {
      FreeManga.drag.remove($("#" + wId).node);
      var w;
      if (w = $("#" + wId).node) {
        $(w).remove();
      }
    }
  },
  drag: {
    obj: [],
    pos: {
      x: 0,
      y: 0
    },
    offset: {
      x: 0,
      y: 0
    },
    active: false,
    add: function (ob) {
      if (FreeManga.drag.isset(ob) === false) {
        FreeManga.drag.obj.push(ob);
      }
      ob.style.position = "fixed";
      ob.onmousedown = function (e) {
        FreeManga.drag.start(e.target, e);
      }
      ob.onmouseup = function (e) {
        FreeManga.drag.stop(e.target, e);
      }
      ob.onmousemove = function (e) {
        if (FreeManga.drag.active === e.target) {
          FreeManga.drag.move(e.target, e);
        }
      }
    },
    isset: function (ob) {
      for (var i in FreeManga.drag.obj) {
        if (FreeManga.drag.obj[i] == ob) {
          return i;
        }
      }
      return false;
    },
    remove: function (ob) {
      var i;
      if (i = FreeManga.drag.isset(ob) !== false) {
        delete FreeManga.drag.obj[i];
      }
    },
    start: function (ob, e) {
      FreeManga.drag.offset.x = e.pageX - ob.offsetLeft;
      FreeManga.drag.offset.y = e.pageY - ob.offsetTop;
      FreeManga.drag.pos.x = e.pageX;
      FreeManga.drag.pos.y = e.pageY;
      FreeManga.drag.active = ob;
    },
    move: function (ob, e) {
      ob.style.left = e.pageX - FreeManga.drag.pos.x + FreeManga.drag.offset.x + "px";
    },
    stop: function (ob, e) {
      FreeManga.drag.active = false;
    }
  },
  rating: {
    process: function (x) {
      return x[0].childNodes[2].innerHTML + " " + x[0].childNodes[0].title.substr(x[0].childNodes[0].title.indexOf("[") + 1, x[0].childNodes[0].title.indexOf("]") - x[0].childNodes[0].title.indexOf("[") - 1) + "<blockquote>" + x[2].innerHTML + "</blockquote>";
    },
    show: function (uId, pg) {
      FreeManga.wnd.create({id: "uRating" + uId, caption: "Рейтинг", content: "<div class=\"AJAXloading\"></div>"});
      FreeManga.ajax({url: "/index/9-" + uId + (pg ? "-" + pg : "")}, "", function (res) {
        var t = $(document.createElement("div")).html(res).node;
        var tmp = t.getElementsByTagName("table")//[1].getElementsByTagName("td");
        var votes = [];
        for (var i = 1; i < tmp.length; i++) {
          votes.push("<div>" + FreeManga.rating.process(tmp[i].getElementsByTagName("td")) + "</div>");
        }
        if (t.getElementsByTagName("span")[t.getElementsByTagName("span").length - 1].className === "pgSwchA") {
          var pageCount = Math.max(parseInt(t.getElementsByTagName("span")[t.getElementsByTagName("span").length - 1].innerText), parseInt(t.getElementsByTagName("a")[t.getElementsByTagName("a").length - 1].innerText));
          var thisPage = t.getElementsByTagName("span")[t.getElementsByTagName("span").length - 1].innerText;
          var pageSwitch = "<span class=\"pagesInfo\">Страницы</span> ";
          for (i = 1; i <= pageCount; i++) {
            if (thisPage == i) {
              pageSwitch += "<span class=\"switchActive\">" + i + "</span> ";
            } else {
              pageSwitch += "<a href=\"javascript://\" onclick=\"FreeManga.rating.show(" + uId + ", " + i + "); return false; \" class=\"switchDigit\">" + i + "</a> ";
            }
          }
          votes.push(pageSwitch);
        }
        FreeManga.wnd.create({id: "uRating" + uId, caption: "Рейтинг", content: votes.length ? votes.join("<div class=\"HR\"></div>") : "Рейтинг этого пользователя не изменялся"});
      });
    },
    vote: function (uId, v, ref) {
      FreeManga.wnd.create({id: "uChangeRating" + uId, caption: "Изменить рейтинг", content: "<form id=\"rateForm\" action=\"/index/\" method=\"POST\" onsubmit=\"$('#ChangeRatingSubmitButton').attr('disabled', 'disabled'); FreeManga.ajax({url: '/index/23-" + uId + "'}, '', function (res) { var x = $(document.createElement('div')).html(res); $('#rateSSID').val(x.node.getElementsByTagName('input')[x.node.getElementsByTagName('input').length - 2].value); FreeManga.ajax({url: '/index/', method: 'POST'}, FreeManga.serializeForm($('#rateForm').node), function (r) { FreeManga.wnd.create({id: 'uChangeRating" + uId + "', content: (r === '<div class=&quot;myWinLoadSD&quot;></div>' ? 'Рейтинг успешно изменен' : 'Не удалось изменить рейтинг')}); }); }); return false; \"><div><input type=\"radio\" name=\"act\" value=\"1\" id=\"minusRating\"" + (v === -1 ? " checked": "") + "> <label for=\"minusRating\">Уменьшить рейтинг</label></div><div><input type=\"radio\" name=\"act\" value=\"0\" id=\"noRating\"" + (v === 0 ? " checked": "") + "> <label for=\"noRating\">Не изменять рейтинг</label></div><div><input type=\"radio\" name=\"act\" value=\"2\" id=\"plusRating\"" + (v === 1 ? " checked": "") + "> <label for=\"plusRating\">Увеличить рейтинг</label></div><div class=\"HR\"></div><textarea name=\"reason\" class=\"ajaxTextarea\"></textarea><div class=\"HR\"></div><input type=\"submit\" value=\"Изменить рейтинг\" id=\"ChangeRatingSubmitButton\"><input type=\"hidden\" name=\"s\" value=\"" + uId + "\"><input type=\"hidden\" name=\"a\" value=\"23\"><input type=\"hidden\" name=\"t\" value=\"1\"><input type=\"hidden\" name=\"ssid\" id=\"rateSSID\"><input type=\"hidden\" name=\"submfrm981.x\" value=\"0\"><input type=\"hidden\" name=\"submfrm981.y\" value=\"0\"><input type=\"hidden\" value=\"" + (ref || "") + "\"></form>"});
    }
  },
  tags: {
    tags: ["Наруто", "Шаман Кинг", "Код Гиасс - Восставший Лелуш", "Живые - Последняя Эволюция", "Синий Дракон: Рал ? Град", "Сестринский поцелуй", "Темный Дворецкий", "Бакуман", "Клеймор", "Сердца Пандоры", "Shounen", "Comedy", "Drama", "Fantasy", "Anime", "Harem", "Horror", "Action", "Supernatural", "School life", "Romance", "Ecchi", "Seinen", "Adventure", "Mystery", "Adult", "Mecha", "Mature"],
    highlight: function (a, b) {
      var x = a.toLowerCase().indexOf(b.toLowerCase());
      return a.substr(0, x) + "<b class=\"White\">" + a.substr(x, b.length) + "</b>" + a.substr(x + b.length);
    },
    search: function (q) {
      var results = new Array();
      for (var i in FreeManga.tags.tags) {
        if (FreeManga.tags.tags[i].toLowerCase().indexOf(q.toLowerCase()) > -1) {
          results.push("<a href=\"javascript://\" onclick=\"$('#SInput').node.value = this.innerText; $('#Search').node.submit(); return false; \">" + FreeManga.tags.highlight(FreeManga.tags.tags[i], q) + "</a>");
        }
      }
      return (results.length ? results.join("<br>") : "Не найдено похожих запросов");
    }
  },
  selection: {
    get: function () {
      if (window.getSelection) {
        return window.getSelection().toString();
      } else {
        if (document.getSelection) {
          return document.getSelection();
        } else {
          return document.selection.createRange().text;
        }
      }
    }
  },
  variants: {
    update: function (f) {
      if ($("#SInput").node.value == "" || !f) {
        $("#SearchVariants").node.style.visibility = "hidden";
        if ($("#SInput").node.value == "" && !f) {
          $("#SInput").node.value = $("#SInput").node.defaultValue;
        }
      } else {
        if ($("#SInput").node.value == $("#SInput").node.defaultValue) {
          $("#SInput").node.value = "";
          return false;
        }
        $("#SearchVariantLinks").node.style.height = "";
        $("#SearchVariantLinks").node.innerHTML = FreeManga.tags.search($("#SInput").node.value);
        $("#SearchVariantLinks").node.style.height = ($("#SearchVariantLinks").node.offsetHeight > 110 ? 110 : $("#SearchVariantLinks").node.offsetHeight) + "px";
        $("#SearchVariants").node.style.height = ($("#SearchVariantLinks").node.offsetHeight > 110 ? 120 : $("#SearchVariantLinks").node.offsetHeight + 10) + "px";
        $("#VL").node.style.height = $("#SearchVariantLinks").node.offsetHeight + 10 + "px";
        $("#VB").node.style.height = $("#SearchVariantLinks").node.offsetHeight + 10 + "px";
        $("#VR").node.style.height = $("#SearchVariantLinks").node.offsetHeight + 10 + "px";
        $("#SearchVariants").node.style.visibility = "visible";
      }
    }
  },
  news: {
    toggle: function () {
      if (!$("#B1").node.style.display || $("#B1").node.style.display === "none") {
        $("#B1").node.style.display = "inline";
        $("#B2").node.style.display = "none";
        $("#BlocksArrow").node.innerHTML = "&#9650;"
        $("#BlocksArrow").node.title = "Скрыть новость";
      } else {
        $("#B1").node.style.display = "none";
        $("#B2").node.style.display = "inline";
        $("#BlocksArrow").node.innerHTML = "&#9660;"
        $("#BlocksArrow").node.title = "Посмотреть новость";
      }
    }
  },
  search: function (q) {
    window.location.href = "/search/" + q;
    return false;
  },
  windows: {
    create: function (params) {
      alert(params.url);
    }
  },
  comments: {
    update: function () {
      location.reload();
    },
    answer: function (cId) {
      if (cId) {
        $("#parentCommentID").attr({name: "pid"}).node.value = cId;
        var commForm = $($("#AddCommentForm").node.cloneNode(true)).attr({id: "TempCommentForm"}).node;
        $("#CommentAnswer" + cId).node.appendChild(commForm);
        $("#FirstLevelComment").node.appendChild($(document.createElement("div")).html("<a href=\"javascript://\" onclick=\"FreeManga.comments.answer(); return false; \">Написать комментарий</a>").attr({id: "FirstLevelCommentLink"}).node);
      } else {
        $("#parentCommentID").attr({name: "id"}).node.value = cId;
        var commForm = $($("#AddCommentForm").node.cloneNode(true)).attr({id: "TempCommentForm"}).node;
        $("#FirstLevelComment").html("").node.appendChild(commForm);
      }
      $("#AddCommentForm").remove();
      $(commForm).attr({id: "AddCommentForm"});
    },
    quote: function (cId) {
      var author = $("#CommAuthor" + cId).node.innerHTML;
      var quote = FreeManga.selection.get() || $("#CommentTextWithoutAnswer" + cId).node.innerText;
      if (document.selection) {
        $("#CommentFormMessage").node.focus();
        $("#CommentFormMessage").node.document.selection.createRange().text = "[quote=" + author + "]" + quote + "[/quote]";
      } else {
        $("#CommentFormMessage").node.value += "[quote=" + author + "]" + quote + "[/quote]";
      }
    },
    edit: function (cId) {
      $("#CommentTextWithoutAnswer" + cId).html("<div class=\"AJAXloading\"></div>");
      FreeManga.ajax({url: "/index/37-" + cId}, "", function (res) {
        var x = $(document.createElement("div")).html(res).node;
        $("#CommentTextWithoutAnswer" + cId).html("<div id=\"EditCommentForm" + cId + "\"><form action=\"/index/\" method=\"POST\" onsubmit=\"alert(FreeManga.serializeForm(this)); FreeManga.ajax({url: '/index/'}, FreeManga.serializeForm(this), function (res) { FreeManga.comments.update(); }); return false; \"><textarea name=\"message\" class=\"W100P\" id=\"EditCommentFormMessage" + cId + "\" rows=\"10\">" + x.getElementsByTagName("textarea")[0].value + "</textarea><input type=\"submit\" value=\"Изменить комментарий\"><input type=\"hidden\" name=\"answer\" value=\"\"><input type=\"hidden\" name=\"submipd348.x\" value=\"0\"><input type=\"hidden\" name=\"submipd348.y\" value=\"0\"><input type=\"hidden\" name=\"a\" value=\"37\"><input type=\"hidden\" name=\"t\" value=\"1\"><input type=\"hidden\" name=\"s\" value=\"" + cId + "\"><input type=\"hidden\" name=\"ssid\" value=\"" + x.getElementsByTagName("input")[x.getElementsByTagName("input").length - 2].value + "\"></form></div>");
      });
    },
    add: function (frm) {
      FreeManga.ajax({url: '/index/', method: 'POST'}, FreeManga.serializeForm(frm), function (res) {
        FreeManga.comments.update();
      });
    },
    remove: function (cId) {
      $("#RemoveCommentLink" + cId).remove();
      FreeManga.ajax({url: "/index/38-" + cId, method: "GET", f: true}, "", function (res) {
        if (res.indexOf("Access Denied!") > -1) {
          FreeManga.wnd.create({id: "cantRemoveComment", caption: "Ошибка", content: "Не удалось удалить комментарий"});
        } else {
          $("#comEnt" + cId).remove();
        }
      });
    },
    vote: function (cId, v) {
      
    }
  },
  vote: function (mId, eId, v, vId, links) {
    var urlParts = [['/load/0-1-', '-3']];
    var tmpLink;
    for (var i = 0; i < links.length; i++) {
      (tmpLink = $("#" + links[i]).node).parentNode.replaceChild(document.createTextNode(tmpLink.innerHTML), tmpLink);
    }
    FreeManga.ajax({url: urlParts[mId][0] + v + '-' + eId + urlParts[mId][1]}, "", function (res) {
      if (res.indexOf("засчитана")) {
        $("#" + vId).html(parseInt($("#" + vId).node.innerHTML) - - 2 * v - 9).node.className = parseInt($("#" + vId).node.innerHTML) > 0 ? "RatingPlus Plus" : parseInt($("#" + vId).node.innerHTML) < 0 ? "Minus" : "Null";
      }
    });
  },
  serializeForm: function (frm) {
    var els = frm.elements;
    var res = [];
    for (var i = 0; i < els.length; i++) {
      if (els[i].name && els[i].value && (els[i].type != "checkbox" || els[i].checked)) {
        if ((els[i].type == "radio" && els[i].checked) || els[i].type != "radio") {
          res.push(encodeURIComponent(els[i].name) + "=" + encodeURIComponent(els[i].value));
        }
      }
    }
    return res.join("&");
  },
  forum: {
    toggleSpoiler: function (sp) {
      if (sp.childNodes[0].value.substr(0, 3) === "[+]") {
        sp.childNodes[0].value = "[-]" + sp.childNodes[0].value.substr(3);
      } else {
        if (sp.childNodes[0].value.substr(0, 3) === "[-]") {
          sp.childNodes[0].value = "[+]" + sp.childNodes[0].value.substr(3);
        }
      }
      sp.nextSibling.style.display = sp.nextSibling.style.display === "none" ? "block" : "none";
    },
    quote: function (auth) {
      Insert(auth, FreeManga.selection.get());
    },
    deletePost: function (fid, tid, id) {
      $("#ForumMessage" + id).node.style.opacity = ".5";
      var ssid = pdel.toString().split(pdel.toString().indexOf("\"") > -1 ? "\"" : "'")[15];
      FreeManga.ajax({url: "/forum/" + fid + "-" + tid + "-" + id + ssid}, "", function (res) {
        $("#post" + id).node.parentNode.removeChild($("#post" + id).node);
      });
    },
    spoilers: function () {
      var spoilers = [];
      if (document.getElementsByClassName) {
        spoilers = document.getElementsByClassName("uSpoilerButBl");
      } else {
        var divs = document.getElementsByTagName("div");
        for (var i in divs) {
          if (divs[i].className === "uSpoilerButBl") {
            spoilers.push(divs[i]);
          }
        }
      }
      for (i = 0; i < spoilers.length; i++) {
        $($(spoilers[i]).attr("onclick", "FreeManga.forum.toggleSpoiler(this); return false; ").node.childNodes[0]).attr("onclick", "return false; ");
      }
      return this;
    },
    bbCodes: function () {
      var quotes = [];
      if (document.getElementsByClassName) {
        quotes = document.getElementsByClassName("bbQuoteName");
      } else {
        var divs = document.getElementsByTagName("div");
        for (var i in divs) {
          if (divs[i].className === "bbQuoteName") {
            quotes.push(divs[i]);
          }
        }
      }
      for (i = 0; i < quotes.length; i++) {
        quotes[i].innerHTML = "Цитирую" + (quotes[i].getElementsByTagName("span").length ? " " + quotes[i].getElementsByTagName("span")[0].innerHTML : "") + ":";
      }
      var codes = [];
      if (document.getElementsByClassName) {
        codes = document.getElementsByClassName("bbCodeName");
      } else {
        divs = document.getElementsByTagName("div");
        for (i = 0; i < divs.length; i++) {
          if (divs[i].className === "bbCodeName") {
            codes.push(divs[i]);
          }
        }
      }
      for (i in codes) {
        codes[i].innerHTML = "Код:";
      }
      return this;
    },
    polls: function (f) {
      var p;
      if ($("#forumPollF").node && $("#forumPollF").node.getElementsByTagName("input").length > 2 && (p = $("#forumPollF")).node) {
        p.attr("onsubmit", "FreeManga.polls.forum.vote(this); return false; ");
        if (!f) {
          $("#sbmRsPl").attr("onclick", "FreeManga.polls.forum.showRes('" + $("#sbmRsPl").node.onclick.toString().split($("#sbmRsPl").node.onclick.toString().indexOf("\"") > -1 ? "\"" : "'")[5] + "'); return false; ");
        } else {
          p.node.getElementsByTagName("input")[p.node.getElementsByTagName("input").length - 3].setAttribute("id", "showPollAgain");
          $("#showPollAgain").attr("onclick", "FreeManga.polls.forum.showPoll('" + $("#showPollAgain").node.onclick.toString().split($("#showPollAgain").node.onclick.toString().indexOf("\"") > -1 ? "\"" : "'")[1] + "'); return false; ");
        }
      }
      return this;
    },
    messages: {
      init: function () {
        if (document.addform && $(".forumBarA").node && $(".forumBarA").node.innerHTML !== "Редактирование сообщения") {
          $(document.addform).attr("onsubmit", "FreeManga.forum.messages.add(this); return false; ");
          $(".editMessageLink");
        }
      },
      update: function (pg, updatingMsg) {
        var thisPage = parseInt(pg || $(".curPage").node.innerHTML);
        var url = window.location.href.split("-");
        url[url.length - 1] = thisPage;
        url = url.join("-");
        FreeManga.ajax({url: url}, "", function (res) {
          var posts = $(".gTable", $(document.createElement("div")).html(res).node).node.getElementsByTagName("tr");
          var switches = $(document.createElement("div")).html(res).node;
          var lastPage = parseInt($(".numPages", switches).node.innerHTML);
          for (var i = 0; i < posts.length; i++) {
            if (updatingMsg && updatingMsg == posts[i].id.substr(4)) {
              $("#post" + updatingMsg).node.parentNode.replaceChild(posts[i], $("#post" + updatingMsg).node);
            }
            if (posts[i].id && !$("#" + posts[i].id).node) {
              $(".gTable").node.appendChild(posts[i]);
            }
          }
          if (thisPage === lastPage) {
            window.location.hash = "#lastpage";
            FreeManga.forum.bbCodes().spoilers();
            var pages = $(".switches").nodes;
            for (var i = 0; i < pages.length; i++) {
              pages[i].parentNode.replaceChild($(".switches", switches).node, pages[i]);
            }
          } else {
            FreeManga.forum.messages.update(thisPage + 1);
          }
        });
      },
      add: function (frm) {
        FreeManga.ajax({url: "/forum/", method: "POST"}, FreeManga.serializeForm(frm), function (res) {
          if (res.indexOf("успешно") > -1) {
            FreeManga.forum.messages.update();
          } else {
            FreeManga.wnd.create({id: 'ForumError', caption: 'Ошибка', content: 'Не удалось добавить сообщение', height: 100});
          }
        });
        $("#message").val("");
      },
      startEdit: function (msgId, URL) {
        FreeManga.ajax({url: URL}, "", function (res) {
          var oldMsg = $("form", $(document.createElement("div")).html(res).node).node;
          $("#" + msgId).html("<form action=\"/forum/\" onsubmit=\"FreeManga.forum.messages.edit('editMessageForm" + msgId + "'); return false; \" id=\"editMessageForm" + msgId + "\" method=\"POST\"><input type=\"hidden\" name=\"a\" value=\"" + oldMsg.a.value + "\"><input type=\"hidden\" name=\"p\" value=\"" + oldMsg.p.value + "\"><input type=\"hidden\" name=\"tid\" value=\"" + oldMsg.tid.value + "\"><input type=\"hidden\" name=\"fid\" value=\"" + oldMsg.fid.value + "\"><input type=\"hidden\" name=\"pn\" value=\"" + oldMsg.pn.value + "\"><input type=\"hidden\" name=\"ssid\" value=\"" + oldMsg.ssid.value + "\"><input type=\"hidden\" name=\"smiles_on\" value=\"1\"><input type=\"hidden\" name=\"signature_on\" value=\"1\"><input type=\"hidden\" name=\"ahtml\" value=\"1\"><input type=\"hidden\" name=\"frmt\" value=\"1\"><input type=\"hidden\" name=\"jkd498\" value=\"1\"><input type=\"hidden\" name=\"jkd428\" value=\"1\"><div><textarea name=\"message\" class=\"W100P\" rows=\"10\">" + $("textarea", oldMsg).node.value + "</textarea></div>" + (oldMsg.edited ? "<div><input type=\"checkbox\" name=\"edited\" id=\"edited" + msgId + "\" value=\"1\"> <label for=\"edited" + msgId + "\">Добавить надпись отредактировано</label></div>" : "<input type=\"hidden\" name=\"edited\" value=\"1\">") + "<input type=\"submit\" name=\"sbm\" value=\"Изменить\" id=\"editSbm" + msgId + "\"></form>");
        });
        $("#" + msgId).html("<div class=\"AJAXloading\"></div>");
      },
      edit: function (frmId) {
        FreeManga.ajax({url: "/forum/", method: "POST"}, FreeManga.serializeForm($("#" + frmId).node), function (res) {
          if (res.indexOf("успешно") > -1) {
            FreeManga.forum.messages.update(null, frmId.substr(27));
          } else {
            FreeManga.wnd.create({id: 'ForumError', caption: 'Ошибка', content: 'Не удалось изменить сообщение', height: 100});
          }
        });
        $("#" + frmId).node.parentNode.innerHTML = "<div class=\"AJAXloading\"></div>";
      }
    }
  },
  polls: {
    forum: {
      vote: function (frm) {
        $("#sbmPl").attr("disabled", "disabled");
        FreeManga.ajax({url: '/forum/', method: 'POST'}, FreeManga.serializeForm(frm), function (res) {
          if (res) {
            $("#forumPollF").node.parentNode.innerHTML = res;
          } else {
            alert("Выберите вариант ответа");
            $("#sbmPl").removeAttr("disabled");
          }
        });
      },
      showRes: function (pId) {
        $("#sbmRsPl").attr("disabled", "disabled");
        FreeManga.ajax({url: "/forum/" + pId}, "", function (res) {
          $("#forumPollF").node.parentNode.innerHTML = res;
          FreeManga.forum.polls(1);
        });
      },
      showPoll: function (pId) {
        $("#showPollAgain").attr("disabled", "disabled");
        FreeManga.ajax({url: "/forum/" + pId}, "", function (res) {
          $("#forumPollF").node.parentNode.innerHTML = res;
          FreeManga.forum.polls();
        });
      }
    }
  },
  pm: {
    init: function () {
      var allLinks = $("a").nodes;
      for (var i = 0; i < allLinks.length; i++) {
        if (allLinks[i].childNodes[0].nodeType === 1 && allLinks[i].childNodes[0].tagName.toLowerCase() === "img") {
          $(allLinks[i]).attr("onclick", "FreeManga.pm.remove(" + allLinks[i].childNodes[0].id.substr(2) + "); return false; ").html("Удалить");
        }
      }
    },
    remove: function (mId) {
      if (confirm('Вы подтверждаете удаление?')) {
        FreeManga.ajax({url: "/index/16-" + mId, f: true}, "", function (res) {
          $("#ent" + mId).remove();
        });
      }
    }
  },
  init: function (n) {
    if (n) {
      if ($("#addEntForm").node) {
        $("#addEntForm").attr("onsubmit", "");
      }
      if ($("#phF4").node) {
        $("#phF4").attr("onclick", "$('#addPhtFrm').node.submit(); ");
      }
      return false;
    }
    if (window.location.hash === "#lastpage") {
      var lastPageUrl = window.location.href.split("-");
      lastPageUrl[lastPageUrl.length - 1] = "0-17";
      window.location.href = lastPageUrl.join("-");
    }
    if ($("#addEntForm").node || $("#addPhtFrm").node) {
      inputs = document.getElementsByTagName("input");
      for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].id.substr(0, 11) == "catSelector") {
          var ev = inputs[i].parentNode.onclick.toString();
          ev = ev.split(ev.indexOf("\"") > -1 ? "\"" : "'");
          $(inputs[i]).attr("onclick", "$('#" + ev[1] + "').node.style.display = ($('#" + ev[1] + "').node.style.display == 'inline' ? 'none' : 'inline'); ");
          break;         }
      }
      if ($("#addEntForm").node) {
        $("#addEntForm").attr("onsubmit", "FreeManga.ajax({url: location.href.split('/')[3], method: 'POST'}, FreeManga.serializeForm(this), function (res) { alert(res); }); return false; ");
      } else {
        $("#phF4").attr("onclick", "FreeManga.ajax({url: location.href.split('/')[3], method: 'POST'}, FreeManga.serializeForm($('#addPhtFrm').node), function (res) { alert(res); }); return false; "); 
      }
    }
    if ($("#sosComment").node) {
       $("#sosComment").node.value = _y8M.split("\"")[5];
    }
    return this;
  }
}