(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;
while (e = nextElement(e)) try { e.focus(); break; } catch (err) {;}
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) &&
! (n.disabled) &&
! ('none' == document.defaultView.getComputedStyle( e, null ).display )
) return n;
}
return null;
}
)
);