N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(f[y][x]){G.addClass(f[y][x].elm,"mceSelected")}}}}}c.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:g,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}c.create("tinymce.plugins.TablePlugin",{init:function(f,g){var e,l,h=true;function k(o){var n=f.selection,m=f.dom.getParent(o||n.getNode(),"table");if(m){return new a(m,f.dom,n)}}function j(){f.getBody().style.webkitUserSelect="";if(h){f.dom.removeClass(f.dom.select("td.mceSelected,th.mceSelected"),"mceSelected");h=false}}d([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(m){f.addButton(m[0],{title:m[1],cmd:m[2],ui:m[3]})});if(!c.isIE){f.onClick.add(function(m,n){n=n.target;if(n.nodeName==="TABLE"){m.selection.select(n);m.nodeChanged()}})}f.onPreProcess.add(function(n,o){var m,p,q,s=n.dom,r;m=s.select("table",o.node);p=m.length;while(p--){q=m[p];s.setAttrib(q,"data-mce-style","");if((r=s.getAttrib(q,"width"))){s.setStyle(q,"width",r);s.setAttrib(q,"width","")}if((r=s.getAttrib(q,"height"))){s.setStyle(q,"height",r);s.setAttrib(q,"height","")}}});f.onNodeChange.add(function(o,m,r){var q;r=o.selection.getStart();q=o.dom.getParent(r,"td,th,caption");m.setActive("table",r.nodeName==="TABLE"||!!q);if(q&&q.nodeName==="CAPTION"){q=0}m.setDisabled("delete_table",!q);m.setDisabled("delete_col",!q);m.setDisabled("delete_table",!q);m.setDisabled("delete_row",!q);m.setDisabled("col_after",!q);m.setDisabled("col_before",!q);m.setDisabled("row_after",!q);m.setDisabled("row_before",!q);m.setDisabled("row_props",!q);m.setDisabled("cell_props",!q);m.setDisabled("split_cells",!q);m.setDisabled("merge_cells",!q)});f.onInit.add(function(n){var m,q,r=n.dom,o;e=n.windowManager;n.onMouseDown.add(function(s,t){if(t.button!=2){j();q=r.getParent(t.target,"td,th");m=r.getParent(q,"table")}});r.bind(n.getDoc(),"mouseover",function(w){var u,t,v=w.target;if(q&&(o||v!=q)&&(v.nodeName=="TD"||v.nodeName=="TH")){t=r.getParent(v,"table");if(t==m){if(!o){o=k(t);o.setStartCell(q);n.getBody().style.webkitUserSelect="none"}o.setEndCell(v);h=true}u=n.selection.getSel();try{if(u.removeAllRanges){u.removeAllRanges()}else{u.empty()}}catch(s){}w.preventDefault()}});n.onMouseUp.add(function(B,C){var t,v=B.selection,D,E=v.getSel(),s,w,u,A;if(q){if(o){B.getBody().style.webkitUserSelect=""}function z(F,H){var G=new c.dom.TreeWalker(F,F);do{if(F.nodeType==3&&c.trim(F.nodeValue).length!=0){if(H){t.setStart(F,0)}else{t.setEnd(F,F.nodeValue.length)}return}if(F.nodeName=="BR"){if(H){t.setStartBefore(F)}else{t.setEndBefore(F)}return}}while(F=(H?G.next():G.prev()))}D=r.select("td.mceSelected,th.mceSelected");if(D.length>0){t=r.createRng();w=D[0];A=D[D.length-1];t.setStart(w);t.setEnd(w);z(w,1);s=new c.dom.TreeWalker(w,r.getParent(D[0],"table"));do{if(w.nodeName=="TD"||w.nodeName=="TH"){if(!r.hasClass(w,"mceSelected")){break}u=w}}while(w=s.next());z(u);v.setRng(t)}B.nodeChanged();q=o=m=null}});n.onKeyUp.add(function(s,t){j()});if(n&&n.plugins.contextmenu){n.plugins.contextmenu.onContextMenu.add(function(u,s,w){var z,v=n.selection,t=v.getNode()||n.getBody();if(n.dom.getParent(w,"td")||n.dom.getParent(w,"th")||n.dom.select("td.mceSelected,th.mceSelected").length){s.removeAll();if(t.nodeName=="A"&&!n.dom.getAttrib(t,"name")){s.add({title:"advanced.link_desc",icon:"link",cmd:n.plugins.advlink?"mceAdvLink":"mceLink",ui:true});s.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});s.addSeparator()}if(t.nodeName=="IMG"&&t.className.indexOf("mceItem")==-1){s.add({title:"advanced.image_desc",icon:"image",cmd:n.plugins.advimage?"mceAdvImage":"mceImage",ui:true});s.addSeparator()}s.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});s.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});s.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});s.addSeparator();z=s.addMenu({title:"table.cell"});z.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});z.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});z.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});z=s.addMenu({title:"table.row"});z.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});z.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});z.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});z.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});z.addSeparator();z.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});z.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});z.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!l);z.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!l);z=s.addMenu({title:"table.col"});z.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});z.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});z.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{s.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(!c.isIE){function p(){var s;for(s=n.getBody().lastChild;s&&s.nodeType==3&&!s.nodeValue.length;s=s.previousSibling){}if(s&&s.nodeName=="TABLE"){n.dom.add(n.getBody(),"p",null,'
')}}if(c.isGecko){n.onKeyDown.add(function(t,v){var s,u,w=t.dom;if(v.keyCode==37||v.keyCode==38){s=t.selection.getRng();u=w.getParent(s.startContainer,"table");if(u&&t.getBody().firstChild==u){if(b(s,u)){s=w.createRng();s.setStartBefore(u);s.setEndBefore(u);t.selection.setRng(s);v.preventDefault()}}}})}n.onKeyUp.add(p);n.onSetContent.add(p);n.onVisualAid.add(p);n.onPreProcess.add(function(s,u){var t=u.node.lastChild;if(t&&t.childNodes.length==1&&t.firstChild.nodeName=="BR"){s.dom.remove(t)}});p()}});d({mceTableSplitCells:function(m){m.split()},mceTableMergeCells:function(n){var o,p,m;m=f.dom.getParent(f.selection.getNode(),"th,td");if(m){o=m.rowSpan;p=m.colSpan}if(!f.dom.select("td.mceSelected,th.mceSelected").length){e.open({url:g+"/merge_cells.htm",width:240+parseInt(f.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(f.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:o,cols:p,onaction:function(q){n.merge(m,q.cols,q.rows)},plugin_url:g})}else{n.merge()}},mceTableInsertRowBefore:function(m){m.insertRow(true)},mceTableInsertRowAfter:function(m){m.insertRow()},mceTableInsertColBefore:function(m){m.insertCol(true)},mceTableInsertColAfter:function(m){m.insertCol()},mceTableDeleteCol:function(m){m.deleteCols()},mceTableDeleteRow:function(m){m.deleteRows()},mceTableCutRow:function(m){l=m.cutRows()},mceTableCopyRow:function(m){l=m.copyRows()},mceTablePasteRowBefore:function(m){m.pasteRows(l,true)},mceTablePasteRowAfter:function(m){m.pasteRows(l)},mceTableDelete:function(m){m.deleteTable()}},function(n,m){f.addCommand(m,function(){var o=k();if(o){n(o);f.execCommand("mceRepaint");j()}})});d({mceInsertTable:function(m){e.open({url:g+"/table.htm",width:400+parseInt(f.getLang("table.table_delta_width",0)),height:320+parseInt(f.getLang("table.table_delta_height",0)),inline:1},{plugin_url:g,action:m?m.action:0})},mceTableRowProps:function(){e.open({url:g+"/row.htm",width:400+parseInt(f.getLang("table.rowprops_delta_width",0)),height:295+parseInt(f.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:g})},mceTableCellProps:function(){e.open({url:g+"/cell.htm",width:400+parseInt(f.getLang("table.cellprops_delta_width",0)),height:295+parseInt(f.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:g})}},function(n,m){f.addCommand(m,function(o,p){n(p)})})}});c.PluginManager.add("table",c.plugins.TablePlugin)})(tinymce);