/*
 * Usage:
 *   counter_element.linqia_remaining_words_counter((element)monitored_input_field, (int)max_number_of_words);
 */
jQuery.fn.linqia_remaining_words_counter = function(input_field, max_number_of_words, options) {
  var counterEl = jQuery(this);
  var options = options || {};

  if (input_field) {
    input_field.keyup(function(e) {
      var words = $(this).val().match(/[^ ,;._\r\n-]+/g);
      var len = words ? words.length : 0;

      if (len > max_number_of_words) {
        var reduced_words = $(this).val().match(/[^ ,;._\r\n-]+[ ,;._\r\n-]+/g);
        $(this).val(reduced_words.slice(0,max_number_of_words).join(''));
        counterEl.val(0);
      }
      else {
        counterEl.val(max_number_of_words - len);
      }
    });
  }
  else if (typeof console != 'undefined') {
    console.log("Couldn't find $.linqia_remaining_words_counter TEXTAREA.");
  }

  return jQuery(this);
}

