+ };
+ var fieldset = doc.createElement("fieldset");
+ fieldset.className = fieldsetClass;
+ TableOperations.insertLegend(doc, fieldset, "Frame and borders");
+ TableOperations.insertSpace(doc, fieldset);
+ // Gecko reports "solid solid solid solid" for "border-style: solid".
+ // That is, "top right bottom left" -- we only consider the first value.
+ var f_st_borderWidth = el ? TableOperations.getLength(el.style.borderWidth) : ((this.properties && this.properties.borderWidth && this.properties.borderWidth.defaultValue) ? this.properties.borderWidth.defaultValue : "");
+ selected = el ? el.style.borderStyle : ((this.properties && this.properties.borderWidth) ? ((this.properties.borderStyle && this.properties.borderStyle.defaultValue) ? this.properties.borderStyle.defaultValue : "solid") : "");
+ (selected.match(/([^\s]*)\s/)) && (selected = RegExp.$1);
+ selectBorderStyle = TableOperations.buildSelectField(doc, fieldset, "f_st_borderStyle", "Border style:", "fr", "floating", "Border style", ["Not set", "No border", "Dotted", "Dashed", "Solid", "Double", "Groove", "Ridge", "Inset", "Outset"], ["not set", "none", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"], new RegExp((selected ? selected : "not set"), "i"));
+ selectBorderStyle.onchange = function() { setBorderFieldsVisibility(this.value == "none"); };
+ this.removeOptions(selectBorderStyle, "f_st_borderStyle");
+ TableOperations.buildInput(doc, fieldset, "f_st_borderWidth", "Border width:", "Border width", "pixels", "5", f_st_borderWidth, "fr", "floating", "postlabel", borderFields);
+ TableOperations.insertSpace(doc, fieldset, borderFields);
+
+ if (nodeName == "table") {
+ TableOperations.buildColorField(w, doc, editor, fieldset, "", "Color:", "fr", "colorButton", (el ? el.style.borderColor : ""), "borderColor", borderFields);
+ var label = doc.createElement("label");
+ label.className = "fl-borderCollapse";
+ label.htmlFor = "f_st_borderCollapse";
+ label.innerHTML = "Collapsed borders";
+ fieldset.appendChild(label);
+ borderFields.push(label);
+ var input = doc.createElement("input");
+ input.className = "checkbox";
+ input.type = "checkbox";
+ input.name = "f_st_borderCollapse";
+ input.id = "f_st_borderCollapse";
+ input.defaultChecked = el ? /collapse/i.test(el.style.borderCollapse) : false;
+ input.checked = input.defaultChecked;
+ fieldset.appendChild(input);
+ borderFields.push(input);
+ TableOperations.insertSpace(doc, fieldset, borderFields);
+ select = TableOperations.buildSelectField(doc, fieldset, "f_frames", "Frames:", "fr", "floating", "Specifies which sides should have a border", ["Not set", "No sides", "The top side only", "The bottom side only", "The top and bottom sides only", "The right and left sides only", "The left-hand side only", "The right-hand side only", "All four sides"], ["not set", "void", "above", "below", "hsides", "vsides", "lhs", "rhs", "box"], new RegExp(((el && el.frame) ? el.frame : "not set"), "i"), borderFields);
+ TableOperations.insertSpace(doc, fieldset, borderFields);
+ select = TableOperations.buildSelectField(doc, fieldset, "f_rules", "Rules:", "fr", "floating", "Specifies where rules should be displayed", ["Not set", "No rules", "Rules will appear between rows only", "Rules will appear between columns only", "Rules will appear between all rows and columns"], ["not set", "none", "rows", "cols", "all"], new RegExp(((el && el.rules) ? el.rules : "not set"), "i"), borderFields);
+ } else {
+ TableOperations.insertSpace(doc, fieldset, borderFields);
+ TableOperations.buildColorField(w, doc, editor, fieldset, "", "Color:", "fr", "colorButton", (el ? el.style.borderColor : ""), "borderColor", borderFields);
+ }
+ setBorderFieldsVisibility(selectBorderStyle.value == "none");
+ TableOperations.insertSpace(doc, fieldset);
+ content.appendChild(fieldset);
+ },
+
+ removeOptions : function(select, property) {
+ if (this.properties && this.properties[property] && this.properties[property].removeItems) {
+ for (var i = select.options.length; --i >= 0;) {
+ if (this.properties[property].removeItems.indexOf(select.options[i].value) != -1) {
+ if (select.options[i].value != select.value) {
+ select.options[i] = null;
+ }
+ }