(function(){var b=/^(?:td|th)$/;function s(F){var y=F.createBookmarks();var v=F.getRanges();var w=[];var G={};function D(H){if(w.length>0){return}if(H.type==CKEDITOR.NODE_ELEMENT&&b.test(H.getName())&&!H.getCustomData("selected_cell")){CKEDITOR.dom.element.setMarker(G,H,"selected_cell",true);w.push(H)}}for(var B=0;B1&&G&&D[I]==G[I]){w=D[I];w.rowSpan+=1}else{w=new CKEDITOR.dom.element(D[I]).clone();w.removeAttribute("rowSpan");!CKEDITOR.env.ie&&w.appendBogus();y.append(w);w=w.$}I+=w.colSpan-1}z?y.insertBefore(B):y.insertAfter(B)}function c(D){if(D instanceof CKEDITOR.dom.selection){var z=s(D),x=z[0],I=x.getAscendant("table"),L=CKEDITOR.tools.buildTableMap(I),u=z[0].getParent(),K=u.$.rowIndex,E=z[z.length-1],v=E.getParent().$.rowIndex+E.$.rowSpan-1,J=[];for(var H=K;H<=v;H++){var C=L[H],A=new CKEDITOR.dom.element(I.$.rows[H]);for(var F=0;F0?B[K-1]:null)||I.$.parentNode);for(H=J.length;H>=0;H--){c(J[H])}return G}else{if(D instanceof CKEDITOR.dom.element){I=D.getAscendant("table");if(I.$.rows.length==1){I.remove()}else{D.remove()}}}return null}function k(u,v){var z=u.getParent(),A=z.$.cells;var x=0;for(var y=0;yu){u=w}}return u}function n(C,A){var I=s(C),B=I[0],H=B.getAscendant("table"),v=h(I,1),y=h(I),E=A?v:y;var u=CKEDITOR.tools.buildTableMap(H),x=[],w=[],F=u.length;for(var z=0;z1&&w.length&&w[z]==x[z]){D=x[z];D.colSpan+=1}else{D=new CKEDITOR.dom.element(x[z]).clone();D.removeAttribute("colSpan");!CKEDITOR.env.ie&&D.appendBogus();D[A?"insertBefore":"insertAfter"].call(D,new CKEDITOR.dom.element(x[z]));D=D.$}z+=D.rowSpan-1}}function g(u){var y=s(u),x=y[0],E=y[y.length-1],J=x.getAscendant("table"),L=CKEDITOR.tools.buildTableMap(J),v,z,K=[];for(var I=0,B=L.length;I1){v=w[y-1]+1;break}}if(!v){v=w[0]>0?(w[0]-1):(w[w.length-1]+1)}var B=A.$.rows;for(y=0,z=B.length;y=0;w--){m(u[w])}if(v){e(v,true)}else{if(y){y.remove()}}}else{if(x instanceof CKEDITOR.dom.element){var z=x.getParent();if(z.getChildCount()==1){z.remove()}else{x.remove()}}}}function f(u){var v=u.getBogus();v&&v.remove();u.trim()}function e(u,w){var v=new CKEDITOR.dom.range(u.getDocument());if(!v["moveToElementEdit"+(w?"End":"Start")](u)){v.selectNodeContents(u);v.collapse(w?false:true)}v.select(true)}function q(y,x,u){var v=y[x];if(typeof u=="undefined"){return v}for(var w=0;v&&w=T){z.removeAttribute("rowSpan")}else{z.$.rowSpan=Z}if(Z>=R){z.removeAttribute("colSpan")}else{z.$.colSpan=B}var N=new CKEDITOR.dom.nodeList(U.$.rows),G=N.count();for(S=G-1;S>=0;S--){var Q=N.getItem(S);if(!Q.$.cells.length){Q.remove();G++;continue}}return z}else{return(Z*B)==V}}function d(N,B){var w=s(N);if(w.length>1){return false}else{if(B){return true}}var v=w[0],u=v.getParent(),J=u.getAscendant("table"),M=CKEDITOR.tools.buildTableMap(J),D=u.$.rowIndex,G=q(M,D,v),x=v.$.rowSpan,F,z,y,H;if(x>1){z=Math.ceil(x/2);y=Math.floor(x/2);H=D+z;var E=new CKEDITOR.dom.element(J.$.rows[H]),K=q(M,H),A;F=v.clone();for(var L=0;LG){F.insertBefore(new CKEDITOR.dom.element(A));break}else{A=null}}if(!A){E.append(F,true)}}else{y=z=1;E=u.clone();E.insertAfter(u);E.append(F=v.clone());var C=q(M,D);for(var I=0;I1){return false}else{if(B){return true}}var F=I[0],A=F.getParent(),H=A.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(H),C=A.$.rowIndex,E=q(u,C,F),x=F.$.colSpan,w,z,G;if(x>1){z=Math.ceil(x/2);G=Math.floor(x/2)}else{G=z=1;var y=o(u,E);for(var v=0;v0?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}},tablecell_insertBefore:{label:v.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:v.cell.insertAfter,group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:v.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:v.cell.merge,group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:v.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:v.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:v.cell.splitHorizontal,group:"tablecell",command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:v.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:v.cell.title,group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:v.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:v.row.insertBefore,group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:v.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:v.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:v.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:v.column.insertBefore,group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:v.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:v.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}})}if(u.contextMenu){u.contextMenu.addListener(function(w,x){if(!w||w.isReadOnly()){return null}while(w){if(w.getName() in i){return{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}}w=w.getParent()}return null})}},getSelectedCells:s};CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})();CKEDITOR.tools.buildTableMap=function(o){var n=o.$.rows;var a=-1;var m=[];for(var f=0;f