Файл: js/xenforo/full/comments_simple.js
Строк: 127
<?php
/** @param {jQuery} $ jQuery Object */
!function($, window, document, _undefined)
{
    XenForo.CommentLoader = function($element) { this.__construct($element); };
    XenForo.CommentLoader.prototype =
    {
        __construct: function($link)
        {
            this.$link = $link;
            $link.click($.context(this, 'click'));
        },
        click: function(e)
        {
            var params = this.$link.data('loadparams');
            if (typeof params != 'object')
            {
                params = {};
            }
            e.preventDefault();
            XenForo.ajax(
                this.$link.attr('href'),
                params,
                $.context(this, 'loadSuccess'),
                { type: 'GET' }
            );
        },
        loadSuccess: function(ajaxData)
        {
            var $replace,
                replaceSelector = this.$link.data('replace'),
                els = [], $els, i;
            if (XenForo.hasResponseError(ajaxData))
            {
                return false;
            }
            if (replaceSelector)
            {
                $replace = $(replaceSelector);
            }
            else
            {
                $replace = this.$link.parent();
            }
            if (ajaxData.comments && ajaxData.comments.length)
            {
                /*for (i = 0; i < ajaxData.comments.length; i++)
                {
                    $.merge(els, $(ajaxData.comments[i]));
                }
                // xfInsert didn't like this
                $els = $(els).hide();
                $replace.xfFadeUp().replaceWith($els);
                $els.xfActivate().xfFadeDown();*/
                for (i = 0; i < ajaxData.comments.length; i++)
                {
                    $(ajaxData.comments[i]).xfInsert('insertBefore', $replace);
                }
                $replace.xfHide();
            }
            else
            {
                $replace.xfRemove();
            }
        }
    };
    XenForo.CommentPoster = function($element) { this.__construct($element); };
    XenForo.CommentPoster.prototype =
    {
        __construct: function($link)
        {
            this.$link = $link;
            this.$commentArea = $($link.data('commentarea'));
            if (this.$commentArea.data('submiturl'))
            {
                this.submitUrl = this.$commentArea.data('submiturl');
            }
            else
            {
                this.submitUrl = $link.attr('href');
            }
            $link.click($.context(this, 'click'));
            this.$commentArea.find('input:submit, button').click($.context(this, 'submit'));
        },
        click: function(e)
        {
            e.preventDefault();
            this.$commentArea.xfFadeDown(XenForo.speed.fast, function()
            {
                $(this).find('textarea[name="message"]').focus();
            });
        },
        submit: function(e)
        {
            e.preventDefault();
            var $form = this.$commentArea.closest('form');
            if ($form.length)
            {
                if (!$form.data('MultiSubmitDisable'))
                {
                    XenForo.MultiSubmitFix($form);
                }
                $form.data('MultiSubmitDisable')();
            }
            XenForo.ajax(
                this.submitUrl,
                { message: this.$commentArea.find('textarea[name="message"]').val() },
                $.context(this, 'submitSuccess')
            );
        },
        submitSuccess: function(ajaxData)
        {
            var $form = this.$commentArea.closest('form');
            if ($form.data('MultiSubmitEnable'))
            {
                $form.data('MultiSubmitEnable')();
            }
            if (XenForo.hasResponseError(ajaxData))
            {
                return false;
            }
            if (ajaxData.comment)
            {
                $(ajaxData.comment).xfInsert('insertBefore', this.$commentArea);
            }
            this.$commentArea.find('textarea[name="message"]').val('');
        }
    };
    XenForo.register('a.CommentLoader', 'XenForo.CommentLoader');
    XenForo.register('a.CommentPoster', 'XenForo.CommentPoster');
}
(jQuery, this, document);
?>