* upgraded new version of tiny_mce
[citadel.git] / webcit / tiny_mce / plugins / xhtmlxtras / js / attributes.js
1  /**\r
2  * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
3  *\r
4  * @author Moxiecode - based on work by Andrew Tetlaw\r
5  * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.\r
6  */\r
7 \r
8 function init() {\r
9         tinyMCEPopup.resizeToInnerSize();\r
10         var inst = tinyMCEPopup.editor;\r
11         var dom = inst.dom;\r
12         var elm = inst.selection.getNode();\r
13         var f = document.forms[0];\r
14         var onclick = dom.getAttrib(elm, 'onclick');\r
15 \r
16         setFormValue('title', dom.getAttrib(elm, 'title'));\r
17         setFormValue('id', dom.getAttrib(elm, 'id'));\r
18         setFormValue('style', dom.getAttrib(elm, "style"));\r
19         setFormValue('dir', dom.getAttrib(elm, 'dir'));\r
20         setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
21         setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
22         setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
23         setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
24         setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
25         setFormValue('onclick', onclick);\r
26         setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
27         setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
28         setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
29         setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
30         setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
31         setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
32         setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
33         setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
34         setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
35         className = dom.getAttrib(elm, 'class');\r
36 \r
37         addClassesToList('classlist', 'advlink_styles');\r
38         selectByValue(f, 'classlist', className, true);\r
39 \r
40         TinyMCE_EditableSelects.init();\r
41 }\r
42 \r
43 function setFormValue(name, value) {\r
44         if(value && document.forms[0].elements[name]){\r
45                 document.forms[0].elements[name].value = value;\r
46         }\r
47 }\r
48 \r
49 function insertAction() {\r
50         var inst = tinyMCEPopup.editor;\r
51         var elm = inst.selection.getNode();\r
52 \r
53         tinyMCEPopup.execCommand("mceBeginUndoLevel");  \r
54         setAllAttribs(elm);\r
55         tinyMCEPopup.execCommand("mceEndUndoLevel");\r
56         tinyMCEPopup.close();\r
57 }\r
58 \r
59 function setAttrib(elm, attrib, value) {\r
60         var formObj = document.forms[0];\r
61         var valueElm = formObj.elements[attrib.toLowerCase()];\r
62         var inst = tinyMCEPopup.editor;\r
63         var dom = inst.dom;\r
64 \r
65         if (typeof(value) == "undefined" || value == null) {\r
66                 value = "";\r
67 \r
68                 if (valueElm)\r
69                         value = valueElm.value;\r
70         }\r
71 \r
72         if (value != "") {\r
73                 dom.setAttrib(elm, attrib.toLowerCase(), value);\r
74 \r
75                 if (attrib == "style")\r
76                         attrib = "style.cssText";\r
77 \r
78                 if (attrib.substring(0, 2) == 'on')\r
79                         value = 'return true;' + value;\r
80 \r
81                 if (attrib == "class")\r
82                         attrib = "className";\r
83 \r
84                 elm[attrib]=value;\r
85         } else\r
86                 elm.removeAttribute(attrib);\r
87 }\r
88 \r
89 function setAllAttribs(elm) {\r
90         var f = document.forms[0];\r
91 \r
92         setAttrib(elm, 'title');\r
93         setAttrib(elm, 'id');\r
94         setAttrib(elm, 'style');\r
95         setAttrib(elm, 'class', getSelectValue(f, 'classlist'));\r
96         setAttrib(elm, 'dir');\r
97         setAttrib(elm, 'lang');\r
98         setAttrib(elm, 'tabindex');\r
99         setAttrib(elm, 'accesskey');\r
100         setAttrib(elm, 'onfocus');\r
101         setAttrib(elm, 'onblur');\r
102         setAttrib(elm, 'onclick');\r
103         setAttrib(elm, 'ondblclick');\r
104         setAttrib(elm, 'onmousedown');\r
105         setAttrib(elm, 'onmouseup');\r
106         setAttrib(elm, 'onmouseover');\r
107         setAttrib(elm, 'onmousemove');\r
108         setAttrib(elm, 'onmouseout');\r
109         setAttrib(elm, 'onkeypress');\r
110         setAttrib(elm, 'onkeydown');\r
111         setAttrib(elm, 'onkeyup');\r
112 \r
113         // Refresh in old MSIE\r
114 //      if (tinyMCE.isMSIE5)\r
115 //              elm.outerHTML = elm.outerHTML;\r
116 }\r
117 \r
118 function insertAttribute() {\r
119         tinyMCEPopup.close();\r
120 }\r
121 \r
122 tinyMCEPopup.onInit.add(init);\r
123 tinyMCEPopup.requireLangPack();\r