jQuery.fn.counter = function() {
	
	jQuery(this).each(function() {

		var that 		= jQuery(this);
		var max 		= that.attr('maxlength');
		var val;
		val = that.val();

    	var cur = 0;
    	if(val) cur = val.length;
	
    	var left = max-cur;

		that.after('<div class="counter">' + left.toString()+' characters remaining.</div>');

    	var c = that.next(".counter");
		var threshhold 	= max;
		
		if (that.attr('threshold')) {
			c.css('display', 'none');
			threshold = that.attr('threshold');
		}

    	that.bind('input paste', function(i) {
			
			var that 		= jQuery(this);					  
      		var max = that.attr('maxlength');
      		var val = that.attr('value');
      		var cur = 0;
      		if (val) cur = val.length;

      		var left = max-cur;
      		that.next(".counter").text(left.toString() + ' characters remaining.');

			if (left <= threshold) that.next(".counter").css('display', 'block');
			else that.next(".counter").css('display', 'none');

			if (left < 1) {
				var string = that.val();
				that.val(string.substr(0, max -1));
				//if (that.scrollHeight) 
				that.scrollTop(999999);// that.scrollHeight;
				
			//	alert(that.height());
				//alert(that.scrollHeight());
			}

      		return this;
    	});
  	});
  	return this;
}
