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