Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / plugins / xhtmlxtras / js / attributes.js
1 /**\r
2  * attributes.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 init() {\r
12         tinyMCEPopup.resizeToInnerSize();\r
13         var inst = tinyMCEPopup.editor;\r
14         var dom = inst.dom;\r
15         var elm = inst.selection.getNode();\r
16         var f = document.forms[0];\r
17         var onclick = dom.getAttrib(elm, 'onclick');\r
18 \r
19         setFormValue('title', dom.getAttrib(elm, 'title'));\r
20         setFormValue('id', dom.getAttrib(elm, 'id'));\r
21         setFormValue('style', dom.getAttrib(elm, "style"));\r
22         setFormValue('dir', dom.getAttrib(elm, 'dir'));\r
23         setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
24         setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
25         setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
26         setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
27         setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
28         setFormValue('onclick', onclick);\r
29         setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
30         setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
31         setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
32         setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
33         setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
34         setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
35         setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
36         setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
37         setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
38         className = dom.getAttrib(elm, 'class');\r
39 \r
40         addClassesToList('classlist', 'advlink_styles');\r
41         selectByValue(f, 'classlist', className, true);\r
42 \r
43         TinyMCE_EditableSelects.init();\r
44 }\r
45 \r
46 function setFormValue(name, value) {\r
47         if(value && document.forms[0].elements[name]){\r
48                 document.forms[0].elements[name].value = value;\r
49         }\r
50 }\r
51 \r
52 function insertAction() {\r
53         var inst = tinyMCEPopup.editor;\r
54         var elm = inst.selection.getNode();\r
55 \r
56         setAllAttribs(elm);\r
57         tinyMCEPopup.execCommand("mceEndUndoLevel");\r
58         tinyMCEPopup.close();\r
59 }\r
60 \r
61 function setAttrib(elm, attrib, value) {\r
62         var formObj = document.forms[0];\r
63         var valueElm = formObj.elements[attrib.toLowerCase()];\r
64         var inst = tinyMCEPopup.editor;\r
65         var dom = inst.dom;\r
66 \r
67         if (typeof(value) == "undefined" || value == null) {\r
68                 value = "";\r
69 \r
70                 if (valueElm)\r
71                         value = valueElm.value;\r
72         }\r
73 \r
74         dom.setAttrib(elm, attrib.toLowerCase(), value);\r
75 }\r
76 \r
77 function setAllAttribs(elm) {\r
78         var f = document.forms[0];\r
79 \r
80         setAttrib(elm, 'title');\r
81         setAttrib(elm, 'id');\r
82         setAttrib(elm, 'style');\r
83         setAttrib(elm, 'class', getSelectValue(f, 'classlist'));\r
84         setAttrib(elm, 'dir');\r
85         setAttrib(elm, 'lang');\r
86         setAttrib(elm, 'tabindex');\r
87         setAttrib(elm, 'accesskey');\r
88         setAttrib(elm, 'onfocus');\r
89         setAttrib(elm, 'onblur');\r
90         setAttrib(elm, 'onclick');\r
91         setAttrib(elm, 'ondblclick');\r
92         setAttrib(elm, 'onmousedown');\r
93         setAttrib(elm, 'onmouseup');\r
94         setAttrib(elm, 'onmouseover');\r
95         setAttrib(elm, 'onmousemove');\r
96         setAttrib(elm, 'onmouseout');\r
97         setAttrib(elm, 'onkeypress');\r
98         setAttrib(elm, 'onkeydown');\r
99         setAttrib(elm, 'onkeyup');\r
100 \r
101         // Refresh in old MSIE\r
102 //      if (tinyMCE.isMSIE5)\r
103 //              elm.outerHTML = elm.outerHTML;\r
104 }\r
105 \r
106 function insertAttribute() {\r
107         tinyMCEPopup.close();\r
108 }\r
109 \r
110 tinyMCEPopup.onInit.add(init);\r
111 tinyMCEPopup.requireLangPack();\r