Updated tiny-mce to most recent 3.4 version
[citadel.git] / webcit / tiny_mce / plugins / wordcount / editor_plugin_src.js
index e94743bae1abb7c5c7d0b98420cd5edfcb35f97e..34b265553f30f107cb42dc5df0a14bff7a185194 100644 (file)
                cleanre : null,\r
 \r
                init : function(ed, url) {\r
-                       var t = this, last = 0;\r
+                       var t = this, last = 0, VK = tinymce.VK;\r
 \r
                        t.countre = ed.getParam('wordcount_countregex', /[\w\u2019\'-]+/g); // u2019 == ’\r
                        t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);\r
+                       t.update_rate = ed.getParam('wordcount_update_rate', 2000);\r
+                       t.update_on_delete = ed.getParam('wordcount_update_on_delete', false);\r
                        t.id = ed.id + '-word-count';\r
 \r
                        ed.onPostRender.add(function(ed, cm) {\r
                                t._count(ed);\r
                        });\r
 \r
-                       ed.onKeyUp.add(function(ed, e) {\r
-                               if (e.keyCode == last)\r
-                                       return;\r
+                       function checkKeys(key) {\r
+                               return key !== last && (key === VK.ENTER || last === VK.SPACEBAR || checkDelOrBksp(last));\r
+                       }\r
+\r
+                       function checkDelOrBksp(key) {\r
+                               return key === VK.DELETE || key === VK.BACKSPACE;\r
+                       }\r
 \r
-                               if (13 == e.keyCode || 8 == last || 46 == last)\r
+                       ed.onKeyUp.add(function(ed, e) {\r
+                               if (checkKeys(e.keyCode) || t.update_on_delete && checkDelOrBksp(e.keyCode)) {\r
                                        t._count(ed);\r
+                               }\r
 \r
                                last = e.keyCode;\r
                        });\r
                                if (!ed.destroyed) {\r
                                        var tc = t._getCount(ed);\r
                                        tinymce.DOM.setHTML(t.id, tc.toString());\r
-                                       setTimeout(function() {t.block = 0;}, 2000);\r
+                                       setTimeout(function() {t.block = 0;}, t.update_rate);\r
                                }\r
                        }, 1);\r
                },\r