+function stopEv(ev) {
+ ev.returnValue = false;
+ ev.cancelBubble = true;
+ if(ev.preventDefault) ev.preventDefault();
+ return false;
+}
+/*
+ Modified accesskey system. While Alt key is pressed letter keys moves
+ focus to next marked link. Alt key release activates focused link.
+*/
+function setHotKeys() {
+ document.onkeydown = function(ev) {
+ ev = ev||window.event;
+ key = ev.keyCode||ev.which;
+ if (key == 18 && !ev.ctrlKey) { // start selection, skip Win AltGr
+ _hotkeys.alt = true;
+ _hotkeys.focus = -1;
+ return stopEv(ev);
+ } else
+ if (key == 27) { // cancel selection
+ _hotkeys.alt = false;
+ _hotkeys.focus = -1;
+ return stopEv(ev);
+ }
+ else if (_hotkeys.alt && ((key>47 && key<58) || (key>64 && key<91))) {
+ var n = _hotkeys.focus;
+ var l = document.links;
+ var cnt = l.length;
+ key = String.fromCharCode(key);
+ for (var i=0; i<cnt; i++) {
+ n = (n+1)%cnt;
+ // check also if the link is visible
+ if (l[n].accessKey==key && l[n].scrollWidth) {
+ _hotkeys.focus = n;
+ // The timeout is needed to prevent unpredictable behaviour on IE.
+ var tmp = function() {document.links[_hotkeys.focus].focus();};
+ setTimeout(tmp, 0);
+ break;
+ }
+ }
+ return stopEv(ev);
+ }
+ return true;
+ };
+ document.onkeyup = function(ev) {
+ if (_hotkeys.alt==true) {
+ ev = ev||window.event;
+ key = ev.keyCode||ev.which;