Type.registerNamespace("Telerik.Web.UI"); Telerik.Web.UI.LayoutBuilderEngine=function(a){this._selectedTable=null; this._selectedCell=null; this._selectedRow=null; this._selectedRowCells=[]; this._selectedRowIndex=null; this._tableState=[]; this._tableStateRowsCount=0; this._tableStateColsCount=0; this._tableStateId="LayoutBuilder_tableState_dump"; this._tableStateTableStyle="radtblder_stateMatrixTable"; this._tableStateCellStyle="radtblder_stateMatrixCell"; this._selectedCellClassName=""; this._states=[]; this._currentStateIndex=-1; this.set_selectedTable(a); if(this._selectedTable){this.set_selectedCell(); }if(!a){a=document.createElement("table"); }Telerik.Web.UI.LayoutBuilderEngine.initializeBase(this,[a]); }; Telerik.Web.UI.LayoutBuilderEngine.prototype={get_selectedTable:function(){return this._selectedTable; },set_selectedTable:function(a){this._selectedTable=null; if(a&&a.tagName=="TABLE"){this._selectedTable=a; this._setTableState(); }},get_selectedCell:function(){return this._selectedCell; },set_selectedCell:function(b,a){if(!this._selectedTable||this._selectedTable.tagName!="TABLE"){return; }if(!b){b=this._selectedTable.rows[0].cells[0]; }if(b.tagName=="TD"||b.tagName=="TH"){if(this._selectedCell!=b){this._selectedCellClassName=b.className; }this._selectedCell=b; }else{this._selectedCell=null; }if(this._selectedCell){this.set_selectedRow(); }if(this._selectedCell&&(false!=a)&&this._currentStateIndex==-1){if(this._states.length==1&&this._states[0]["commandName"]=="selection"){this._states=[]; }var c={commandName:"selection",selectedColIndex:this._selectedCell.cellIndex,selectedRowIndex:this._selectedRowIndex,nextSelectedColIndex:this._selectedCell.cellIndex,nextSelectedRowIndex:this._selectedRowIndex}; this._storeState(c); }},set_selectedRow:function(){if(this._selectedCell){this._selectedRow=this._selectedCell.parentNode; if(this._selectedRow){this._selectedRowCells=this._selectedRow.cells; this._selectedRowIndex=this._selectedRow.rowIndex; }else{this._selectedRowCells=null; this._selectedRowIndex=null; }}},_raiseException:function(a){},_initializesTableStateCounts:function(){var h=this._selectedTable.rows; var e=h.length; var d=0; for(var b=0; b-1; a--){if(this._tableState[b][a]==d){e.rowIndex=b; e.colIndex=a; c=true; break; }}if(c){break; }}return e; },_getLeftBottomStateIndexes:function(f,g){var e={}; var d=f+","+g; for(var b=(this._tableStateRowsCount-1); b>-1; b--){var c=false; for(var a=0; a0){this._setRowSpan(c,b); }else{a=false; }return a; },canUndo:function(){return(01){this._setRowSpan(o,h-1); }}}}}for(var k=0; k0; a--){var e=this._getStateValueIndexes(c,g); var d=e.rowIndex; if(d==c){var h=e.colIndex; f=parseInt(h); break; }}}break; }}return f; },deleteRow:function(q){if(!this._selectedTable){return false; }var b=this._getLeftTopStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); var c=b.rowIndex; var d=c-1; var r=this._selectedRowIndex+1; var a=this._selectedTable.rows[r]; if(typeof(c)!="undefined"&&typeof(b.colIndex)!="undefined"){var l=";"; var g=0; for(var n=0; n=0&&this._tableState[c][n]==this._tableState[d][n]){var m=this._getSelectedTableCellByStateIndexes(d,n); this._alterRowSpan(m,-1); }else{for(var h=n; h>-1; h--){var k=this._getStateValueIndexes(r,h); if(r==k.rowIndex){g=parseInt(k.colIndex)+1; break; }}var p=this._insertCell(a,g,s.innerHTML,s); this._setColSpan(p,this._getColSpan(s)); this._setRowSpan(p,f-1); g++; }}}}var o=this._selectedRow.parentNode; if(o){o.removeChild(this._selectedRow); }return true; }},insertRowBelow:function(f){if(!this._selectedTable){return false; }var l=this._getLeftBottomStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); if(typeof(l.rowIndex)!="undefined"&&typeof(l.colIndex)!="undefined"){var d=l.rowIndex; var k=d+1; var e=this._insertRow(k); $telerik.mergeElementAttributes(this._selectedRow,e); var g=";"; for(var a=0; a1&&k!=this._tableStateRowsCount&&this._tableState[d][a]==this._tableState[k][a]){this._alterRowSpan(h,1); }else{var c=this._insertCell(e,e.cells.length," ",h); var b=this._getColSpan(h); if(b>1){this._setColSpan(c,b); }}}}}return true; },insertRowAbove:function(h){if(!this._selectedTable){return false; }var d=this._insertRow(this._selectedRowIndex); $telerik.mergeElementAttributes(this._selectedRow,d); var b=0; var f=this._selectedRowCells.length; this._alterNonCurrentRowCellsRowspan(this._selectedRowIndex,1); for(var a=0; a1){this._setColSpan(c,e); }}return true; },insertColumnToTheLeft:function(e){if(!this._selectedTable){return false; }var b=this._getLeftTopStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); if(typeof(b.colIndex)!="undefined"){var m=parseInt(b.colIndex); if(isNaN(m)){m=0; }for(var g=0; g1&&g!=this._selectedRowIndex){q.setAttribute("colSpan",h+1); var c=this._getRowSpan(q); if(c>1){for(var k=1; k-1; k--){var n=this._getStateValueIndexes(g,k); if(n.rowIndex==g){p=n.colIndex+1; break; }}var q=this._getSelectedTableCellByStateIndexes(g,m); var o=this._insertCell(f,p," ",q); }}}return true; },insertColumnToTheRight:function(e){if(!this._selectedTable){return false; }var b=this._getRightTopStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); if(typeof(b.colIndex)!="undefined"){var m=parseInt(b.colIndex); if(isNaN(m)){m=0; }for(var g=0; g1&&g!=this._selectedRowIndex){q.setAttribute("colSpan",h+1); var c=this._getRowSpan(q); if(c>1){for(var k=1; k1){this._setColSpan(h,l-1); }else{g.removeChild(h); }if(d>1){for(var b=1; b"+d.innerHTML; }e.removeChild(f); }else{this._raiseException("The cell can not be merged left!"); b=false; }return b; },canMergeTop:function(e){if(!e){e=this._selectedCell; }if(!e||!e.parentNode){return false; }var a=true; var b=e.parentNode.rowIndex; if(b==0){a=false; }else{var c=this._getLeftTopStateIndexes(b,e.cellIndex); if(typeof(c.rowIndex)=="undefined"||typeof(c.colIndex)=="undefined"){return false; }var d=this._getSelectedTableCellByStateIndexes(c.rowIndex-1,c.colIndex); a=this.canMergeDown(d); }return a; },mergeTop:function(c){var d=(c&&c.cell)?c.cell:this._selectedCell; if(!d||!d.parentNode){return false; }var a=true; if(this.canMergeTop(d)){var f=d.parentNode; var g=this._getLeftTopStateIndexes(f.rowIndex,d.cellIndex); var e=this._getSelectedTableCellByStateIndexes(g.rowIndex-1,g.colIndex); var b=d.innerHTML; if(b!=" "&&b!=" "){e.innerHTML+="
"+b; }this.set_selectedCell(e,false); this._alterRowSpan(e,this._getRowSpan(d)); f.removeChild(d); }else{this._raiseException("The cell cannot be merged top!"); a=false; }return a; },canMergeRight:function(e){if(!e){e=this._selectedCell; }if(!e||!e.parentNode){return false; }var a=true; var d=e.cellIndex; var b=e.parentNode; var f=b.rowIndex; if(typeof(f)=="undefined"){return false; }var g=b.cells.length; if(d==g-1){a=false; }else{var h=this._getRightTopStateIndexes(f,d); if(typeof(h.rowIndex)=="undefined"||typeof(h.colIndex)=="undefined"){return false; }var c=this._getSelectedTableCellByStateIndexes(h.rowIndex,h.colIndex+1); if(c&&(c.parentNode.rowIndex!=f||this._getRowSpan(e)!=this._getRowSpan(c))){a=false; }}return a; },mergeRight:function(f){var d=(f&&f.cell)?f.cell:this._selectedCell; if(!d||!d.parentNode){return false; }var a=true; if(this.canMergeRight(d)){var c=d.parentNode; var b=c.cells[d.cellIndex+1]; var e=b.innerHTML; if(e!=" "&&e!=" "){d.innerHTML+="
"+e; }this._setColSpan(d,this._getColSpan(d)+this._getColSpan(b)); c.removeChild(b); }else{this._raiseException("The cell can not be merged right!"); a=false; }return a; },canMergeDown:function(o){if(!o){o=this._selectedCell; }if(!o||!o.parentNode){return false; }var e=true; var n=this._getRowSpan(o); var d=this._getColSpan(o); var g=o.parentNode.rowIndex; var c=g+n; if(c==this._tableStateRowsCount){e=false; }else{var b=this._getLeftTopStateIndexes(g,o.cellIndex); if(typeof(b.colIndex)!="undefined"){var l=b.colIndex; var m=this._getStateValueIndexes(c,l); var f=m.rowIndex; var a=parseInt(m.colIndex); var h=this._selectedTable.rows[f].cells[a]; if(h.parentNode.parentNode.tagName!=o.parentNode.parentNode.tagName){return false; }var k=this._getColSpan(h); if(d!=k){e=false; }else{if(l!=0){if(this._tableState[c][l-1]==this._tableState[c][l]){e=false; }}}}}return e; },mergeDown:function(f){var d=(f&&f.cell)?f.cell:this._selectedCell; if(!d||!d.parentNode){return false; }var b=true; if(this.canMergeDown(d)){var a=this._getLeftBottomStateIndexes(d.parentNode.rowIndex,d.cellIndex); var e=this._getSelectedTableCellByStateIndexes(a.rowIndex+1,a.colIndex); var c=e.innerHTML; if(c!=" "&&c!=" "){d.innerHTML+="
"+c; }this._alterRowSpan(d,this._getRowSpan(e)); e.parentNode.removeChild(e); }else{this._raiseException("The cell can not be merged down!"); b=false; }return b; },canDeleteCell:function(g){if(!g){g=this._selectedCell; }if(!g||!g.parentNode){return false; }var h=0; var a=this._getRowSpan(g); var b=this._getColSpan(g); var e=g.parentNode.rowIndex; var d=g.cellIndex; var f=this._getLeftTopStateIndexes(e,d); var c=this._getLeftBottomStateIndexes(e,d); if(a==this._tableStateRowsCount){h=1; }else{if(b==this._tableStateColsCount){h=2; }else{if(this.canMergeLeft(g)){h=3; }else{if(this.canMergeRight(g)){h=4; }else{if(this.canMergeDown(g)){h=5; }else{if(this.canMergeTop(g)){h=6; }}}}}}return h; },deleteCell:function(f){var g=(f&&f.cell)?f.cell:this._selectedCell; if(!g||!g.parentNode){return false; }var a=true; var c=g.parentNode; var l=this.canDeleteCell(g); switch(l){case 1:c.removeChild(g); break; case 2:c.parentNode.removeChild(c); break; case 3:var d=c.cells[g.cellIndex-1]; this.set_selectedCell(d,false); a=this.mergeRight(); break; case 4:var e=c.cells[g.cellIndex+1]; this.set_selectedCell(e,false); a=this.mergeLeft(); break; case 5:var b=this._getLeftBottomStateIndexes(c.rowIndex,g.cellIndex); var k=this._getSelectedTableCellByStateIndexes(b.rowIndex+1,b.colIndex); this.set_selectedCell(k,false); a=this.mergeTop(); break; case 6:var b=this._getLeftBottomStateIndexes(c.rowIndex,g.cellIndex); var h=this._getSelectedTableCellByStateIndexes(b.rowIndex-1,b.colIndex); this.set_selectedCell(h,false); a=this.mergeDown(); break; default:this._raiseException("The cell can not be deleted!"); a=false; break; }if(a&&c&&c.cells.length==0){c.parentNode.removeChild(c); }return a; },splitCellHorizontally:function(g){if(!this._selectedCell){return false; }var u=this._selectedCell; var l=true; var m=this._getColSpan(u); var e=u.cellIndex; var h=this._selectedRow; var c=this._selectedRowIndex; var f=c+","+e; var t=this._insertCell(h,e+1," ",u); this._setRowSpan(t,this._getRowSpan(u)); if(m==1){var s=this._getLeftTopStateIndexes(c,e); var d=s.colIndex; var p=";"; for(var o=0; o=m){var q=Math.ceil(m/2); var k,r; if(m%2==0){k=q; r=q; }else{k=q; r=q-1; }}else{k=m-b; r=b; }this._setColSpan(u,k); this._setColSpan(t,r); }return l; },splitCellVertically:function(e){var s=this._selectedCell; if(!s){return false; }if(!s.parentNode){return false; }var h=true; var l=this._getRowSpan(s); var d=s.cellIndex; var g=this._selectedRow; var c=this._selectedRowIndex; var q=this._selectedRowCells; var n=q.length; var m=";"; var k=null; var r=[]; if(l==1){for(var o=0; o=l){if(l%2==0){f=a; b=a; }else{f=a; b=a-1; }}else{f=l-p; b=p; }this._setRowSpan(s,f); arStateIndexes=this._getLeftTopStateIndexes(c,d); alterRowIndex=c+f; newCellColIndex=0; for(var o=arStateIndexes.colIndex; o>-1; o--){r=this._getStateValueIndexes(alterRowIndex,o); if(r.rowIndex==alterRowIndex){newCellColIndex=r.colIndex+1; break; }}newCell=this._insertCell(this._selectedTable.rows[alterRowIndex],newCellColIndex," ",s); this._setColSpan(newCell,this._getColSpan(s)); this._setRowSpan(newCell,b); }return h; },setAsContentCell:function(b){var a=this._selectedCell; if(!a){return false; }if(!a.parentNode){return false; }a.style.width="100%"; a.style.height="100%"; return true; },add_onCommand:function(a){this.get_events().addHandler("onCommand",a); },_raiseEvent:function(b,c){var a=this.get_events().getHandler(b); if(a){if(!c){c=Sys.EventArgs.Empty; }a(this,c); }}}; Telerik.Web.UI.LayoutBuilderEngine.registerClass("Telerik.Web.UI.LayoutBuilderEngine",Telerik.Web.UI.RadWebControl); if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();