$(document).ready(function()
{
	$('.count').each(function()
	{
		var textarea = $(this).parent('span').prev('textarea');

		updateLimit(textarea, this);
	});

	$('textarea').keyup(function()
	{
		var countElem = $(this).next('span').children("ins");

		updateLimit(this, countElem);
	});
});

function updateLimit(textarea, countElem)
{
	var maxLength = parseInt($(countElem).attr('title'));
	var charRemaining = maxLength - $(textarea).val().length;
	var end = '';
	var beginning = '';

	if (charRemaining < 0)
	{
		beginning = 'You are ';
		end = (charRemaining == 1) ? ' character over the limit.' : ' characters over the limit.';
		charRemaining = Math.abs(charRemaining);
		$(countElem).addClass('overlimit');
	}
	else
	{
		beginning = 'You have ';
		end = (charRemaining == 1) ? ' character remaining.' : ' characters remaining.';
		$(countElem).removeClass('overlimit');
	}

	$(countElem).html(beginning + charRemaining + end);
}
