function allFormsEnterAsTab() {
	for (var i = 0; i < document.forms.length; i++) {
		var form = document.forms[i];
		enterAsTab(form);
	}
}

function enterAsTab(form) {
	addEvent(form, "keypress", enterAsTabHandler);
};

function addEvent(obj, type, fn) {
	if (obj.attachEvent) {
		obj['e' + type + fn] = fn;
		obj[type+fn] = function() { obj['e' + type + fn] (window.event); }
		obj.attachEvent('on' + type, obj[type + fn]);
	} else
		obj.addEventListener(type, fn, false);
}

function removeEvent(obj, type, fn) {
	if (obj.detachEvent) {
		obj.detachEvent('on' + type, obj[type + fn]);
		obj[type + fn] = null;
	} else
		obj.removeEventListener(type, fn, false);
}

function enterAsTabHandler(evt) {
	var l, i, f, j;
	if (!evt)
		evt = window.event;
	var target = evt.target ? evt.target : evt.srcElement;
	var form = target.form;
	if (form) {
		var key = evt.which || evt.keyCode;
		if (key == 13) {
			for (i = l = (f = form.elements).length; f[--i] != target;);
			for (j = i; (j = (j + 1) % l) != i && (!f[j].type || f[j].disabled || f[j].readOnly || f[j].type.toLowerCase() == "hidden"););
			if (j != i)
				f[j].focus();
			if (evt.preventDefault)
				evt.preventDefault(); // all Browsers except...
			else
				evt.returnValue = false; // ...IE
			return false;
		}
	}
}
