(function($){

	/* Tiny jQuery plugin which puts counters on textareas, letting
	   user know how much they've typed so far (or how many characters they can
	   still type - depending on the reverseCount parameter)

	   Note: jQuery-1.2.3 or later required.
	   */
 	jQuery.fn.extend({

		//pass the options variable to the function
 		wordCount: function(options) {

			//Set the default values, use comma to separate the settings
			var defaults = {
				counterElement: "display_count", /* class of the element that will be updated with the count */
				maxLength: 500, /* maximum allowed number of characters in the textarea */
				reverseCount: true, /* count backwards starting from maxLength? */
				errorMsg: "Your text contains too many characters" /* message to display if maxcount has been surpassed */
			}
			// update defaults with any options specified at initialization
			var options =  $.extend(defaults, options);

    		return this.each(function() {

				var $area = $(this).find('textarea');
				var $counter = $(this).find('.' + options.counterElement);
				var total_words;

				var do_count = function(maxLength, total){
					if(options.reverseCount) {
						var chars_left = maxLength - total;
						if(chars_left > 0) {
							$counter.html(chars_left);
						} else {
							$counter.html("<span class='error'>" + options.errorMsg + "</span>");
						}
					} else {
						$counter.html(total);
					}
				}

				total_words = $area.attr('value') ? $area.attr('value').length : 0;
				do_count(options.maxLength, total_words);

				//for each keypress function on text areas
				$area.keyup(function()
				{
					total_words = $area.attr('value') ? $area.attr('value').length : 0;
					do_count(options.maxLength, total_words);
				});

    		}); // this.each
    	}
	});

	var initialize_counters = function() {

		// textarea plugin initialization
		jQuery('.textarea_container').wordCount({
			counterElement:"counter",
			maxLength:400
		});
    };

    jQuery(document).ready(initialize_counters);

})(jQuery);
