/*
* jQuery Simply Countable plugin
* Provides a character counter for any text input or textarea
* 
* @version  0.2
* @homepage http://github.com/aaronrussell/jquery-simply-countable/
* @author   Aaron Russell (http://www.aaronrussell.co.uk)
*
* Copyright (c) 2009 Aaron Russell (aaron@gc4.co.uk)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*/

(function(a) { a.fn.simplyCountable = function(c) { c = a.extend({ counter: "#counter", countType: "characters", maxCount: 140, countDirection: "down", safeClass: "safe", overClass: "over" }, c); var d = this; var b = function() { if (c.countType === "words") { var e = c.maxCount - d.val().split(/[\s]+/).length; if (d.val() === "") { e += 1 } } else { var e = c.maxCount - d.val().length } if (!a(c.counter).hasClass(c.safeClass) && !a(c.counter).hasClass(c.overClass)) { if (e < 0) { a(c.counter).addClass(c.overClass) } else { a(c.counter).addClass(c.safeClass) } } else { if (e < 0 && a(c.counter).hasClass(c.safeClass)) { a(c.counter).removeClass(c.safeClass).addClass(c.overClass) } else { if (e >= 0 && a(c.counter).hasClass(c.overClass)) { a(c.counter).removeClass(c.overClass).addClass(c.safeClass) } } } if (c.countDirection === "up") { e = e - (e * 2) + c.maxCount } a(c.counter).text(e) }; b(); d.keyup(b); d.change(b); } })(jQuery);