RIFF"WEBPVP8 Е�* �>�T�M'��%�u|�� gk�ZaQb�����o����lN���s�_�3��S+���c�€R��y����//����~��H�@�2oF�X ���R@'�:�ꞓ}��a�M,.� ��o��=�p�U�&g<�:���~���t��.�1���cyW�� We�M=�f�Y6v�����(nO���������^- �9(b _�s%{�C|�p�@�����37�}B0��u���i�Գ���� ������5�}���֮M?dz���q�e��N�~�&�N��K�av$]hO�i�C�,��"]�����@����M@�o O[�Æ*;�e]��_; }�p�?��)�'VC� J��L�y� v����18��)7c�d�mߛ�]I� ����d��?�{�.����b)49��c��Zy/��c^��%��/z�å̯�t��rS��Z��Uͩ�h��2����` �7�:��~��zP���Z����?v�R��TD���G����CJ���}�o��fs��̜#b��e"k9,���3�{Or�i��x":���{/ۈ�`�7RČ����(�p:I��%:�ͺ��W(|�=KP��3�7}���������ed��;�3�;�e��8�g�4�9 %v,B�GU�����T% ֯��B+�tR���p������F7�sT��oϱq �h�Rݧ�~*�܈_�Ck���}�nY�>��C�PQ�B��(o�६�qxy������f ���]��}����%=CW�k^t�—]����M�cX�i��%��!�Y������:N=|��wj<9ł��,�s�O�,,�U�!�������e���{���W��989�y*z�=�"E�CyW���N�2�ę��LN�HW��?����`V���DJ=#׶×ܽ$eF���o;b� ��0��&�W���Y�bR�� �Fֵ� `J�an�-Є@�tR�v��e2W��Mn�p��4P1�q ���®w���ũur*�җ.�#�4b���������:���g��ʧ�`R�4�+G�f���niU����$�K-'A�zE&]��Y�H2�4� ��˄�t��Q�4%��L�#��0FS8�Bu����ژ��"����۹�[�JK��4��z�v�ڌ��L*jD0.����?�ڃN��H��J����n�w��6Q(i;��I,.3?|�`���y���D_��(��w��������[��ZYhe�')��D*��kb����c��@� �|S�S3���- ���iq!*��w������Ł��ܩ��*FY���jV�4Q���4�,�ʑV!��N�.�1�KT,��Zp� ���iL�r��Ȧ����"y�tU���PS�ģ��?�QGng_�#yEk��B̝��1hr��ѕ�z*Ԧ�L8T�����H�^�k�-�g�z������w��N����v��RH��E��!0Cؚ)R�@�q�J�qA�r�$k4���om���Ьnu���x�������������y$�8�Z���v� &�+2�|���\r:[,!�Y�C#c��͊�{��7Щ��Y�LVę]�j��)��^���󶦙$�_����Hx>����[ +K�ڏ�1������Q�7@�^{�ik�;'H{�8 �ȇe vR����^� Meq�����Y�MC��U<��O�۫�nAfBf317���x��O�.u@3R}e�`�D��\�z���L��P������y8�?����I�"s`�b 3��ٹd�0��A�/���� ��{b�b������1� ����ka�&T�z�_4���I��PN��8��}N�r��]�՜���ӿ��9�|/.��� �fˑ.�`r�r��U-���7�Rx8L��d$H�m��Ǒ�*x�P{�D�����k��o�ueV�-.��j}���U2��g絍g���s �������aN�X�ҍ���C�� ��X��B�EF���8%p57<�x�Y�e�cϔ�\��C �OAj&N�V���!v��U��~J��j��4�V|��8�R�v�fD�)�HA�3�G��ds�7Z.���= ����+kI2�0=�'� K �H,`�ɴāTE\����E�'/��;���;��a���0"��� �x$J�T��#U=������j-�8�����y c8W����Ԋ�K��_��Y� '%Vg$I�Пq�shE�y�:�m�}�F1(:b�U�~� ���0}�C�}0����#�#}���e�S9��.��SP�m���<�~�y��� ��ɭ�ٮ6N��� ğ��t��A��N�V ������f�+�w�O1�Jq���U�B�T��į���� ��*�=z�x"yU S���� ��// ����W᫮��R�O�2W�M��<-�;�F�`9 �����t�:C{a�8�� <�r'���:�g8%�9J̞�˦��eV�7l�~�#����.yY)$��k�|�!�3���m���XS���J4B���`�����oL[]��aT[�C��@h�T�l��_�e>�����K<'��P�zgk�#fm��V�]�ݽ�j1����H��J��J58��ڱ��@�e&*�w��e���Q��HT8�ֽ��\�Fa�栆�A�ڝӚ׹@�:9`��G�h�7����t<���_˒|�\bU�O�����,M�a�oynGf�޶7�w�i`�m[��XE4�*�8}5��U1���^�B*��_%[����Yb�^���S�l�"A�1�T��ڈ��(???)j�S�n�8v%� Eo��� mE��|�Έ�Ai�3uy5O����7Rܽ���"L��X���1�@�=?5�_'��{j�����Z3L��k��^x6g3i�����r.��N��&��9[��ɓW[+�� 7�����fe�3�K�%��0F��+V�ϛ+3�B�p,y;Z�NGK�uWg䁯9�v��t��ǒx�JY�O��K�iY��#FJy�Bzt�Q^�Y��Uϲ-͖��9��g�X,�X] f�P/�]d�䠾�̔m%Q��겓\q(�%'����/EN�P�1�o��� ���}��'��c�F��Ju��4��0ck�N��w�1��&]a ��^I�)����֓��\;�1��3��� �L��{>�+���a��Jg��#����P���>�5�a<�`>>˔�]�ߎey�-T���ʵ���r���8`dmNm���_mӐK�Ҏ-޴�� ��RQ%�d�l"��l�_��ie0.�$Xh|.jv,���l\ uyj�u\�/� B:�܀�]� _��T��I���lz�&c�A�g{g��O˂�O���O�M�t��7Y�~? ቶ`�7��'�w��#���˚�\��_��� a��d���[Ҭњ��]ɢ�A$ �l�v=E�66d �WA\̬fsǭ}x;';���?�UW�O��{�&|_a�C� |ȹ��pka�|���zf[S�������[�Jcf�A�&�L�U)Pd+)�_�$1�0�z�'�v\u�' +;�!���dž�]h�N�{ku��<��a��.0�,��]q��ZKao=ILo�z�rb&�{@K�i*7nX).�/�̶��ӒU�v �B֝���a��n��تx ���P�AG7M4N�?r;Z�����7�@�wA�q��RM5�8ۭ ��g��8�g���G�Tſ�O�{2��P3r��6�W,/��kC���p�V���~�"���T���6�/<�4�U�>��T�H�Fc�T�D�^I���!�����=&\Em�>b�,|T��d���n��=@\Wzi���D��&�f���1�t�mC�Ih��m��&�������84�!H�i�|�Z���� ��W���g����8�h�B] OvQ�u����+�}n�� FE�+q�&j����I�u��&��=!��T�b�@�ք0 �D�W�W�t�V}�������^�g�Erb`j��2 �wr�\Y5��L�Ρ���_�bNU�)~�e�Z�U�*�����:�vƀu2�W-W��W{KKo0�)��G�K.��{̮���v�/��p� !�� �w;`��b ������F���/���:����I�lm��Vc�,x~m<=|�_�>n����(A�����{�膾���m�,{3 �ӀH=٘�%��[USd��!J�|�f_�/ �߻��)I%���G�ܑ�G |N������d��BU5��qvG�c,���A?!��w��� �S��-i���Fr�P�_��E�+��)��V��f��������~�����������}"sk��cHN�<� 5I�r��1gu�ݗ�,N�I��f��k�s���0��: 0�<�\ͩB�܄ �:�f2A��mҞ�Z�6��3��t�����͟~����J�R9�] �,h������Z�@�{����9��W�il!�:��P��P���wK)���p���!���KuB\�7 uI�?(���/��r3����v,\'�8��qUa�ء���!��(b��n?�YfӸ����r�$���ה�~��_�&�8g�<(Mx$ZO�������u`q��:�N�Q !�%`���h:�� �~>�D���m�^��[V!y�6=� ��m��ѡ��p4�Iꎸ��1cE��QS�ٷ��W�C����*�����Q��=��3���&���-#,åCCG�������9�i��3�C��S[t>���qm����B��s���������o��� J�^s|����r��\ԺΦ�a�{��1��wT'���� �̓Q���B��\xx}��8��Of!��U�n��f�����bA��UD�cC} �r�������c ���^�X���k�Ɩk�6��^E�C�E�sՀ`�Ⱦ,i��v�� ٺe˟�!�co�64x4��A�ah��ˏ<��%�@�*|�\�TY����#:9��|?S�[������G hUw9���z]��D��-J6�m,ʭ��2�Iz�4W9��&���t�߁ R�Z�gP��H�dj�`%ap}�^떟��*fb{�Q) Dd_V����$��,�߁� @D�&f�2��S6��M�ɤ�)Q\F�i���5p��Wb'PN�R�>�����9��]��\8{B8�� ��ю�������%� ӏۙ{]�j,_Y>��!�l���'���H�["��;c?cy��1< 0ϑ���/�AAЛ�� ; �j�(!��1 [)5ݻK ��A7��"[�%"���{��H ���V�� ���m�K���VLn��9鿹8�At΀@����f`�1y�rЅ��q��7Nf���x)y��, 0e�"{�ƨ�"� o �6� �.|Tm.���-r �G� [ed���–q���]�X�oG*�1>�� م�p_Y{δ(N�|s��^{i�`��͒ QӴx+X.ݕ�kP�g]�޿�4��Q|�O��h�*c�W�G�4{~x�k��A:�{Yu�倀#ތM�K!�e�;ȩ����r������'���D&H�$�0�ߜ�w��Sq dH��P�y����z����h��d��"�;0��#I2�F{����. W�wl���|>s�\ŌO�&bO/4(z9ܭua��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �% 0) { this.score.val(score); } methods._roundStars.call(this, score); } }, _between: function(value, min, max) { return Math.min(Math.max(parseFloat(value), min), max); }, _binds: function() { if (this.cancel) { methods._bindOverCancel.call(this); methods._bindClickCancel.call(this); methods._bindOutCancel.call(this); } methods._bindOver.call(this); methods._bindClick.call(this); methods._bindOut.call(this); }, _bindClick: function() { var that = this; that.stars.on('click.raty', function(evt) { var execute = true, score = (that.opt.half || that.opt.precision) ? that.self.data('score') : (this.alt || $(this).data('alt')); if (that.opt.click) { execute = that.opt.click.call(that, +score, evt); } if (execute || execute === undefined) { if (that.opt.half && !that.opt.precision) { score = methods._roundHalfScore.call(that, score); } methods._apply.call(that, score); } }); }, _bindClickCancel: function() { var that = this; that.cancel.on('click.raty', function(evt) { that.score.removeAttr('value'); if (that.opt.click) { that.opt.click.call(that, null, evt); } }); }, _bindOut: function() { var that = this; that.self.on('mouseleave.raty', function(evt) { var score = +that.score.val() || undefined; methods._apply.call(that, score); methods._target.call(that, score, evt); methods._resetTitle.call(that); if (that.opt.mouseout) { that.opt.mouseout.call(that, score, evt); } }); }, _bindOutCancel: function() { var that = this; that.cancel.on('mouseleave.raty', function(evt) { var icon = that.opt.cancelOff; if (that.opt.starType !== 'img') { icon = that.opt.cancelClass + ' ' + icon; } methods._setIcon.call(that, this, icon); if (that.opt.mouseout) { var score = +that.score.val() || undefined; that.opt.mouseout.call(that, score, evt); } }); }, _bindOver: function() { var that = this, action = that.opt.half ? 'mousemove.raty' : 'mouseover.raty'; that.stars.on(action, function(evt) { var score = methods._getScoreByPosition.call(that, evt, this); methods._fill.call(that, score); if (that.opt.half) { methods._roundStars.call(that, score, evt); methods._setTitle.call(that, score, evt); that.self.data('score', score); } methods._target.call(that, score, evt); if (that.opt.mouseover) { that.opt.mouseover.call(that, score, evt); } }); }, _bindOverCancel: function() { var that = this; that.cancel.on('mouseover.raty', function(evt) { var starOff = that.opt.path + that.opt.starOff, icon = that.opt.cancelOn; if (that.opt.starType === 'img') { that.stars.attr('src', starOff); } else { icon = that.opt.cancelClass + ' ' + icon; that.stars.attr('class', starOff); } methods._setIcon.call(that, this, icon); methods._target.call(that, null, evt); if (that.opt.mouseover) { that.opt.mouseover.call(that, null); } }); }, _buildScoreField: function() { return $('', { name: this.opt.scoreName, type: 'hidden' }).appendTo(this); }, _createCancel: function() { var icon = this.opt.path + this.opt.cancelOff, cancel = $('<' + this.opt.starType + ' />', { title: this.opt.cancelHint, 'class': this.opt.cancelClass }); if (this.opt.starType === 'img') { cancel.attr({ src: icon, alt: 'x' }); } else { // TODO: use $.data cancel.attr('data-alt', 'x').addClass(icon); } if (this.opt.cancelPlace === 'left') { this.self.prepend(' ').prepend(cancel); } else { this.self.append(' ').append(cancel); } this.cancel = cancel; }, _createScore: function() { var score = $(this.opt.targetScore); this.score = score.length ? score : methods._buildScoreField.call(this); }, _createStars: function() { for (var i = 1; i <= this.opt.number; i++) { var name = methods._nameForIndex.call(this, i), attrs = { alt: i, src: this.opt.path + this.opt[name] }; if (this.opt.starType !== 'img') { attrs = { 'data-alt': i, 'class': attrs.src }; // TODO: use $.data. } attrs.title = methods._getHint.call(this, i); $('<' + this.opt.starType + ' />', attrs).appendTo(this); if (this.opt.space) { this.self.append(i < this.opt.number ? ' ' : ''); } } this.stars = this.self.children(this.opt.starType); }, _error: function(message) { $(this).text(message); $.error(message); }, _fill: function(score) { var hash = 0; for (var i = 1; i <= this.stars.length; i++) { var icon, star = this.stars[i - 1], turnOn = methods._turnOn.call(this, i, score); if (this.opt.iconRange && this.opt.iconRange.length > hash) { var irange = this.opt.iconRange[hash]; icon = methods._getRangeIcon.call(this, irange, turnOn); if (i <= irange.range) { methods._setIcon.call(this, star, icon); } if (i === irange.range) { hash++; } } else { icon = this.opt[turnOn ? 'starOn' : 'starOff']; methods._setIcon.call(this, star, icon); } } }, _getFirstDecimal: function(number) { var decimal = number.toString().split('.')[1], result = 0; if (decimal) { result = parseInt(decimal.charAt(0), 10); if (decimal.slice(1, 5) === '9999') { result++; } } return result; }, _getRangeIcon: function(irange, turnOn) { return turnOn ? irange.on || this.opt.starOn : irange.off || this.opt.starOff; }, _getScoreByPosition: function(evt, icon) { var score = parseInt(icon.alt || icon.getAttribute('data-alt'), 10); if (this.opt.half) { var size = methods._getWidth.call(this), percent = parseFloat((evt.pageX - $(icon).offset().left) / size); score = score - 1 + percent; } return score; }, _getHint: function(score, evt) { if (score !== 0 && !score) { return this.opt.noRatedMsg; } var decimal = methods._getFirstDecimal.call(this, score), integer = Math.ceil(score), group = this.opt.hints[(integer || 1) - 1], hint = group, set = !evt || this.move; if (this.opt.precision) { if (set) { decimal = decimal === 0 ? 9 : decimal - 1; } hint = group[decimal]; } else if (this.opt.halfShow || this.opt.half) { decimal = set && decimal === 0 ? 1 : decimal > 5 ? 1 : 0; hint = group[decimal]; } return hint === '' ? '' : hint || score; }, _getWidth: function() { var width = this.stars[0].width || parseFloat(this.stars.eq(0).css('font-size')); if (!width) { methods._error.call(this, 'Could not get the icon width!'); } return width; }, _lock: function() { var hint = methods._getHint.call(this, this.score.val()); this.style.cursor = ''; this.title = hint; this.score.prop('readonly', true); this.stars.prop('title', hint); if (this.cancel) { this.cancel.hide(); } this.self.data('readonly', true); }, _nameForIndex: function(i) { return this.opt.score && this.opt.score >= i ? 'starOn' : 'starOff'; }, _resetTitle: function(star) { for (var i = 0; i < this.opt.number; i++) { this.stars[i].title = methods._getHint.call(this, i + 1); } }, _roundHalfScore: function(score) { var integer = parseInt(score, 10), decimal = methods._getFirstDecimal.call(this, score); if (decimal !== 0) { decimal = decimal > 5 ? 1 : 0.5; } return integer + decimal; }, _roundStars: function(score, evt) { var decimal = (score % 1).toFixed(2), name ; if (evt || this.move) { name = decimal > 0.5 ? 'starOn' : 'starHalf'; } else if (decimal > this.opt.round.down) { // Up: [x.76 .. x.99] name = 'starOn'; if (this.opt.halfShow && decimal < this.opt.round.up) { // Half: [x.26 .. x.75] name = 'starHalf'; } else if (decimal < this.opt.round.full) { // Down: [x.00 .. x.5] name = 'starOff'; } } if (name) { var icon = this.opt[name], star = this.stars[Math.ceil(score) - 1]; methods._setIcon.call(this, star, icon); } // Full down: [x.00 .. x.25] }, _setIcon: function(star, icon) { try {//ACE star[this.opt.starType === 'img' ? 'src' : 'className'] = this.opt.path + icon; } catch(e) {} }, _setTarget: function(target, score) { if (score) { score = this.opt.targetFormat.toString().replace('{score}', score); } if (target.is(':input')) { target.val(score); } else { target.html(score); } }, _setTitle: function(score, evt) { if (score) { var integer = parseInt(Math.ceil(score), 10), star = this.stars[integer - 1]; star.title = methods._getHint.call(this, score, evt); } }, _target: function(score, evt) { if (this.opt.target) { var target = $(this.opt.target); if (!target.length) { methods._error.call(this, 'Target selector invalid or missing!'); } var mouseover = evt && evt.type === 'mouseover'; if (score === undefined) { score = this.opt.targetText; } else if (score === null) { score = mouseover ? this.opt.cancelHint : this.opt.targetText; } else { if (this.opt.targetType === 'hint') { score = methods._getHint.call(this, score, evt); } else if (this.opt.precision) { score = parseFloat(score).toFixed(1); } var mousemove = evt && evt.type === 'mousemove'; if (!mouseover && !mousemove && !this.opt.targetKeep) { score = this.opt.targetText; } } methods._setTarget.call(this, target, score); } }, _turnOn: function(i, score) { return this.opt.single ? (i === score) : (i <= score); }, _unlock: function() { this.style.cursor = 'pointer'; this.removeAttribute('title'); this.score.removeAttr('readonly'); this.self.data('readonly', false); for (var i = 0; i < this.opt.number; i++) { this.stars[i].title = methods._getHint.call(this, i + 1); } if (this.cancel) { this.cancel.css('display', ''); } }, cancel: function(click) { return this.each(function() { var self = $(this); if (self.data('readonly') !== true) { methods[click ? 'click' : 'score'].call(self, null); this.score.removeAttr('value'); } }); }, click: function(score) { return this.each(function() { if ($(this).data('readonly') !== true) { score = methods._adjustedScore.call(this, score); methods._apply.call(this, score); if (this.opt.click) { this.opt.click.call(this, score, $.Event('click')); } methods._target.call(this, score); } }); }, destroy: function() { return this.each(function() { var self = $(this), raw = self.data('raw'); if (raw) { self.off('.raty').empty().css({ cursor: raw.style.cursor }).removeData('readonly'); } else { self.data('raw', self.clone()[0]); } }); }, getScore: function() { var score = [], value ; this.each(function() { value = this.score.val(); score.push(value ? +value : undefined); }); return (score.length > 1) ? score : score[0]; }, move: function(score) { return this.each(function() { var integer = parseInt(score, 10), decimal = methods._getFirstDecimal.call(this, score); if (integer >= this.opt.number) { integer = this.opt.number - 1; decimal = 10; } var width = methods._getWidth.call(this), steps = width / 10, star = $(this.stars[integer]), percent = star.offset().left + steps * decimal, evt = $.Event('mousemove', { pageX: percent }); this.move = true; star.trigger(evt); this.move = false; }); }, readOnly: function(readonly) { return this.each(function() { var self = $(this); if (self.data('readonly') !== readonly) { if (readonly) { self.off('.raty').children('img').off('.raty'); methods._lock.call(this); } else { methods._binds.call(this); methods._unlock.call(this); } self.data('readonly', readonly); } }); }, reload: function() { return methods.set.call(this, {}); }, score: function() { var self = $(this); return arguments.length ? methods.setScore.apply(self, arguments) : methods.getScore.call(self); }, set: function(options) { return this.each(function() { $(this).raty($.extend({}, this.opt, options)); }); }, setScore: function(score) { return this.each(function() { if ($(this).data('readonly') !== true) { score = methods._adjustedScore.call(this, score); methods._apply.call(this, score); methods._target.call(this, score); } }); } }; $.fn.raty = function(method) { if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof method === 'object' || !method) { return methods.init.apply(this, arguments); } else { $.error('Method ' + method + ' does not exist!'); } }; $.fn.raty.defaults = { cancel : false, cancelClass : 'raty-cancel', cancelHint : 'Cancel this rating!', cancelOff : 'cancel-off.png', cancelOn : 'cancel-on.png', cancelPlace : 'left', click : undefined, half : false, halfShow : true, hints : ['bad', 'poor', 'regular', 'good', 'gorgeous'], iconRange : undefined, mouseout : undefined, mouseover : undefined, noRatedMsg : 'Not rated yet!', number : 5, numberMax : 20, path : undefined, precision : false, readOnly : false, round : { down: 0.25, full: 0.6, up: 0.76 }, score : undefined, scoreName : 'score', single : false, space : true, starHalf : 'star-half.png', starOff : 'star-off.png', starOn : 'star-on.png', starType : 'img', target : undefined, targetFormat : '{score}', targetKeep : false, targetScore : undefined, targetText : '', targetType : 'hint' }; })(jQuery);