var downcount = {
	display: function ()
    {
    	var count = downcount.calculate_count(this);
    	$(this).parents('.control').find('em').css('color', downcount.color(count)).show().text(count);
    },
    hide: function ()
    {
    	$(this).parents('.control').find('em').hide();
    },
    key: function ()
    {
    	var count = downcount.calculate_count(this);
    	$(this).parents('.control').find('em').css('color', downcount.color(count)).text(count);
    },
    color: function (count)
    {
    	if (count <= 1) { return '#762a2d'; }
    	if (count < 10) { return '#ae3e42'; }
    	if (count < 30) { return '#da4e54'; }
    	return null;
    },
    calculate_count: function (input)
    {
    	var max = $(input).attr('maxlength') || 255;
    	var len = $(input).val().length;
    	return max - len;
    }
};

$(function ()
{
	$('input', '.neat-form')
		.bind('focus', downcount.display)
		.bind('blur', downcount.hide)
		.bind('keypress', downcount.key)
		.bind('keyup', downcount.key);
});
