applied my changes - initial import
[boxroom-stian.git] / public / javascripts / tiny_mce / plugins / table / jscripts / row.js
blob395ddf028179f2a8c20b318228e0fa9ac8906957
1 function init() {
2 tinyMCEPopup.resizeToInnerSize();
4 document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
5 document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
7 var inst = tinyMCE.selectedInstance;
8 var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
9 var formObj = document.forms[0];
10 var st = tinyMCE.parseStyle(tinyMCE.getAttrib(trElm, "style"));
12 // Get table row data
13 var rowtype = trElm.parentNode.nodeName.toLowerCase();
14 var align = tinyMCE.getAttrib(trElm, 'align');
15 var valign = tinyMCE.getAttrib(trElm, 'valign');
16 var height = trimSize(getStyle(trElm, 'height', 'height'));
17 var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm, 'class'), false);
18 var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
19 var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
20 var id = tinyMCE.getAttrib(trElm, 'id');
21 var lang = tinyMCE.getAttrib(trElm, 'lang');
22 var dir = tinyMCE.getAttrib(trElm, 'dir');
24 // Setup form
25 addClassesToList('class', 'table_row_styles');
26 formObj.bgcolor.value = bgcolor;
27 formObj.backgroundimage.value = backgroundimage;
28 formObj.height.value = height;
29 formObj.id.value = id;
30 formObj.lang.value = lang;
31 formObj.style.value = tinyMCE.serializeStyle(st);
32 selectByValue(formObj, 'align', align);
33 selectByValue(formObj, 'valign', valign);
34 selectByValue(formObj, 'class', className);
35 selectByValue(formObj, 'rowtype', rowtype);
36 selectByValue(formObj, 'dir', dir);
38 // Resize some elements
39 if (isVisible('backgroundimagebrowser'))
40 document.getElementById('backgroundimage').style.width = '180px';
42 updateColor('bgcolor_pick', 'bgcolor');
45 function updateAction() {
46 tinyMCEPopup.restoreSelection();
48 var inst = tinyMCE.selectedInstance;
49 var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
50 var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
51 var formObj = document.forms[0];
52 var action = getSelectValue(formObj, 'action');
54 inst.execCommand('mceBeginUndoLevel');
56 switch (action) {
57 case "row":
58 updateRow(trElm);
59 break;
61 case "all":
62 var rows = tableElm.getElementsByTagName("tr");
64 for (var i=0; i<rows.length; i++)
65 updateRow(rows[i], true);
67 break;
69 case "odd":
70 case "even":
71 var rows = tableElm.getElementsByTagName("tr");
73 for (var i=0; i<rows.length; i++) {
74 if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
75 updateRow(rows[i], true, true);
78 break;
81 tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
82 tinyMCE.triggerNodeChange();
83 inst.execCommand('mceEndUndoLevel');
84 tinyMCEPopup.close();
87 function updateRow(tr_elm, skip_id, skip_parent) {
88 var inst = tinyMCE.selectedInstance;
89 var formObj = document.forms[0];
90 var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
91 var rowtype = getSelectValue(formObj, 'rowtype');
92 var doc = inst.getDoc();
94 // Update row element
95 if (!skip_id)
96 tr_elm.setAttribute('id', formObj.id.value);
98 tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
99 tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
100 tr_elm.setAttribute('lang', formObj.lang.value);
101 tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
102 tr_elm.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
103 tinyMCE.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
105 // Clear deprecated attributes
106 tr_elm.setAttribute('background', '');
107 tr_elm.setAttribute('bgColor', '');
108 tr_elm.setAttribute('height', '');
110 // Set styles
111 tr_elm.style.height = getCSSSize(formObj.height.value);
112 tr_elm.style.backgroundColor = formObj.bgcolor.value;
114 if (formObj.backgroundimage.value != "")
115 tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
116 else
117 tr_elm.style.backgroundImage = '';
119 // Setup new rowtype
120 if (curRowType != rowtype && !skip_parent) {
121 // first, clone the node we are working on
122 var newRow = tr_elm.cloneNode(1);
124 // next, find the parent of its new destination (creating it if necessary)
125 var theTable = tinyMCE.getParentElement(tr_elm, "table");
126 var dest = rowtype;
127 var newParent = null;
128 for (var i = 0; i < theTable.childNodes.length; i++) {
129 if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
130 newParent = theTable.childNodes[i];
133 if (newParent == null) {
134 newParent = doc.createElement(dest);
136 if (dest == "thead")
137 theTable.insertBefore(newParent, theTable.firstChild);
138 else
139 theTable.appendChild(newParent);
142 // append the row to the new parent
143 newParent.appendChild(newRow);
145 // remove the original
146 tr_elm.parentNode.removeChild(tr_elm);
148 // set tr_elm to the new node
149 tr_elm = newRow;
153 function changedBackgroundImage() {
154 var formObj = document.forms[0];
155 var st = tinyMCE.parseStyle(formObj.style.value);
157 st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
159 formObj.style.value = tinyMCE.serializeStyle(st);
162 function changedStyle() {
163 var formObj = document.forms[0];
164 var st = tinyMCE.parseStyle(formObj.style.value);
166 if (st['background-image'])
167 formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
168 else
169 formObj.backgroundimage.value = '';
171 if (st['height'])
172 formObj.height.value = trimSize(st['height']);
174 if (st['background-color']) {
175 formObj.bgcolor.value = st['background-color'];
176 updateColor('bgcolor_pick','bgcolor');
180 function changedSize() {
181 var formObj = document.forms[0];
182 var st = tinyMCE.parseStyle(formObj.style.value);
184 var height = formObj.height.value;
185 if (height != "")
186 st['height'] = getCSSSize(height);
187 else
188 st['height'] = "";
190 formObj.style.value = tinyMCE.serializeStyle(st);
193 function changedColor() {
194 var formObj = document.forms[0];
195 var st = tinyMCE.parseStyle(formObj.style.value);
197 st['background-color'] = formObj.bgcolor.value;
199 formObj.style.value = tinyMCE.serializeStyle(st);