mise a jour pour mtweb.0.9.0
[mw_pages] / app / out / default / tiny_mce / plugins / tabfocus / editor_plugin_src.js
diff --git a/app/out/default/tiny_mce/plugins/tabfocus/editor_plugin_src.js b/app/out/default/tiny_mce/plugins/tabfocus/editor_plugin_src.js
new file mode 100644 (file)
index 0000000..c2be2f4
--- /dev/null
@@ -0,0 +1,112 @@
+/**\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