--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function init() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
+\r
+ var inst = tinyMCEPopup.editor;\r
+ var dom = inst.dom;\r
+ var trElm = dom.getParent(inst.selection.getStart(), "tr");\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(dom.getAttrib(trElm, "style"));\r
+\r
+ // Get table row data\r
+ var rowtype = trElm.parentNode.nodeName.toLowerCase();\r
+ var align = dom.getAttrib(trElm, 'align');\r
+ var valign = dom.getAttrib(trElm, 'valign');\r
+ var height = trimSize(getStyle(trElm, 'height', 'height'));\r
+ var className = dom.getAttrib(trElm, 'class');\r
+ var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));\r
+ var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");\r
+ var id = dom.getAttrib(trElm, 'id');\r
+ var lang = dom.getAttrib(trElm, 'lang');\r
+ var dir = dom.getAttrib(trElm, 'dir');\r
+\r
+ selectByValue(formObj, 'rowtype', rowtype);\r
+\r
+ // Any cells selected\r
+ if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {\r
+ // Setup form\r
+ addClassesToList('class', 'table_row_styles');\r
+ TinyMCE_EditableSelects.init();\r
+\r
+ formObj.bgcolor.value = bgcolor;\r
+ formObj.backgroundimage.value = backgroundimage;\r
+ formObj.height.value = height;\r
+ formObj.id.value = id;\r
+ formObj.lang.value = lang;\r
+ formObj.style.value = dom.serializeStyle(st);\r
+ selectByValue(formObj, 'align', align);\r
+ selectByValue(formObj, 'valign', valign);\r
+ selectByValue(formObj, 'class', className, true, true);\r
+ selectByValue(formObj, 'dir', dir);\r
+\r
+ // Resize some elements\r
+ if (isVisible('backgroundimagebrowser'))\r
+ document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+ updateColor('bgcolor_pick', 'bgcolor');\r
+ } else\r
+ tinyMCEPopup.dom.hide('action');\r
+}\r
+\r
+function updateAction() {\r
+ var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];\r
+ var action = getSelectValue(formObj, 'action');\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+ trElm = dom.getParent(inst.selection.getStart(), "tr");\r
+ tableElm = dom.getParent(inst.selection.getStart(), "table");\r
+\r
+ // Update all selected rows\r
+ if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) {\r
+ tinymce.each(tableElm.rows, function(tr) {\r
+ var i;\r
+\r
+ for (i = 0; i < tr.cells.length; i++) {\r
+ if (dom.hasClass(tr.cells[i], 'mceSelected')) {\r
+ updateRow(tr, true);\r
+ return;\r
+ }\r
+ }\r
+ });\r
+\r
+ inst.addVisual();\r
+ inst.nodeChanged();\r
+ inst.execCommand('mceEndUndoLevel');\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ inst.execCommand('mceBeginUndoLevel');\r
+\r
+ switch (action) {\r
+ case "row":\r
+ updateRow(trElm);\r
+ break;\r
+\r
+ case "all":\r
+ var rows = tableElm.getElementsByTagName("tr");\r
+\r
+ for (var i=0; i<rows.length; i++)\r
+ updateRow(rows[i], true);\r
+\r
+ break;\r
+\r
+ case "odd":\r
+ case "even":\r
+ var rows = tableElm.getElementsByTagName("tr");\r
+\r
+ for (var i=0; i<rows.length; i++) {\r
+ if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))\r
+ updateRow(rows[i], true, true);\r
+ }\r
+\r
+ break;\r
+ }\r
+\r
+ inst.addVisual();\r
+ inst.nodeChanged();\r
+ inst.execCommand('mceEndUndoLevel');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function updateRow(tr_elm, skip_id, skip_parent) {\r
+ var inst = tinyMCEPopup.editor;\r
+ var formObj = document.forms[0];\r
+ var dom = inst.dom;\r
+ var curRowType = tr_elm.parentNode.nodeName.toLowerCase();\r
+ var rowtype = getSelectValue(formObj, 'rowtype');\r
+ var doc = inst.getDoc();\r
+\r
+ // Update row element\r
+ if (!skip_id)\r
+ tr_elm.setAttribute('id', formObj.id.value);\r
+\r
+ tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));\r
+ tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));\r
+ tr_elm.setAttribute('lang', formObj.lang.value);\r
+ tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
+ tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));\r
+ dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));\r
+\r
+ // Clear deprecated attributes\r
+ tr_elm.setAttribute('background', '');\r
+ tr_elm.setAttribute('bgColor', '');\r
+ tr_elm.setAttribute('height', '');\r
+\r
+ // Set styles\r
+ tr_elm.style.height = getCSSSize(formObj.height.value);\r
+ tr_elm.style.backgroundColor = formObj.bgcolor.value;\r
+\r
+ if (formObj.backgroundimage.value != "")\r
+ tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
+ else\r
+ tr_elm.style.backgroundImage = '';\r
+\r
+ // Setup new rowtype\r
+ if (curRowType != rowtype && !skip_parent) {\r
+ // first, clone the node we are working on\r
+ var newRow = tr_elm.cloneNode(1);\r
+\r
+ // next, find the parent of its new destination (creating it if necessary)\r
+ var theTable = dom.getParent(tr_elm, "table");\r
+ var dest = rowtype;\r
+ var newParent = null;\r
+ for (var i = 0; i < theTable.childNodes.length; i++) {\r
+ if (theTable.childNodes[i].nodeName.toLowerCase() == dest)\r
+ newParent = theTable.childNodes[i];\r
+ }\r
+\r
+ if (newParent == null) {\r
+ newParent = doc.createElement(dest);\r
+\r
+ if (dest == "thead") {\r
+ if (theTable.firstChild.nodeName == 'CAPTION')\r
+ inst.dom.insertAfter(newParent, theTable.firstChild);\r
+ else\r
+ theTable.insertBefore(newParent, theTable.firstChild);\r
+ } else\r
+ theTable.appendChild(newParent);\r
+ }\r
+\r
+ // append the row to the new parent\r
+ newParent.appendChild(newRow);\r
+\r
+ // remove the original\r
+ tr_elm.parentNode.removeChild(tr_elm);\r
+\r
+ // set tr_elm to the new node\r
+ tr_elm = newRow;\r
+ }\r
+\r
+ dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));\r
+}\r
+\r
+function changedBackgroundImage() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedStyle() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ if (st['background-image'])\r
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ else\r
+ formObj.backgroundimage.value = '';\r
+\r
+ if (st['height'])\r
+ formObj.height.value = trimSize(st['height']);\r
+\r
+ if (st['background-color']) {\r
+ formObj.bgcolor.value = st['background-color'];\r
+ updateColor('bgcolor_pick','bgcolor');\r
+ }\r
+}\r
+\r
+function changedSize() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ var height = formObj.height.value;\r
+ if (height != "")\r
+ st['height'] = getCSSSize(height);\r
+ else\r
+ st['height'] = "";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedColor() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-color'] = formObj.bgcolor.value;\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r