1
0
mirror of https://github.com/wbbaddons/Tims-Chat.git synced 2024-10-31 14:10:08 +00:00
Tims-Chat/file/js/jCounter.jQuery.coffee

48 lines
1.3 KiB
CoffeeScript
Raw Normal View History

2011-12-19 16:36:05 +00:00
###
# jCounter - a simple character counter
#
# @author Maximilian Mader
# @copyright 2011 Maximilian Mader
# @license Creative Commons Attribution-NonCommercial-ShareAlike <http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode>
# @package jQuery.jCounter
###
(($) ->
$.fn.jCounter = (container, options) ->
2011-12-19 16:36:05 +00:00
options = $.extend
max: 0
2012-02-05 16:21:43 +00:00
counterClass: 'jsCounter'
2011-12-19 16:36:05 +00:00
countUp: false
, options
if this.attr('maxlength')
max = this.attr('maxlength')
else max = options.max
2011-12-19 16:36:05 +00:00
if !container
2012-02-05 16:21:43 +00:00
this.wrap('<div class="jsCounterContainer"><div></div></div>').parent().append('<div class="' + options.counterClass + ' color-1">' + max + '</div>');
jCounterContainer = $(this).parent().children('.' + options.counterClass)
else
2011-12-27 10:51:43 +00:00
if typeof container is 'object'
jCounterContainer = container
else
jCounterContainer = $ container
this.on 'keypress keyup', $.proxy () ->
2011-12-19 16:36:05 +00:00
if options.countUp
length = this.val().length
else
length = max - this.val().length
2011-12-19 16:36:05 +00:00
if options.countUp
color = 1
else
if length > max / 2
2011-12-19 16:36:05 +00:00
color = 1
else if length <= max / 2 and length >= max / 6
2011-12-19 16:36:05 +00:00
color = 2
else
color = 3
jCounterContainer.text(length).attr('class', '').addClass(options.counterClass + ' color-'+color)
, this
)(jQuery)