function TableOperations(_1){ this.editor=_1; var _2=_1.config; var bl=TableOperations.btnList; var _4=this; _2.removeToolbarElement(" inserttable toggleborders "); var _5=["linebreak","inserttable","toggleborders"]; for(var i=0;i
"+HTMLArea._lc("Description","TableOperations")+"
"+HTMLArea._lc("Caption","TableOperations")+":
"+HTMLArea._lc("Summary","TableOperations")+":
"+HTMLArea._lc("Spacing and padding","TableOperations")+" "+"
"+HTMLArea._lc("Spacing","TableOperations")+":  "+HTMLArea._lc("Padding","TableOperations")+":   "+HTMLArea._lc("pixels","TableOperations")+"
"+HTMLArea._lc("Frame and borders","TableOperations")+"
"+HTMLArea._lc("Borders","TableOperations")+":   "+HTMLArea._lc("pixels","TableOperations")+"
"+HTMLArea._lc("Frames","TableOperations")+":
"+HTMLArea._lc("Rules","TableOperations")+":
"; var _27=TableOperations.createStyleFieldset(_1a.doc,_1a.editor,_12); var p=_1a.doc.getElementById("--HA-style"); p.appendChild(_27); var _29=TableOperations.createStyleLayoutFieldset(_1a.doc,_1a.editor,_12); p=_1a.doc.getElementById("--HA-layout"); p.appendChild(_29); _1a.modal=true; _1a.addButtons("OK","Cancel"); _1a.showAtElement(_1a.editor._iframe,"c"); }); }; TableOperations.prototype.dialogRowCellProperties=function(_2a){ var _2b=this.getClosest(_2a?"td":"tr"); var _2c=this.getClosest("table"); var _2d=new PopupWin(this.editor,_2a?HTMLArea._lc("Cell Properties","TableOperations"):HTMLArea._lc("Row Properties","TableOperations"),function(_2e,_2f){ TableOperations.processStyle(_2f,_2b); for(var i in _2f){ if(typeof _2f[i]=="function"){ continue; } var val=_2f[i]; switch(i){ case "f_align": _2b.align=val; break; case "f_char": _2b.ch=val; break; case "f_valign": _2b.vAlign=val; break; } } _2e.editor.forceRedraw(); _2e.editor.focusEditor(); _2e.editor.updateToolbar(); var _32=_2c.style.borderCollapse; _2c.style.borderCollapse="collapse"; _2c.style.borderCollapse="separate"; _2c.style.borderCollapse=_32; },function(_33){ var _34=_2b.align; var _35=_2b.vAlign; var _36=_2b.ch; function selected(val){ return val?" selected":""; } _33.content.style.width="400px"; _33.content.innerHTML="
"+HTMLArea._lc(_2a?"Cell Properties":"Row Properties","TableOperations")+"
"+"
"; var _38=TableOperations.createStyleFieldset(_33.doc,_33.editor,_2b); var p=_33.doc.getElementById("--HA-style"); p.appendChild(_38); var _3a=TableOperations.createStyleLayoutFieldset(_33.doc,_33.editor,_2b); p=_33.doc.getElementById("--HA-layout"); p.appendChild(_3a); _33.modal=true; _33.addButtons("OK","Cancel"); _33.showAtElement(_33.editor._iframe,"c"); }); }; TableOperations.prototype.buttonPress=function(_3b,_3c){ this.editor=_3b; var _3d=HTMLArea.is_gecko?"
":""; function clearRow(tr){ var tds=tr.getElementsByTagName("td"); for(var i=tds.length;--i>=0;){ var td=tds[i]; td.rowSpan=1; td.innerHTML=_3d; } } function splitRow(td){ var n=parseInt(""+td.rowSpan); var nc=parseInt(""+td.colSpan); td.rowSpan=1; tr=td.parentNode; var itr=tr.rowIndex; var trs=tr.parentNode.rows; var _47=td.cellIndex; while(--n>0){ tr=trs[++itr]; var otd=_3b._doc.createElement("td"); otd.colSpan=td.colSpan; otd.innerHTML=_3d; tr.insertBefore(otd,tr.cells[_47]); } _3b.forceRedraw(); _3b.updateToolbar(); } function splitCol(td){ var nc=parseInt(""+td.colSpan); td.colSpan=1; tr=td.parentNode; var ref=td.nextSibling; while(--nc>0){ var otd=_3b._doc.createElement("td"); otd.rowSpan=td.rowSpan; otd.innerHTML=_3d; tr.insertBefore(otd,ref); } _3b.forceRedraw(); _3b.updateToolbar(); } function splitCell(td){ var nc=parseInt(""+td.colSpan); splitCol(td); var _4f=td.parentNode.cells; var _50=td.cellIndex; while(nc-->0){ splitRow(_4f[_50++]); } } function selectNextNode(el){ var _52=el.nextSibling; while(_52&&_52.nodeType!=1){ _52=_52.nextSibling; } if(!_52){ _52=el.previousSibling; while(_52&&_52.nodeType!=1){ _52=_52.previousSibling; } } if(!_52){ _52=el.parentNode; } _3b.selectNodeContents(_52); } function cellMerge(_53,_54,_55,_56,_57){ var _58=[]; var _59=[]; try{ for(i=_55;i<_55+_57;i++){ var row=_53.rows[i]; for(j=_54;j<_54+_56;j++){ if(row.cells[j].colSpan>1||row.cells[j].rowSpan>1){ splitCell(row.cells[j]); } _59.push(row.cells[j]); } if(_59.length>0){ _58.push(_59); _59=[]; } } } catch(e){ alert("Invalid selection"); return false; } var _5b=_58[0][0].parentNode.rowIndex; var _5c=_58[_58.length-1][0].parentNode.rowIndex; var _5d=_58[_58.length-1][0].rowSpan; var _5e=""; for(i=0;i<_58.length;++i){ var _59=_58[i]; for(var j=0;j<_59.length;++j){ var _60=_59[j]; _5e+=_60.innerHTML; (i||j)&&(_60.parentNode.removeChild(_60)); } } var td=_58[0][0]; td.innerHTML=_5e; td.rowSpan=_5c-_5b+_5d; var _62=0; for(j=0;j<_58[0].length;j++){ _62+=_58[0][j].colSpan; } td.colSpan=_62; _3b.selectNodeContents(td); _3b.forceRedraw(); _3b.focusEditor(); } switch(_3c){ case "TO-row-insert-above": case "TO-row-insert-under": var tr=this.getClosest("tr"); if(!tr){ break; } var otr=tr.cloneNode(true); clearRow(otr); tr.parentNode.insertBefore(otr,/under/.test(_3c)?tr.nextSibling:tr); _3b.forceRedraw(); _3b.focusEditor(); break; case "TO-row-delete": var tr=this.getClosest("tr"); if(!tr){ break; } var par=tr.parentNode; if(par.rows.length==1){ alert(HTMLArea._lc("HTMLArea cowardly refuses to delete the last row in table.","TableOperations")); break; } selectNextNode(tr); par.removeChild(tr); _3b.forceRedraw(); _3b.focusEditor(); _3b.updateToolbar(); break; case "TO-row-split": var td=this.getClosest("td"); if(!td){ break; } splitRow(td); break; case "TO-col-insert-before": case "TO-col-insert-after": var td=this.getClosest("td"); if(!td){ break; } var _67=td.parentNode.parentNode.rows; var _68=td.cellIndex; var _69=(td.parentNode.cells.length==_68+1); for(var i=_67.length;--i>=0;){ var tr=_67[i]; var otd=_3b._doc.createElement("td"); otd.innerHTML=_3d; if(_69&&HTMLArea.is_ie){ tr.insertBefore(otd); }else{ var ref=tr.cells[_68+(/after/.test(_3c)?1:0)]; tr.insertBefore(otd,ref); } } _3b.focusEditor(); break; case "TO-col-split": var td=this.getClosest("td"); if(!td){ break; } splitCol(td); break; case "TO-col-delete": var td=this.getClosest("td"); if(!td){ break; } var _68=td.cellIndex; if(td.parentNode.cells.length==1){ alert(HTMLArea._lc("HTMLArea cowardly refuses to delete the last column in table.","TableOperations")); break; } selectNextNode(td); var _67=td.parentNode.parentNode.rows; for(var i=_67.length;--i>=0;){ var tr=_67[i]; tr.removeChild(tr.cells[_68]); } _3b.forceRedraw(); _3b.focusEditor(); _3b.updateToolbar(); break; case "TO-cell-split": var td=this.getClosest("td"); if(!td){ break; } splitCell(td); break; case "TO-cell-insert-before": case "TO-cell-insert-after": var td=this.getClosest("td"); if(!td){ break; } var tr=td.parentNode; var otd=_3b._doc.createElement("td"); otd.innerHTML=_3d; tr.insertBefore(otd,/after/.test(_3c)?td.nextSibling:td); _3b.forceRedraw(); _3b.focusEditor(); break; case "TO-cell-delete": var td=this.getClosest("td"); if(!td){ break; } if(td.parentNode.cells.length==1){ alert(HTMLArea._lc("HTMLArea cowardly refuses to delete the last cell in row.","TableOperations")); break; } selectNextNode(td); td.parentNode.removeChild(td); _3b.forceRedraw(); _3b.updateToolbar(); break; case "TO-cell-merge": var sel=_3b._getSelection(); if(!HTMLArea.is_ie&&sel.rangeCount>1){ var _6e=sel.getRangeAt(0); var td=_6e.startContainer.childNodes[_6e.startOffset]; var tr=td.parentNode; var _6f=td.cellIndex; var _70=tr.rowIndex; var _71=0; var _72=_70; var _73=0; var _74=0; var td2,tr2; for(i=0;i_73){ _73=_74; } if(tr2.rowIndex+td2.rowSpan-1>_71){ _71=tr2.rowIndex+td2.rowSpan-1; } } var _76=_71-_70+1; var _77=tr.parentNode; cellMerge(_77,_6f,_70,_73,_76); }else{ var td=this.getClosest("td"); if(!td){ alert(HTMLArea._lc("Please click into some cell","TableOperations")); break; } _3b._popupDialog("plugin://TableOperations/merge_cells.html",function(_78){ if(!_78){ return false; } _73=parseInt(_78["f_cols"],10)+1; _76=parseInt(_78["f_rows"],10)+1; var tr=td.parentNode; var _7a=td.cellIndex; var _7b=tr.rowIndex; var _7c=tr.parentNode; cellMerge(_7c,_7a,_7b,_73,_76); },null); } break; case "TO-table-prop": this.dialogTableProperties(); break; case "TO-row-prop": this.dialogRowCellProperties(false); break; case "TO-cell-prop": this.dialogRowCellProperties(true); break; default: alert("Button ["+_3c+"] not yet implemented"); } }; TableOperations.btnList=[["table-prop","table","Table properties"],null,["row-prop","tr","Row properties"],["row-insert-above","tr","Insert row before"],["row-insert-under","tr","Insert row after"],["row-delete","tr","Delete row"],["row-split","td[rowSpan!=1]","Split row"],null,["col-insert-before","td","Insert column before"],["col-insert-after","td","Insert column after"],["col-delete","td","Delete column"],["col-split","td[colSpan!=1]","Split column"],null,["cell-prop","td","Cell properties"],["cell-insert-before","td","Insert cell before"],["cell-insert-after","td","Insert cell after"],["cell-delete","td","Delete cell"],["cell-merge","tr","Merge cells"],["cell-split","td[colSpan!=1,rowSpan!=1]","Split cell"]]; TableOperations.getLength=function(_7d){ var len=parseInt(_7d); if(isNaN(len)){ len=""; } return len; }; TableOperations.processStyle=function(_7f,_80){ var _81=_80.style; for(var i in _7f){ if(typeof _7f[i]=="function"){ continue; } var val=_7f[i]; switch(i){ case "f_st_backgroundColor": _81.backgroundColor=val; break; case "f_st_color": _81.color=val; break; case "f_st_backgroundImage": if(/\S/.test(val)){ _81.backgroundImage="url("+val+")"; }else{ _81.backgroundImage="none"; } break; case "f_st_borderWidth": _81.borderWidth=val; break; case "f_st_borderStyle": _81.borderStyle=val; break; case "f_st_borderColor": _81.borderColor=val; break; case "f_st_borderCollapse": _81.borderCollapse=val?"collapse":""; break; case "f_st_width": if(/\S/.test(val)){ _81.width=val+_7f["f_st_widthUnit"]; }else{ _81.width=""; } break; case "f_st_height": if(/\S/.test(val)){ _81.height=val+_7f["f_st_heightUnit"]; }else{ _81.height=""; } break; case "f_st_textAlign": if(val=="char"){ var ch=_7f["f_st_textAlignChar"]; if(ch=="\""){ ch="\\\""; } _81.textAlign="\""+ch+"\""; }else{ if(val=="-"){ _81.textAlign=""; }else{ _81.textAlign=val; } } break; case "f_st_verticalAlign": _80.vAlign=""; if(val=="-"){ _81.verticalAlign=""; }else{ _81.verticalAlign=val; } break; case "f_st_float": _81.cssFloat=val; break; } } }; TableOperations.createColorButton=function(doc,_86,_87,_88){ if(!_87){ _87=""; }else{ if(!/#/.test(_87)){ _87=HTMLArea._colorToRgb(_87); } } var df=doc.createElement("span"); var _8a=doc.createElement("input"); _8a.type="hidden"; df.appendChild(_8a); _8a.name="f_st_"+_88; _8a.value=_87; var _8b=doc.createElement("span"); _8b.className="buttonColor"; df.appendChild(_8b); var _8c=doc.createElement("span"); _8c.className="chooser"; _8c.style.backgroundColor=_87; _8b.appendChild(_8c); _8b.onmouseover=function(){ if(!this.disabled){ this.className+=" buttonColor-hilite"; } }; _8b.onmouseout=function(){ if(!this.disabled){ this.className="buttonColor"; } }; _8c.onclick=function(){ if(this.parentNode.disabled){ return false; } _86._popupDialog("select_color.html",function(_8d){ if(_8d){ _8c.style.backgroundColor="#"+_8d; _8a.value="#"+_8d; } },_87); }; var _8e=doc.createElement("span"); _8e.innerHTML="×"; _8e.className="nocolor"; _8e.title=HTMLArea._lc("Unset color","TableOperations"); _8b.appendChild(_8e); _8e.onmouseover=function(){ if(!this.parentNode.disabled){ this.className+=" nocolor-hilite"; } }; _8e.onmouseout=function(){ if(!this.parentNode.disabled){ this.className="nocolor"; } }; _8e.onclick=function(){ _8c.style.backgroundColor=""; _8a.value=""; }; return df; }; TableOperations.createStyleLayoutFieldset=function(doc,_90,el){ var _92=doc.createElement("fieldset"); var _93=doc.createElement("legend"); _92.appendChild(_93); _93.innerHTML=HTMLArea._lc("Layout","TableOperations"); var _94=doc.createElement("table"); _92.appendChild(_94); _94.style.width="100%"; var _95=doc.createElement("tbody"); _94.appendChild(_95); var _96=el.tagName.toLowerCase(); var tr,td,input,select,option,options,i; if(_96!="td"&&_96!="tr"&&_96!="th"){ tr=doc.createElement("tr"); _95.appendChild(tr); td=doc.createElement("td"); td.className="label"; tr.appendChild(td); td.innerHTML=HTMLArea._lc("Float","TableOperations")+":"; td=doc.createElement("td"); tr.appendChild(td); select=doc.createElement("select"); td.appendChild(select); select.name="f_st_float"; options=["None","Left","Right"]; for(var i=0;i