summaryrefslogtreecommitdiffstats
path: root/extensions/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js
blob: 23c7fa4c277c3fb52c8bb9076c825476ac714b03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 /**

 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $

 *

 * @author Moxiecode - based on work by Andrew Tetlaw

 * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.

 */



function init() {

	tinyMCEPopup.resizeToInnerSize();

	var inst = tinyMCEPopup.editor;

	var dom = inst.dom;

	var elm = inst.selection.getNode();

	var f = document.forms[0];

	var onclick = dom.getAttrib(elm, 'onclick');



	setFormValue('title', dom.getAttrib(elm, 'title'));

	setFormValue('id', dom.getAttrib(elm, 'id'));

	setFormValue('style', dom.getAttrib(elm, "style"));

	setFormValue('dir', dom.getAttrib(elm, 'dir'));

	setFormValue('lang', dom.getAttrib(elm, 'lang'));

	setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));

	setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));

	setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));

	setFormValue('onblur', dom.getAttrib(elm, 'onblur'));

	setFormValue('onclick', onclick);

	setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));

	setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));

	setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));

	setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));

	setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));

	setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));

	setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));

	setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));

	setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));

	className = dom.getAttrib(elm, 'class');



	addClassesToList('classlist', 'advlink_styles');

	selectByValue(f, 'classlist', className, true);



	TinyMCE_EditableSelects.init();

}



function setFormValue(name, value) {

	if(value && document.forms[0].elements[name]){

		document.forms[0].elements[name].value = value;

	}

}



function insertAction() {

	var inst = tinyMCEPopup.editor;

	var elm = inst.selection.getNode();



	tinyMCEPopup.execCommand("mceBeginUndoLevel");	

	setAllAttribs(elm);

	tinyMCEPopup.execCommand("mceEndUndoLevel");

	tinyMCEPopup.close();

}



function setAttrib(elm, attrib, value) {

	var formObj = document.forms[0];

	var valueElm = formObj.elements[attrib.toLowerCase()];

	var inst = tinyMCEPopup.editor;

	var dom = inst.dom;



	if (typeof(value) == "undefined" || value == null) {

		value = "";



		if (valueElm)

			value = valueElm.value;

	}



	if (value != "") {

		dom.setAttrib(elm, attrib.toLowerCase(), value);



		if (attrib == "style")

			attrib = "style.cssText";



		if (attrib.substring(0, 2) == 'on')

			value = 'return true;' + value;



		if (attrib == "class")

			attrib = "className";



		elm[attrib]=value;

	} else

		elm.removeAttribute(attrib);

}



function setAllAttribs(elm) {

	var f = document.forms[0];



	setAttrib(elm, 'title');

	setAttrib(elm, 'id');

	setAttrib(elm, 'style');

	setAttrib(elm, 'class', getSelectValue(f, 'classlist'));

	setAttrib(elm, 'dir');

	setAttrib(elm, 'lang');

	setAttrib(elm, 'tabindex');

	setAttrib(elm, 'accesskey');

	setAttrib(elm, 'onfocus');

	setAttrib(elm, 'onblur');

	setAttrib(elm, 'onclick');

	setAttrib(elm, 'ondblclick');

	setAttrib(elm, 'onmousedown');

	setAttrib(elm, 'onmouseup');

	setAttrib(elm, 'onmouseover');

	setAttrib(elm, 'onmousemove');

	setAttrib(elm, 'onmouseout');

	setAttrib(elm, 'onkeypress');

	setAttrib(elm, 'onkeydown');

	setAttrib(elm, 'onkeyup');



	// Refresh in old MSIE

//	if (tinyMCE.isMSIE5)

//		elm.outerHTML = elm.outerHTML;

}



function insertAttribute() {

	tinyMCEPopup.close();

}



tinyMCEPopup.onInit.add(init);

tinyMCEPopup.requireLangPack();