(function($) {	$.fn.autotab = function(options) {		var defaults = {			format: 'all',			maxlength: 2147483647,			uppercase: false,			lowercase: false,			nospace: false,			target: null,			previous: null		};		$.extend(defaults, options);		var check_element = function(name) {			var val = null;			var check_id = $('#' + name)[0];			var check_name = $('input[name=' + name + ']')[0];			if (check_id != undefined) val = $(check_id);			else if (check_name != undefined) val = $(check_name);			return val;		};		var key = function(e) {			if (!e) e = window.event;			return e.keyCode;		};		if (typeof defaults.target == 'string') defaults.target = check_element(defaults.target);		if (typeof defaults.previous == 'string') defaults.previous = check_element(defaults.previous);		var maxlength = $(this).attr('maxlength');		if (defaults.maxlength == 2147483647 && maxlength != 2147483647) defaults.maxlength = maxlength;		else if (defaults.maxlength > 0) $(this).attr('maxlength', defaults.maxlength);		else defaults.target = null;		if ($.browser.msie) {			this.keydown(function(e) {				if (key(e) == 8) {					var val = this.value;					if (val.length == 0 && defaults.previous) {						this.blur();						defaults.previous.focus();					}				}			});		}		return this.keypress(function(e) {			if (key(e) == 8) {				var val = this.value;				if (val.length == 0 && defaults.previous) {					this.blur();					defaults.previous.focus();				}			}		}).keyup(function(e) {			var val = this.value;			switch (defaults.format) {				case 'text':					var pattern = new RegExp('[0-9]+', 'g');					var val = val.replace(pattern, '');					break;				case 'alpha':					var pattern = new RegExp('[^a-zA-Z]+', 'g');					var val = val.replace(pattern, '');					break;				case 'number':				case 'numeric':					var pattern = new RegExp('[^0-9]+', 'g');					var val = val.replace(pattern, '');					break;				case 'alphanumeric':					var pattern = new RegExp('[^0-9a-zA-Z]+', 'g');					var val = val.replace(pattern, '');					break;				case 'all':				default:					break;			}			if (defaults.nospace) {				pattern = new RegExp('[ ]+', 'g');				val = val.replace(pattern, '');			}			if (defaults.uppercase) val = val.toUpperCase();			if (defaults.lowercase) val = val.toLowerCase();			this.value = val;			var keys = [8, 9, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 144, 145];			var string = keys.toString();			if (string.indexOf(key(e)) == -1 && val.length == defaults.maxlength && defaults.target) {				this.blur();				defaults.target.focus();			}		});	};})(jQuery);