var x, i, f, el, v;\r
\r
function find(d) {\r
- f = DOM.getParent(ed.id, 'form');\r
- el = f.elements;\r
-\r
- if (f) {\r
- each(el, function(e, i) {\r
- if (e.id == ed.id) {\r
- x = i;\r
- return false;\r
- }\r
- });\r
-\r
- if (d > 0) {\r
- for (i = x + 1; i < el.length; i++) {\r
- if (el[i].type != 'hidden')\r
- return el[i];\r
- }\r
- } else {\r
- for (i = x - 1; i >= 0; i--) {\r
- if (el[i].type != 'hidden')\r
- return el[i];\r
- }\r
+ el = DOM.select(':input:enabled,*[tabindex]');\r
+ function canSelect(e) {\r
+ return e.type != 'hidden' && \r
+ e.tabIndex != '-1' && \r
+ !(el[i].style.display == "none") && \r
+ !(el[i].style.visibility == "hidden");\r
+ }\r
+\r
+ each(el, function(e, i) {\r
+ if (e.id == ed.id) {\r
+ x = i;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ if (d > 0) {\r
+ for (i = x + 1; i < el.length; i++) {\r
+ if (canSelect(el[i]))\r
+ return el[i];\r
+ }\r
+ } else {\r
+ for (i = x - 1; i >= 0; i--) {\r
+ if (canSelect(el[i]))\r
+ return el[i];\r
}\r
}\r
\r
}\r
\r
if (el) {\r
- if (ed = tinymce.get(el.id || el.name))\r
+ if (el.id && (ed = tinymce.get(el.id || el.name)))\r
ed.focus();\r
else\r
- window.setTimeout(function() {window.focus();el.focus();}, 10);\r
+ window.setTimeout(function() {\r
+ if (!tinymce.isWebKit)\r
+ window.focus();\r
+ el.focus();\r
+ }, 10);\r
\r
return Event.cancel(e);\r
}\r
} else\r
ed.onKeyDown.add(tabHandler);\r
\r
- ed.onInit.add(function() {\r
- each(DOM.select('a:first,a:last', ed.getContainer()), function(n) {\r
- Event.add(n, 'focus', function() {ed.focus();});\r
- });\r
- });\r
},\r
\r
getInfo : function() {\r