AC_4897, AC_4898, AC_4899: Multifile uploader fixes.
[acontent.git] / include / jscripts / tiny_mce / plugins / xhtmlxtras / editor_plugin_src.js
1 /**\r
2  * editor_plugin_src.js\r
3  *\r
4  * Copyright 2009, Moxiecode Systems AB\r
5  * Released under LGPL License.\r
6  *\r
7  * License: http://tinymce.moxiecode.com/license\r
8  * Contributing: http://tinymce.moxiecode.com/contributing\r
9  */\r
10 \r
11 (function() {\r
12         tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {\r
13                 init : function(ed, url) {\r
14                         // Register commands\r
15                         ed.addCommand('mceCite', function() {\r
16                                 ed.windowManager.open({\r
17                                         file : url + '/cite.htm',\r
18                                         width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),\r
19                                         height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),\r
20                                         inline : 1\r
21                                 }, {\r
22                                         plugin_url : url\r
23                                 });\r
24                         });\r
25 \r
26                         ed.addCommand('mceAcronym', function() {\r
27                                 ed.windowManager.open({\r
28                                         file : url + '/acronym.htm',\r
29                                         width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
30                                         height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
31                                         inline : 1\r
32                                 }, {\r
33                                         plugin_url : url\r
34                                 });\r
35                         });\r
36 \r
37                         ed.addCommand('mceAbbr', function() {\r
38                                 ed.windowManager.open({\r
39                                         file : url + '/abbr.htm',\r
40                                         width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
41                                         height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
42                                         inline : 1\r
43                                 }, {\r
44                                         plugin_url : url\r
45                                 });\r
46                         });\r
47 \r
48                         ed.addCommand('mceDel', function() {\r
49                                 ed.windowManager.open({\r
50                                         file : url + '/del.htm',\r
51                                         width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
52                                         height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
53                                         inline : 1\r
54                                 }, {\r
55                                         plugin_url : url\r
56                                 });\r
57                         });\r
58 \r
59                         ed.addCommand('mceIns', function() {\r
60                                 ed.windowManager.open({\r
61                                         file : url + '/ins.htm',\r
62                                         width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
63                                         height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
64                                         inline : 1\r
65                                 }, {\r
66                                         plugin_url : url\r
67                                 });\r
68                         });\r
69 \r
70                         ed.addCommand('mceAttributes', function() {\r
71                                 ed.windowManager.open({\r
72                                         file : url + '/attributes.htm',\r
73                                         width : 380,\r
74                                         height : 370,\r
75                                         inline : 1\r
76                                 }, {\r
77                                         plugin_url : url\r
78                                 });\r
79                         });\r
80 \r
81                         // Register buttons\r
82                         ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});\r
83                         ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});\r
84                         ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});\r
85                         ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});\r
86                         ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});\r
87                         ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});\r
88 \r
89                         if (tinymce.isIE) {\r
90                                 function fix(ed, o) {\r
91                                         if (o.set) {\r
92                                                 o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');\r
93                                                 o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');\r
94                                         }\r
95                                 };\r
96 \r
97                                 ed.onBeforeSetContent.add(fix);\r
98                                 ed.onPostProcess.add(fix);\r
99                         }\r
100 \r
101                         ed.onNodeChange.add(function(ed, cm, n, co) {\r
102                                 n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');\r
103 \r
104                                 cm.setDisabled('cite', co);\r
105                                 cm.setDisabled('acronym', co);\r
106                                 cm.setDisabled('abbr', co);\r
107                                 cm.setDisabled('del', co);\r
108                                 cm.setDisabled('ins', co);\r
109                                 cm.setDisabled('attribs', n && n.nodeName == 'BODY');\r
110                                 cm.setActive('cite', 0);\r
111                                 cm.setActive('acronym', 0);\r
112                                 cm.setActive('abbr', 0);\r
113                                 cm.setActive('del', 0);\r
114                                 cm.setActive('ins', 0);\r
115 \r
116                                 // Activate all\r
117                                 if (n) {\r
118                                         do {\r
119                                                 cm.setDisabled(n.nodeName.toLowerCase(), 0);\r
120                                                 cm.setActive(n.nodeName.toLowerCase(), 1);\r
121                                         } while (n = n.parentNode);\r
122                                 }\r
123                         });\r
124 \r
125                         ed.onPreInit.add(function() {\r
126                                 // Fixed IE issue where it can't handle these elements correctly\r
127                                 ed.dom.create('abbr');\r
128                         });\r
129                 },\r
130 \r
131                 getInfo : function() {\r
132                         return {\r
133                                 longname : 'XHTML Xtras Plugin',\r
134                                 author : 'Moxiecode Systems AB',\r
135                                 authorurl : 'http://tinymce.moxiecode.com',\r
136                                 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',\r
137                                 version : tinymce.majorVersion + "." + tinymce.minorVersion\r
138                         };\r
139                 }\r
140         });\r
141 \r
142         // Register plugin\r
143         tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);\r
144 })();