src/crypto.c: possible fix for memory leak related
[citadel.git] / webcit / tiny_mce / plugins / table / jscripts / cell.js
index 79d2984cd07938bb9a368230ca33abf777abeb32..436eaad1711c6e423e0d92401b3f784177678cce 100644 (file)
-function init() {
-       tinyMCEPopup.resizeToInnerSize();
-
-       var inst = tinyMCE.selectedInstance;
-       var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
-       var formObj = document.forms[0];
-       var st = tinyMCE.parseStyle(tdElm.style.cssText);
-
-       // Get table cell data
-       var celltype = tdElm.nodeName.toLowerCase();
-       var align = tinyMCE.getAttrib(tdElm, 'align');
-       var valign = tinyMCE.getAttrib(tdElm, 'valign');
-       var width = trimSize(getStyle(tdElm, 'width', 'width'));
-       var height = trimSize(getStyle(tdElm, 'height', 'height'));
-       var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
-       var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
-       var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);
-       var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
-       var id = tinyMCE.getAttrib(tdElm, 'id');
-       var lang = tinyMCE.getAttrib(tdElm, 'lang');
-       var dir = tinyMCE.getAttrib(tdElm, 'dir');
-       var scope = tinyMCE.getAttrib(tdElm, 'scope');
-
-       // Setup form
-       addClassesToList('class', 'table_cell_styles');
-       formObj.bordercolor.value = bordercolor;
-       formObj.bgcolor.value = bgcolor;
-       formObj.backgroundimage.value = backgroundimage;
-       formObj.width.value = width;
-       formObj.height.value = height;
-       formObj.id.value = id;
-       formObj.lang.value = lang;
-       formObj.style.value = tinyMCE.serializeStyle(st);
-       selectByValue(formObj, 'align', align);
-       selectByValue(formObj, 'valign', valign);
-       selectByValue(formObj, 'class', className);
-       selectByValue(formObj, 'celltype', celltype);
-       selectByValue(formObj, 'dir', dir);
-       selectByValue(formObj, 'scope', scope);
-
-       // Resize some elements
-       if (isVisible('backgroundimagebrowser'))
-               document.getElementById('backgroundimage').style.width = '180px';
-
-       updateColor('bordercolor_pick', 'bordercolor');
-       updateColor('bgcolor_pick', 'bgcolor');
-}
-
-function updateAction() {
-       var inst = tinyMCE.selectedInstance;
-       var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
-       var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
-       var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
-       var formObj = document.forms[0];
-
-       inst.execCommand('mceBeginUndoLevel');
-
-       switch (getSelectValue(formObj, 'action')) {
-               case "cell":
-                       var celltype = getSelectValue(formObj, 'celltype');
-                       var scope = getSelectValue(formObj, 'scope');
-
-                       if (tinyMCE.getParam("accessibility_warnings")) {
-                               if (celltype == "th" && scope == "")
-                                       var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true));
-                               else
-                                       var answer = true;
-
-                               if (!answer)
-                                       return;
-                       }
-
-                       updateCell(tdElm);
-                       break;
-
-               case "row":
-                       var cell = trElm.firstChild;
-
-                       do {
-                               cell = updateCell(cell, true);
-                       } while ((cell = nextCell(cell)));
-
-                       break;
-
-               case "all":
-                       var rows = tableElm.getElementsByTagName("tr");
-
-                       for (var i=0; i<rows.length; i++) {
-                               var cell = rows[i].firstChild;
-
-                               do {
-                                       cell = updateCell(cell, true);
-                               } while ((cell = nextCell(cell)));
-                       }
-
-                       break;
-       }
-
-       tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
-       tinyMCE.triggerNodeChange();
-       inst.execCommand('mceEndUndoLevel');
-       tinyMCEPopup.close();
-}
-
-function nextCell(elm) {
-       while ((elm = elm.nextSibling)) {
-               if (elm.nodeName == "TD" || elm.nodeName == "TH")
-                       return elm;
-       }
-
-       return null;
-}
-
-function updateCell(td, skip_id) {
-       var inst = tinyMCE.selectedInstance;
-       var formObj = document.forms[0];
-       var curCellType = td.nodeName.toLowerCase();
-       var celltype = getSelectValue(formObj, 'celltype');
-       var doc = inst.getDoc();
-
-       if (!skip_id)
-               td.setAttribute('id', formObj.id.value);
-
-       td.setAttribute('align', formObj.align.value);
-       td.setAttribute('vAlign', formObj.valign.value);
-       td.setAttribute('lang', formObj.lang.value);
-       td.setAttribute('dir', getSelectValue(formObj, 'dir'));
-       td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
-       td.setAttribute('scope', formObj.scope.value);
-       tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
-
-       // Clear deprecated attributes
-       tinyMCE.setAttrib(td, 'width', '');
-       tinyMCE.setAttrib(td, 'height', '');
-       tinyMCE.setAttrib(td, 'bgColor', '');
-       tinyMCE.setAttrib(td, 'borderColor', '');
-       tinyMCE.setAttrib(td, 'background', '');
-
-       // Set styles
-       td.style.width = getCSSSize(formObj.width.value);
-       td.style.height = getCSSSize(formObj.height.value);
-       if (formObj.bordercolor.value != "") {
-               td.style.borderColor = formObj.bordercolor.value;
-               td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
-               td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
-       } else
-               td.style.borderColor = '';
-
-       td.style.backgroundColor = formObj.bgcolor.value;
-
-       if (formObj.backgroundimage.value != "")
-               td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
-       else
-               td.style.backgroundImage = '';
-
-       if (curCellType != celltype) {
-               // changing to a different node type
-               var newCell = doc.createElement(celltype);
-
-               for (var c=0; c<td.childNodes.length; c++) {
-                       newCell.appendChild(td.childNodes[c].cloneNode(1));
-               }
-
-               for (var a=0; a<td.attributes.length; a++) {
-                       var attr = td.attributes[a];
-                       newCell.setAttribute(attr.name, attr.value);
-               }
-
-               td.parentNode.replaceChild(newCell, td);
-               td = newCell;
-
-               return newCell;
-       }
-
-       return td;
-}
-
-function changedBackgroundImage() {
-       var formObj = document.forms[0];
-       var st = tinyMCE.parseStyle(formObj.style.value);
-
-       st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
-
-       formObj.style.value = tinyMCE.serializeStyle(st);
-}
-
-function changedSize() {
-       var formObj = document.forms[0];
-       var st = tinyMCE.parseStyle(formObj.style.value);
-
-       var width = formObj.width.value;
-       if (width != "")
-               st['width'] = getCSSSize(width);
-       else
-               st['width'] = "";
-
-       var height = formObj.height.value;
-       if (height != "")
-               st['height'] = getCSSSize(height);
-       else
-               st['height'] = "";
-
-       formObj.style.value = tinyMCE.serializeStyle(st);
-}
-
-function changedColor() {
-       var formObj = document.forms[0];
-       var st = tinyMCE.parseStyle(formObj.style.value);
-
-       st['background-color'] = formObj.bgcolor.value;
-       st['border-color'] = formObj.bordercolor.value;
-
-       formObj.style.value = tinyMCE.serializeStyle(st);
-}
-
-function changedStyle() {
-       var formObj = document.forms[0];
-       var st = tinyMCE.parseStyle(formObj.style.value);
-
-       if (st['background-image'])
-               formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
-       else
-               formObj.backgroundimage.value = '';
-
-       if (st['width'])
-               formObj.width.value = trimSize(st['width']);
-
-       if (st['height'])
-               formObj.height.value = trimSize(st['height']);
-
-       if (st['background-color']) {
-               formObj.bgcolor.value = st['background-color'];
-               updateColor('bgcolor_pick','bgcolor');
-       }
-
-       if (st['border-color']) {
-               formObj.bordercolor.value = st['border-color'];
-               updateColor('bordercolor_pick','bordercolor');
-       }
-}
+function init() {\r
+       tinyMCEPopup.resizeToInnerSize();\r
+\r
+       document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
+       document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
+       document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')\r
+\r
+       var inst = tinyMCE.selectedInstance;\r
+       var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");\r
+       var formObj = document.forms[0];\r
+       var st = tinyMCE.parseStyle(tinyMCE.getAttrib(tdElm, "style"));\r
+\r
+       // Get table cell data\r
+       var celltype = tdElm.nodeName.toLowerCase();\r
+       var align = tinyMCE.getAttrib(tdElm, 'align');\r
+       var valign = tinyMCE.getAttrib(tdElm, 'valign');\r
+       var width = trimSize(getStyle(tdElm, 'width', 'width'));\r
+       var height = trimSize(getStyle(tdElm, 'height', 'height'));\r
+       var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));\r
+       var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));\r
+       var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);\r
+       var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
+       var id = tinyMCE.getAttrib(tdElm, 'id');\r
+       var lang = tinyMCE.getAttrib(tdElm, 'lang');\r
+       var dir = tinyMCE.getAttrib(tdElm, 'dir');\r
+       var scope = tinyMCE.getAttrib(tdElm, 'scope');\r
+\r
+       // Setup form\r
+       addClassesToList('class', 'table_cell_styles');\r
+       formObj.bordercolor.value = bordercolor;\r
+       formObj.bgcolor.value = bgcolor;\r
+       formObj.backgroundimage.value = backgroundimage;\r
+       formObj.width.value = width;\r
+       formObj.height.value = height;\r
+       formObj.id.value = id;\r
+       formObj.lang.value = lang;\r
+       formObj.style.value = tinyMCE.serializeStyle(st);\r
+       selectByValue(formObj, 'align', align);\r
+       selectByValue(formObj, 'valign', valign);\r
+       selectByValue(formObj, 'class', className);\r
+       selectByValue(formObj, 'celltype', celltype);\r
+       selectByValue(formObj, 'dir', dir);\r
+       selectByValue(formObj, 'scope', scope);\r
+\r
+       // Resize some elements\r
+       if (isVisible('backgroundimagebrowser'))\r
+               document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+       updateColor('bordercolor_pick', 'bordercolor');\r
+       updateColor('bgcolor_pick', 'bgcolor');\r
+}\r
+\r
+function updateAction() {\r
+       tinyMCEPopup.restoreSelection();\r
+\r
+       var inst = tinyMCE.selectedInstance;\r
+       var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");\r
+       var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");\r
+       var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");\r
+       var formObj = document.forms[0];\r
+\r
+       inst.execCommand('mceBeginUndoLevel');\r
+\r
+       switch (getSelectValue(formObj, 'action')) {\r
+               case "cell":\r
+                       var celltype = getSelectValue(formObj, 'celltype');\r
+                       var scope = getSelectValue(formObj, 'scope');\r
+\r
+                       if (tinyMCE.getParam("accessibility_warnings")) {\r
+                               if (celltype == "th" && scope == "")\r
+                                       var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true));\r
+                               else\r
+                                       var answer = true;\r
+\r
+                               if (!answer)\r
+                                       return;\r
+                       }\r
+\r
+                       updateCell(tdElm);\r
+                       break;\r
+\r
+               case "row":\r
+                       var cell = trElm.firstChild;\r
+\r
+                       if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
+                               cell = nextCell(cell);\r
+\r
+                       do {\r
+                               cell = updateCell(cell, true);\r
+                       } while ((cell = nextCell(cell)) != null);\r
+\r
+                       break;\r
+\r
+               case "all":\r
+                       var rows = tableElm.getElementsByTagName("tr");\r
+\r
+                       for (var i=0; i<rows.length; i++) {\r
+                               var cell = rows[i].firstChild;\r
+\r
+                               if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
+                                       cell = nextCell(cell);\r
+\r
+                               do {\r
+                                       cell = updateCell(cell, true);\r
+                               } while ((cell = nextCell(cell)) != null);\r
+                       }\r
+\r
+                       break;\r
+       }\r
+\r
+       tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);\r
+       tinyMCE.triggerNodeChange();\r
+       inst.execCommand('mceEndUndoLevel');\r
+       tinyMCEPopup.close();\r
+}\r
+\r
+function nextCell(elm) {\r
+       while ((elm = elm.nextSibling) != null) {\r
+               if (elm.nodeName == "TD" || elm.nodeName == "TH")\r
+                       return elm;\r
+       }\r
+\r
+       return null;\r
+}\r
+\r
+function updateCell(td, skip_id) {\r
+       var inst = tinyMCE.selectedInstance;\r
+       var formObj = document.forms[0];\r
+       var curCellType = td.nodeName.toLowerCase();\r
+       var celltype = getSelectValue(formObj, 'celltype');\r
+       var doc = inst.getDoc();\r
+\r
+       if (!skip_id)\r
+               td.setAttribute('id', formObj.id.value);\r
+\r
+       td.setAttribute('align', formObj.align.value);\r
+       td.setAttribute('vAlign', formObj.valign.value);\r
+       td.setAttribute('lang', formObj.lang.value);\r
+       td.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
+       td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));\r
+       td.setAttribute('scope', formObj.scope.value);\r
+       tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));\r
+\r
+       // Clear deprecated attributes\r
+       tinyMCE.setAttrib(td, 'width', '');\r
+       tinyMCE.setAttrib(td, 'height', '');\r
+       tinyMCE.setAttrib(td, 'bgColor', '');\r
+       tinyMCE.setAttrib(td, 'borderColor', '');\r
+       tinyMCE.setAttrib(td, 'background', '');\r
+\r
+       // Set styles\r
+       td.style.width = getCSSSize(formObj.width.value);\r
+       td.style.height = getCSSSize(formObj.height.value);\r
+       if (formObj.bordercolor.value != "") {\r
+               td.style.borderColor = formObj.bordercolor.value;\r
+               td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;\r
+               td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;\r
+       } else\r
+               td.style.borderColor = '';\r
+\r
+       td.style.backgroundColor = formObj.bgcolor.value;\r
+\r
+       if (formObj.backgroundimage.value != "")\r
+               td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
+       else\r
+               td.style.backgroundImage = '';\r
+\r
+       if (curCellType != celltype) {\r
+               // changing to a different node type\r
+               var newCell = doc.createElement(celltype);\r
+\r
+               for (var c=0; c<td.childNodes.length; c++)\r
+                       newCell.appendChild(td.childNodes[c].cloneNode(1));\r
+\r
+               for (var a=0; a<td.attributes.length; a++) {\r
+                       var attr = td.attributes[a];\r
+                       newCell.setAttribute(attr.name, attr.value);\r
+               }\r
+\r
+               td.parentNode.replaceChild(newCell, td);\r
+               td = newCell;\r
+       }\r
+\r
+       return td;\r
+}\r
+\r
+function changedBackgroundImage() {\r
+       var formObj = document.forms[0];\r
+       var st = tinyMCE.parseStyle(formObj.style.value);\r
+\r
+       st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
+\r
+       formObj.style.value = tinyMCE.serializeStyle(st);\r
+}\r
+\r
+function changedSize() {\r
+       var formObj = document.forms[0];\r
+       var st = tinyMCE.parseStyle(formObj.style.value);\r
+\r
+       var width = formObj.width.value;\r
+       if (width != "")\r
+               st['width'] = getCSSSize(width);\r
+       else\r
+               st['width'] = "";\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 = tinyMCE.serializeStyle(st);\r
+}\r
+\r
+function changedColor() {\r
+       var formObj = document.forms[0];\r
+       var st = tinyMCE.parseStyle(formObj.style.value);\r
+\r
+       st['background-color'] = formObj.bgcolor.value;\r
+       st['border-color'] = formObj.bordercolor.value;\r
+\r
+       formObj.style.value = tinyMCE.serializeStyle(st);\r
+}\r
+\r
+function changedStyle() {\r
+       var formObj = document.forms[0];\r
+       var st = tinyMCE.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['width'])\r
+               formObj.width.value = trimSize(st['width']);\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
+       if (st['border-color']) {\r
+               formObj.bordercolor.value = st['border-color'];\r
+               updateColor('bordercolor_pick','bordercolor');\r
+       }\r
+}\r