(function($){
	$(document).ready(function(){
		
		//Limit inputs
		var class_delimiter = 'limit-at-';
		var class_delimiter_length = class_delimiter.length;
		$('.limit-chars').each(function(){
			var classNames = $(this).attr('class').split(' ');
			var className;
			var wrapper;
			var limit = 0;
			for(var i = 0, c = classNames.length; i < c; ++i){
				className = classNames[i];
				if( className.substr(0, class_delimiter_length) == class_delimiter ){
					limit = parseInt(className.substr(class_delimiter_length));
					wrapper = document.createElement('div');
					if( limit - $(this).val().length < 1 ){
						$(this).val( $(this).val().substr(0, limit) );
						}
					$(wrapper).html( '<span>' + (limit - $(this).val().length > 0 ? limit - $(this).val().length : 0) + '</span> characters remaining' ).addClass('limit-wrapper '+ this.type);
					$(this).parent().append(wrapper)
					
					$(this).keyup(function(){
						$('span', wrapper).html( limit - $(this).val().length > 0 ? limit - $(this).val().length : 0 );
						if( limit - $(this).val().length < 1 ){
							$(this).val( $(this).val().substr(0, limit) );
							return false;
							}
						else
							return true;
					}).focus(function(){ $(wrapper).addClass('focused'); }).blur(function(){ $(wrapper).removeClass('focused'); });
					break;
					}
				}
			
		});
		
		
	});
})(jQuery);