+++ /dev/null
-/**\r
- * editor_plugin_src.js\r
- *\r
- * Copyright 2009, Moxiecode Systems AB\r
- * Released under LGPL License.\r
- *\r
- * License: http://tinymce.moxiecode.com/license\r
- * Contributing: http://tinymce.moxiecode.com/contributing\r
- */\r
-\r
-(function() {\r
- var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode;\r
-\r
- tinymce.create('tinymce.plugins.TabFocusPlugin', {\r
- init : function(ed, url) {\r
- function tabCancel(ed, e) {\r
- if (e.keyCode === 9)\r
- return Event.cancel(e);\r
- };\r
-\r
- function tabHandler(ed, e) {\r
- 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
- }\r
- }\r
-\r
- return null;\r
- };\r
-\r
- if (e.keyCode === 9) {\r
- v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next')));\r
-\r
- if (v.length == 1) {\r
- v[1] = v[0];\r
- v[0] = ':prev';\r
- }\r
-\r
- // Find element to focus\r
- if (e.shiftKey) {\r
- if (v[0] == ':prev')\r
- el = find(-1);\r
- else\r
- el = DOM.get(v[0]);\r
- } else {\r
- if (v[1] == ':next')\r
- el = find(1);\r
- else\r
- el = DOM.get(v[1]);\r
- }\r
-\r
- if (el) {\r
- if (ed = tinymce.get(el.id || el.name))\r
- ed.focus();\r
- else\r
- window.setTimeout(function() {window.focus();el.focus();}, 10);\r
-\r
- return Event.cancel(e);\r
- }\r
- }\r
- };\r
-\r
- ed.onKeyUp.add(tabCancel);\r
-\r
- if (tinymce.isGecko) {\r
- ed.onKeyPress.add(tabHandler);\r
- ed.onKeyDown.add(tabCancel);\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
- return {\r
- longname : 'Tabfocus',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin);\r
-})();
\ No newline at end of file