/**
 * Author - koder_alex
 * ISQ - 669906617
 * VK - https://vk.com/koder_alex
 * KL - http://koder-alex.ru
 * It is forbidden to give, sell, modify.
 */

/*document.write('<link rel="stylesheet" href="/template/css/SmileButton.css" type="text/css" />');*/
function ssSet(a, b) {
    if ("undefined" != typeof b) try {
        return sessionStorage.setItem(a, JSON.stringify(b))
    } catch (c) {
    } else try {
        return sessionStorage.removeItem(a)
    } catch (c) {
    }
    return !1
}

function ssGet(a) {
    try {
        return JSON.parse(sessionStorage.getItem(a))
    } catch (b) {
    }
    return !1
};
var timeR = null;
var SmileButton = function () {
    return {
        init: function () {
            $("#SmileButton").show();
        }, click: function (e, a, c) {
            var b = $("textarea");
            if (b.length <= 0)
                b = $('[data-id=emoji-block_1]');
            b = b.get(0);
            b.focus();
            a || (a = "");
            if (window.attachEvent && -1 === navigator.userAgent.indexOf("Opera")) {
                if (c = b.sel) {
                    b = c.text.length, c.text = e + c.text + a, c.moveEnd("character", -a.length), c.moveStart("character", -b), c.select();
                }
            } else {
                var h = b.scrollTop, f = b.value.substr(0, b.selectionStart), k = b.value.substr(b.selectionEnd),
                    g = b.value.substr(b.selectionStart, b.selectionEnd - b.selectionStart);
                b.value = f + e + g + a + k;
                c ? (b.selectionStart = f.length + e.length + g.length + a.length, b.selectionEnd = b.selectionStart) : (b.selectionStart = f.length + e.length, b.selectionEnd = b.selectionStart + g.length);
                b.scrollTop = h;
            }
            return !1;
        }, Toggle: function () {
            $("#smile_panel").remove();
            $(".sp_tab-" + ssGet("smileTabId")).removeClass("sp_tab_inactive").addClass("sp_tab_selected");
            return true;
        }, SelectTab: function (n, id) {
            var node = $(n);
            node.removeClass("sp_tab_inactive").addClass("sp_tab_selected");
            if (ssGet("smileTabId") != id) {
                $(".sp_tab-" + ssGet("smileTabId")).removeClass("sp_tab_selected").addClass("sp_tab_inactive");
            }
            ssSet("smileSelectedTab" + id, null);
            var data = ssGet("smileSelectedTab" + id);
            if (data === null || data.length <= 0) {
                $.post("/ajax?act=smile", {id: id}, function (a) {
                    ssSet("smileSelectedTab" + id, a);
                });
            }
            clearInterval(timeR);
            timeR = setInterval(function () {
                data = ssGet("smileSelectedTab" + id);
                if (data === null || data.length <= 0) {
                    return;
                }
                var node = $(".smile_list").empty();
                for (var i = 0; i < data.length; i++) {
                    node.append('<div class="smile_item" onclick="return SmileButton.click(' + "'" + data[i].emoji + "'" + ');">' + '<span class="smilebtn">' + '<img src="/template/emoji/' + data[i].file + '_x1.png">' + "</span>" + "</div>");
                }
                ssSet("smileTabId", id);
                clearInterval(timeR);
            }, 100);
            return true;
        }
    };
}();
$(function () {
    SmileButton.init();
});
var timerS = undefined;
$(document).on("click", "i[id=SmileButton]", function (event) {
    var node = null;
    event.preventDefault();
    Stickers.close()
    if ($("#smile_panel").length > 0) {
        $("#smile_panel").remove();
        return;
    }
    node = $('.create_message');
    if (node.length <= 0)
        node = $(event.target).parents().find('form, #emojistatus');
    var n = '<div id="smile_panel" class="smile_panel">' + '<div class="sp_tabs">' + '<div class="sp_smile_tabs">' + '<div class="scroller_wrap">' + '<div class="sp_smile_cont scroller_cont">';
    var data = ssGet("smileCat");
    if (data === null) {
        $.post("/ajax?act=smile", function (a) {
            ssSet("smileCat", a);
        });
    }
    timerS = setInterval(function () {
        data = ssGet("smileCat");
        if (data === null || data.length <= 0) {
            return;
        }
        if (ssGet("smileTabId") === null) {
            ssSet("smileTabId", data[0].id);
        }
        for (var i = 0; i < data.length; i++) {
            n += '<span class="sp_tab sp_tab-' + data[i].id + ' sp_tab_inactive" onclick="return SmileButton.SelectTab(this, ' + data[i].id + ');"><img src="/template/icons/emojiCat/' + data[i].id + '.png" class="sp_icon"></span>';
        }
        n += "</div>" + "</div>" + "</div>" + '<div class="sp_body">' + '<div class="sp_cont">' + '<div class="scroller_cont">' + '<div class="sp_page">' + '<div class="smile_list"></div>' + "</div>" + "</div>" + "</div>" + "</div>" + "</div>";
        node.after(n);
        SmileButton.SelectTab(".sp_tab-" + ssGet("smileTabId"), ssGet("smileTabId"));
        clearInterval(timerS);
    }, 100);
});