Began removing $Id$ tags. This will be an ongoing process.
[citadel.git] / webcit / tiny_mce / plugins / pagebreak / editor_plugin_src.js
1 /*\r
2  * Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
3  */\r
4 \r
5 (function() {\r
6         tinymce.create('tinymce.plugins.PageBreakPlugin', {\r
7                 init : function(ed, url) {\r
8                         var pb = '<img src="' + url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;\r
9 \r
10                         pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');\r
11 \r
12                         // Register commands\r
13                         ed.addCommand('mcePageBreak', function() {\r
14                                 ed.execCommand('mceInsertContent', 0, pb);\r
15                         });\r
16 \r
17                         // Register buttons\r
18                         ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});\r
19 \r
20                         ed.onInit.add(function() {\r
21                                 if (ed.settings.content_css !== false)\r
22                                         ed.dom.loadCSS(url + "/css/content.css");\r
23 \r
24                                 if (ed.theme.onResolveName) {\r
25                                         ed.theme.onResolveName.add(function(th, o) {\r
26                                                 if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))\r
27                                                         o.name = 'pagebreak';\r
28                                         });\r
29                                 }\r
30                         });\r
31 \r
32                         ed.onClick.add(function(ed, e) {\r
33                                 e = e.target;\r
34 \r
35                                 if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))\r
36                                         ed.selection.select(e);\r
37                         });\r
38 \r
39                         ed.onNodeChange.add(function(ed, cm, n) {\r
40                                 cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));\r
41                         });\r
42 \r
43                         ed.onBeforeSetContent.add(function(ed, o) {\r
44                                 o.content = o.content.replace(pbRE, pb);\r
45                         });\r
46 \r
47                         ed.onPostProcess.add(function(ed, o) {\r
48                                 if (o.get)\r
49                                         o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
50                                                 if (im.indexOf('class="mcePageBreak') !== -1)\r
51                                                         im = sep;\r
52 \r
53                                                 return im;\r
54                                         });\r
55                         });\r
56                 },\r
57 \r
58                 getInfo : function() {\r
59                         return {\r
60                                 longname : 'PageBreak',\r
61                                 author : 'Moxiecode Systems AB',\r
62                                 authorurl : 'http://tinymce.moxiecode.com',\r
63                                 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',\r
64                                 version : tinymce.majorVersion + "." + tinymce.minorVersion\r
65                         };\r
66                 }\r
67         });\r
68 \r
69         // Register plugin\r
70         tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);\r
71 })();\r