Subversion Repositories Sites.tela-botanica.org

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
420 florian 1
function init() {
2
	tinyMCEPopup.resizeToInnerSize();
3
 
4
	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
5
	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
6
	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
7
 
8
	var inst = tinyMCE.selectedInstance;
9
	var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
10
	var formObj = document.forms[0];
11
	var st = tinyMCE.parseStyle(tinyMCE.getAttrib(tdElm, "style"));
12
 
13
	// Get table cell data
14
	var celltype = tdElm.nodeName.toLowerCase();
15
	var align = tinyMCE.getAttrib(tdElm, 'align');
16
	var valign = tinyMCE.getAttrib(tdElm, 'valign');
17
	var width = trimSize(getStyle(tdElm, 'width', 'width'));
18
	var height = trimSize(getStyle(tdElm, 'height', 'height'));
19
	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
20
	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
21
	var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);
22
	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
23
	var id = tinyMCE.getAttrib(tdElm, 'id');
24
	var lang = tinyMCE.getAttrib(tdElm, 'lang');
25
	var dir = tinyMCE.getAttrib(tdElm, 'dir');
26
	var scope = tinyMCE.getAttrib(tdElm, 'scope');
27
 
28
	// Setup form
29
	addClassesToList('class', 'table_cell_styles');
30
	formObj.bordercolor.value = bordercolor;
31
	formObj.bgcolor.value = bgcolor;
32
	formObj.backgroundimage.value = backgroundimage;
33
	formObj.width.value = width;
34
	formObj.height.value = height;
35
	formObj.id.value = id;
36
	formObj.lang.value = lang;
37
	formObj.style.value = tinyMCE.serializeStyle(st);
38
	selectByValue(formObj, 'align', align);
39
	selectByValue(formObj, 'valign', valign);
40
	selectByValue(formObj, 'class', className);
41
	selectByValue(formObj, 'celltype', celltype);
42
	selectByValue(formObj, 'dir', dir);
43
	selectByValue(formObj, 'scope', scope);
44
 
45
	// Resize some elements
46
	if (isVisible('backgroundimagebrowser'))
47
		document.getElementById('backgroundimage').style.width = '180px';
48
 
49
	updateColor('bordercolor_pick', 'bordercolor');
50
	updateColor('bgcolor_pick', 'bgcolor');
51
}
52
 
53
function updateAction() {
54
	tinyMCEPopup.restoreSelection();
55
 
56
	var inst = tinyMCE.selectedInstance;
57
	var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
58
	var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
59
	var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
60
	var formObj = document.forms[0];
61
 
62
	inst.execCommand('mceBeginUndoLevel');
63
 
64
	switch (getSelectValue(formObj, 'action')) {
65
		case "cell":
66
			var celltype = getSelectValue(formObj, 'celltype');
67
			var scope = getSelectValue(formObj, 'scope');
68
 
69
			if (tinyMCE.getParam("accessibility_warnings")) {
70
				if (celltype == "th" && scope == "")
71
					var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true));
72
				else
73
					var answer = true;
74
 
75
				if (!answer)
76
					return;
77
			}
78
 
79
			updateCell(tdElm);
80
			break;
81
 
82
		case "row":
83
			var cell = trElm.firstChild;
84
 
85
			if (cell.nodeName != "TD" && cell.nodeName != "TH")
86
				cell = nextCell(cell);
87
 
88
			do {
89
				cell = updateCell(cell, true);
90
			} while ((cell = nextCell(cell)) != null);
91
 
92
			break;
93
 
94
		case "all":
95
			var rows = tableElm.getElementsByTagName("tr");
96
 
97
			for (var i=0; i<rows.length; i++) {
98
				var cell = rows[i].firstChild;
99
 
100
				if (cell.nodeName != "TD" && cell.nodeName != "TH")
101
					cell = nextCell(cell);
102
 
103
				do {
104
					cell = updateCell(cell, true);
105
				} while ((cell = nextCell(cell)) != null);
106
			}
107
 
108
			break;
109
	}
110
 
111
	tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
112
	tinyMCE.triggerNodeChange();
113
	inst.execCommand('mceEndUndoLevel');
114
	tinyMCEPopup.close();
115
}
116
 
117
function nextCell(elm) {
118
	while ((elm = elm.nextSibling) != null) {
119
		if (elm.nodeName == "TD" || elm.nodeName == "TH")
120
			return elm;
121
	}
122
 
123
	return null;
124
}
125
 
126
function updateCell(td, skip_id) {
127
	var inst = tinyMCE.selectedInstance;
128
	var formObj = document.forms[0];
129
	var curCellType = td.nodeName.toLowerCase();
130
	var celltype = getSelectValue(formObj, 'celltype');
131
	var doc = inst.getDoc();
132
 
133
	if (!skip_id)
134
		td.setAttribute('id', formObj.id.value);
135
 
136
	td.setAttribute('align', formObj.align.value);
137
	td.setAttribute('vAlign', formObj.valign.value);
138
	td.setAttribute('lang', formObj.lang.value);
139
	td.setAttribute('dir', getSelectValue(formObj, 'dir'));
140
	td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
141
	td.setAttribute('scope', formObj.scope.value);
142
	tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
143
 
144
	// Clear deprecated attributes
145
	tinyMCE.setAttrib(td, 'width', '');
146
	tinyMCE.setAttrib(td, 'height', '');
147
	tinyMCE.setAttrib(td, 'bgColor', '');
148
	tinyMCE.setAttrib(td, 'borderColor', '');
149
	tinyMCE.setAttrib(td, 'background', '');
150
 
151
	// Set styles
152
	td.style.width = getCSSSize(formObj.width.value);
153
	td.style.height = getCSSSize(formObj.height.value);
154
	if (formObj.bordercolor.value != "") {
155
		td.style.borderColor = formObj.bordercolor.value;
156
		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
157
		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
158
	} else
159
		td.style.borderColor = '';
160
 
161
	td.style.backgroundColor = formObj.bgcolor.value;
162
 
163
	if (formObj.backgroundimage.value != "")
164
		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
165
	else
166
		td.style.backgroundImage = '';
167
 
168
	if (curCellType != celltype) {
169
		// changing to a different node type
170
		var newCell = doc.createElement(celltype);
171
 
172
		for (var c=0; c<td.childNodes.length; c++)
173
			newCell.appendChild(td.childNodes[c].cloneNode(1));
174
 
175
		for (var a=0; a<td.attributes.length; a++) {
176
			var attr = td.attributes[a];
177
			newCell.setAttribute(attr.name, attr.value);
178
		}
179
 
180
		td.parentNode.replaceChild(newCell, td);
181
		td = newCell;
182
	}
183
 
184
	return td;
185
}
186
 
187
function changedBackgroundImage() {
188
	var formObj = document.forms[0];
189
	var st = tinyMCE.parseStyle(formObj.style.value);
190
 
191
	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
192
 
193
	formObj.style.value = tinyMCE.serializeStyle(st);
194
}
195
 
196
function changedSize() {
197
	var formObj = document.forms[0];
198
	var st = tinyMCE.parseStyle(formObj.style.value);
199
 
200
	var width = formObj.width.value;
201
	if (width != "")
202
		st['width'] = getCSSSize(width);
203
	else
204
		st['width'] = "";
205
 
206
	var height = formObj.height.value;
207
	if (height != "")
208
		st['height'] = getCSSSize(height);
209
	else
210
		st['height'] = "";
211
 
212
	formObj.style.value = tinyMCE.serializeStyle(st);
213
}
214
 
215
function changedColor() {
216
	var formObj = document.forms[0];
217
	var st = tinyMCE.parseStyle(formObj.style.value);
218
 
219
	st['background-color'] = formObj.bgcolor.value;
220
	st['border-color'] = formObj.bordercolor.value;
221
 
222
	formObj.style.value = tinyMCE.serializeStyle(st);
223
}
224
 
225
function changedStyle() {
226
	var formObj = document.forms[0];
227
	var st = tinyMCE.parseStyle(formObj.style.value);
228
 
229
	if (st['background-image'])
230
		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
231
	else
232
		formObj.backgroundimage.value = '';
233
 
234
	if (st['width'])
235
		formObj.width.value = trimSize(st['width']);
236
 
237
	if (st['height'])
238
		formObj.height.value = trimSize(st['height']);
239
 
240
	if (st['background-color']) {
241
		formObj.bgcolor.value = st['background-color'];
242
		updateColor('bgcolor_pick','bgcolor');
243
	}
244
 
245
	if (st['border-color']) {
246
		formObj.bordercolor.value = st['border-color'];
247
		updateColor('bordercolor_pick','bordercolor');
248
	}
249
}