(function (Listener) {
document. addEventListener(
'keypress', Listener, false);
addEventListener(
'unload', function () {
document. removeEventListener (
'keypress', Listener, false);
removeEventListener (
'unload', arguments.callee, false);
}, false);
})(
(function (nextElement) {
return function (evt) {
var e = evt. target ;
var keyCode = evt. which ;
var shift = evt.shiftKey;
if (/INPUT|TEXTAREA|SELECT/.test(e.nodeName)) {
if (27 === keyCode) e.blur();
if (13 === keyCode) {
if ('INPUT' === e.nodeName && /submit|reset|button/.test(e.type) && shift) return;
if ('TEXTAREA' === e.nodeName && !shift) return;
if (e = nextElement(e)) e.focus();
evt. preventDefault() ;
}
}
};
})(
function (n) {
var e;
while (n) {
e = n.firstChild || n.nextSibling;
if (! e) {
do {
if (! (n = n.parentNode)) return null;
} while (! (e = n.nextSibling))
}
n = e;
if (1 === n.nodeType &&
/INPUT|SELECT|TEXTAREA/.test(n.nodeName) &&
! ('INPUT' == n.nodeName && 'hidden' == n.type)
) return n;
}
return null;
}
)
);