﻿(function($) {
	$(function() {
		var t = $("<span/>").css({ display: "none", width: "auto", whiteSpace: "nowrap" }).appendTo($("body"));
		$.fn.autoSizeTextBox = function(o) {
			return this.filter("input:text,input:password").each(function() {
				var o = $(this); o.data("initialWidth", o.width()); 
			}).bind("change keyup keydown", function() {
				var e = $(this), c = {};
				for (var i = 0, n = ["fontFamily", "fontStyle", "fontSize", "fontVariant", "fontWeight", "letterSpacing"]; i < n.length; i++) {
					var s = n[i];
					c[s] = e.css(s);
				}
				e.width(Math.min(Math.max(t.css(c).text(e.val()).width() + (o.extra || 0), o.min || e.data("initialWidth") || 0), o.max || Number.MAX_VALUE));
			});
		};
	});
})(jQuery);