Вход Регистрация
Файл: js/xenforo/full/rating.js
Строк: 85
<?php
/** @param {jQuery} $ jQuery Object */
!function($, windowdocument_undefined)
{
    
XenForo.RatingWidget = function($widget)
    {
        var 
xhr null,
            
overlay null,

        
$hint $widget.find('.Hint').each(function()
        {
            var 
$el = $(this);
            
$el.data('text'$el.text());
        }),

        
$currentRating $widget.find('.RatingValue .Number'),

        
$stars $widget.find('button').each(function()
        {
            var 
$el = $(this);
            
$el.data('hint'$el.attr('title')).removeAttr('title');
        }),

        
setStars = function(starValue)
        {
            
$stars.each(function(i)
            {
                
// i is 0-4, not 1-5
                
$(this)
                    .
toggleClass('Full', (starValue >= 1))
                    .
toggleClass('Half', (starValue >= 0.5 && starValue 1));
            });
        },

        
resetStars = function()
        {
            
setStars($currentRating.text());

            
$hint.text($hint.data('text'));
        };


        
$stars.bind(
        {
            
mouseenter: function(e)
            {
                
e.preventDefault();

                
setStars($(this).val());

                
$hint.text($(this).data('hint'));
            },

            
click: function(e)
            {
                
e.preventDefault();

                if (
overlay)
                {
                    
overlay.load();
                    return;
                }

                
xhr XenForo.ajax
                
(
                    
$widget.attr('action'),
                    { 
rating: $(this).val() },
                    function(
ajaxDatatextStatus)
                    {
                        if (!
XenForo.hasResponseError(ajaxData))
                        {
                            if (
ajaxData._redirectMessage)
                            {
                                
XenForo.alert(ajaxData._redirectMessage''1000);
                            }

                            if (
ajaxData.newRating)
                            {
                                
$currentRating.text(ajaxData.newRating);
                            }

                            if (
ajaxData.hintText)
                            {
                                
$hint.data('text'ajaxData.hintText);
                            }

                            if (
ajaxData.templateHtml)
                            {
                                new 
XenForo.ExtLoader(ajaxData, function()
                                {
                                    
overlay XenForo.createOverlay(nullajaxData.templateHtml, {
                                        
titleajaxData.h1 || ajaxData.title
                                    
}).load();
                                    
overlay.getOverlay().find('.OverlayCloser').click(function() {
                                        
overlay null;
                                    });
                                });
                            }
                        }

                        
resetStars();

                        
xhr null;
                    }
                );
            }
        });

        
$widget.mouseleave(function(e)
        {
            if (
xhr === null)
            {
                
resetStars();
            }
        });
    };

    
// *********************************************************************

    
XenForo.register('form.RatingWidget''XenForo.RatingWidget');

}
(
jQuerythisdocument);
?>
Онлайн: 1
Реклама