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(c,b){if(!this._selectedTable||this._selectedTable.tagName!="TABLE"){return; }if(!c){c=this._selectedTable.rows[0].cells[0]; }if(c.tagName=="TD"||c.tagName=="TH"){if(this._selectedCell!=c){this._selectedCellClassName=c.className; }this._selectedCell=c; }else{this._selectedCell=null; }if(this._selectedCell){this.set_selectedRow(); }if(this._selectedCell&&(false!=b)&&this._currentStateIndex==-1){if(this._states.length==1&&this._states[0]["commandName"]=="selection"){this._states=[]; }var a={commandName:"selection",selectedColIndex:this._selectedCell.cellIndex,selectedRowIndex:this._selectedRowIndex,nextSelectedColIndex:this._selectedCell.cellIndex,nextSelectedRowIndex:this._selectedRowIndex}; this._storeState(a); }},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 d=this._selectedTable.rows; var b=d.length; var g=0; for(var a=0; a-1; c--){if(this._tableState[f][c]==d){e.rowIndex=f; e.colIndex=c; b=true; break; }}if(b){break; }}return e; },_getLeftBottomStateIndexes:function(g,a){var e={}; var d=g+","+a; for(var f=(this._tableStateRowsCount-1); f>-1; f--){var b=false; for(var c=0; c0){this._setRowSpan(c,a); }else{b=false; }return b; },canUndo:function(){return(01){this._setRowSpan(g,h-1); }}}}}for(var a=0; a0; a--){var k=this._getStateValueIndexes(l,h); var e=k.rowIndex; if(e==l){var m=k.colIndex; g=parseInt(m); break; }}}break; }}return g; },deleteRow:function(h){if(!this._selectedTable){return false; }var m=this._getLeftTopStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); var e=m.rowIndex; var n=e-1; var s=this._selectedRowIndex+1; var b=this._selectedTable.rows[s]; if(typeof(e)!="undefined"&&typeof(m.colIndex)!="undefined"){var a=";"; var k=0; for(var r=0; r=0&&this._tableState[e][r]==this._tableState[n][r]){var p=this._getSelectedTableCellByStateIndexes(n,r); this._alterRowSpan(p,-1); }else{for(var f=r; f>-1; f--){var q=this._getStateValueIndexes(s,f); if(s==q.rowIndex){k=parseInt(q.colIndex)+1; break; }}var o=this._insertCell(b,k,c.innerHTML,c); this._setColSpan(o,this._getColSpan(c)); this._setRowSpan(o,g-1); k++; }}}}var d=this._selectedRow.parentNode; if(d){d.removeChild(this._selectedRow); }return true; }},insertRowBelow:function(e){if(!this._selectedTable){return false; }var f=this._getLeftBottomStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); if(typeof(f.rowIndex)!="undefined"&&typeof(f.colIndex)!="undefined"){var c=f.rowIndex; var l=c+1; var g=this._insertRow(l); $telerik.mergeElementAttributes(this._selectedRow,g); var a=";"; for(var d=0; d1&&l!=this._tableStateRowsCount&&this._tableState[c][d]==this._tableState[l][d]){this._alterRowSpan(k,1); }else{var h=this._insertCell(g,g.cells.length," ",k); var b=this._getColSpan(k); if(b>1){this._setColSpan(h,b); }}}}}return true; },insertRowAbove:function(f){if(!this._selectedTable){return false; }var g=this._insertRow(this._selectedRowIndex); $telerik.mergeElementAttributes(this._selectedRow,g); var c=0; var e=this._selectedRowCells.length; this._alterNonCurrentRowCellsRowspan(this._selectedRowIndex,1); for(var a=0; a1){this._setColSpan(h,b); }}return true; },insertColumnToTheLeft:function(o){if(!this._selectedTable){return false; }var m=this._getLeftTopStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); if(typeof(m.colIndex)!="undefined"){var p=parseInt(m.colIndex); if(isNaN(p)){p=0; }for(var l=0; l1&&l!=this._selectedRowIndex){g.setAttribute("colSpan",f+1); var k=this._getRowSpan(g); if(k>1){for(var a=1; a-1; a--){var n=this._getStateValueIndexes(l,a); if(n.rowIndex==l){e=n.colIndex+1; break; }}var g=this._getSelectedTableCellByStateIndexes(l,p); var c=this._insertCell(q,e," ",g); }}}return true; },insertColumnToTheRight:function(o){if(!this._selectedTable){return false; }var m=this._getRightTopStateIndexes(this._selectedRowIndex,this._selectedCell.cellIndex); if(typeof(m.colIndex)!="undefined"){var p=parseInt(m.colIndex); if(isNaN(p)){p=0; }for(var l=0; l1&&l!=this._selectedRowIndex){g.setAttribute("colSpan",f+1); var k=this._getRowSpan(g); if(k>1){for(var a=1; a1){this._setColSpan(d,b-1); }else{m.removeChild(d); }if(c>1){for(var a=1; a"+f.innerHTML; }e.removeChild(d); }else{this._raiseException("The cell can not be merged left!"); c=false; }return c; },canMergeTop:function(e){if(!e){e=this._selectedCell; }if(!e||!e.parentNode){return false; }var d=true; var a=e.parentNode.rowIndex; if(a==0){d=false; }else{var b=this._getLeftTopStateIndexes(a,e.cellIndex); if(typeof(b.rowIndex)=="undefined"||typeof(b.colIndex)=="undefined"){return false; }var c=this._getSelectedTableCellByStateIndexes(b.rowIndex-1,b.colIndex); d=this.canMergeDown(c); }return d; },mergeTop:function(a){var g=(a&&a.cell)?a.cell:this._selectedCell; if(!g||!g.parentNode){return false; }var e=true; if(this.canMergeTop(g)){var f=g.parentNode; var b=this._getLeftTopStateIndexes(f.rowIndex,g.cellIndex); var c=this._getSelectedTableCellByStateIndexes(b.rowIndex-1,b.colIndex); var d=g.innerHTML; if(d!=" "&&d!=" "){c.innerHTML+="
"+d; }this.set_selectedCell(c,false); this._alterRowSpan(c,this._getRowSpan(g)); f.removeChild(g); }else{this._raiseException("The cell cannot be merged top!"); e=false; }return e; },canMergeRight:function(e){if(!e){e=this._selectedCell; }if(!e||!e.parentNode){return false; }var d=true; var a=e.cellIndex; var f=e.parentNode; var c=f.rowIndex; if(typeof(c)=="undefined"){return false; }var h=f.cells.length; if(a==h-1){d=false; }else{var g=this._getRightTopStateIndexes(c,a); if(typeof(g.rowIndex)=="undefined"||typeof(g.colIndex)=="undefined"){return false; }var b=this._getSelectedTableCellByStateIndexes(g.rowIndex,g.colIndex+1); if(b&&(b.parentNode.rowIndex!=c||this._getRowSpan(e)!=this._getRowSpan(b))){d=false; }}return d; },mergeRight:function(a){var f=(a&&a.cell)?a.cell:this._selectedCell; if(!f||!f.parentNode){return false; }var c=true; if(this.canMergeRight(f)){var e=f.parentNode; var b=e.cells[f.cellIndex+1]; var d=b.innerHTML; if(d!=" "&&d!=" "){f.innerHTML+="
"+d; }this._setColSpan(f,this._getColSpan(f)+this._getColSpan(b)); e.removeChild(b); }else{this._raiseException("The cell can not be merged right!"); c=false; }return c; },canMergeDown:function(f){if(!f){f=this._selectedCell; }if(!f||!f.parentNode){return false; }var e=true; var d=this._getRowSpan(f); var c=this._getColSpan(f); var n=f.parentNode.rowIndex; var b=n+d; if(b==this._tableStateRowsCount){e=false; }else{var l=this._getLeftTopStateIndexes(n,f.cellIndex); if(typeof(l.colIndex)!="undefined"){var o=l.colIndex; var m=this._getStateValueIndexes(b,o); var k=m.rowIndex; var g=parseInt(m.colIndex); var h=this._selectedTable.rows[k].cells[g]; if(h.parentNode.parentNode.tagName!=f.parentNode.parentNode.tagName){return false; }var a=this._getColSpan(h); if(c!=a){e=false; }else{if(o!=0){if(this._tableState[b][o-1]==this._tableState[b][o]){e=false; }}}}}return e; },mergeDown:function(b){var f=(b&&b.cell)?b.cell:this._selectedCell; if(!f||!f.parentNode){return false; }var d=true; if(this.canMergeDown(f)){var c=this._getLeftBottomStateIndexes(f.parentNode.rowIndex,f.cellIndex); var a=this._getSelectedTableCellByStateIndexes(c.rowIndex+1,c.colIndex); var e=a.innerHTML; if(e!=" "&&e!=" "){f.innerHTML+="
"+e; }this._alterRowSpan(f,this._getRowSpan(a)); a.parentNode.removeChild(a); }else{this._raiseException("The cell can not be merged down!"); d=false; }return d; },canDeleteCell:function(f){if(!f){f=this._selectedCell; }if(!f||!f.parentNode){return false; }var h=0; var g=this._getRowSpan(f); var e=this._getColSpan(f); var b=f.parentNode.rowIndex; var a=f.cellIndex; var d=this._getLeftTopStateIndexes(b,a); var c=this._getLeftBottomStateIndexes(b,a); if(g==this._tableStateRowsCount){h=1; }else{if(e==this._tableStateColsCount){h=2; }else{if(this.canMergeLeft(f)){h=3; }else{if(this.canMergeRight(f)){h=4; }else{if(this.canMergeDown(f)){h=5; }else{if(this.canMergeTop(f)){h=6; }}}}}}return h; },deleteCell:function(h){var d=(h&&h.cell)?h.cell:this._selectedCell; if(!d||!d.parentNode){return false; }var c=true; var g=d.parentNode; var k=this.canDeleteCell(d); switch(k){case 1:g.removeChild(d); break; case 2:g.parentNode.removeChild(g); break; case 3:var l=g.cells[d.cellIndex-1]; this.set_selectedCell(l,false); c=this.mergeRight(); break; case 4:var a=g.cells[d.cellIndex+1]; this.set_selectedCell(a,false); c=this.mergeLeft(); break; case 5:var e=this._getLeftBottomStateIndexes(g.rowIndex,d.cellIndex); var b=this._getSelectedTableCellByStateIndexes(e.rowIndex+1,e.colIndex); this.set_selectedCell(b,false); c=this.mergeTop(); break; case 6:var e=this._getLeftBottomStateIndexes(g.rowIndex,d.cellIndex); var f=this._getSelectedTableCellByStateIndexes(e.rowIndex-1,e.colIndex); this.set_selectedCell(f,false); c=this.mergeDown(); break; default:this._raiseException("The cell can not be deleted!"); c=false; break; }if(c&&g&&g.cells.length==0){g.parentNode.removeChild(g); }return c; },splitCellHorizontally:function(l){if(!this._selectedCell){return false; }var c=this._selectedCell; var q=true; var d=this._getColSpan(c); var o=c.cellIndex; var r=this._selectedRow; var a=this._selectedRowIndex; var b=a+","+o; var p=this._insertCell(r,o+1," ",c); this._setRowSpan(p,this._getRowSpan(c)); if(d==1){var g=this._getLeftTopStateIndexes(a,o); var u=g.colIndex; var n=";"; for(var e=0; e=d){var h=Math.ceil(d/2); var m,s; if(d%2==0){m=h; s=h; }else{m=h; s=h-1; }}else{m=d-f; s=f; }this._setColSpan(c,m); this._setColSpan(p,s); }return q; },splitCellVertically:function(h){var b=this._selectedCell; if(!b){return false; }if(!b.parentNode){return false; }var n=true; var s=this._getRowSpan(b); var d=b.cellIndex; var o=this._selectedRow; var p=this._selectedRowIndex; var g=this._selectedRowCells; var a=g.length; var k=";"; var q=null; var f=[]; if(s==1){for(var r=0; r=s){if(s%2==0){c=e; m=e; }else{c=e; m=e-1; }}else{c=s-l; m=l; }this._setRowSpan(b,c); arStateIndexes=this._getLeftTopStateIndexes(p,d); alterRowIndex=p+c; newCellColIndex=0; for(var r=arStateIndexes.colIndex; r>-1; r--){f=this._getStateValueIndexes(alterRowIndex,r); if(f.rowIndex==alterRowIndex){newCellColIndex=f.colIndex+1; break; }}newCell=this._insertCell(this._selectedTable.rows[alterRowIndex],newCellColIndex," ",b); this._setColSpan(newCell,this._getColSpan(b)); this._setRowSpan(newCell,m); }return n; },setAsContentCell:function(a){var b=this._selectedCell; if(!b){return false; }if(!b.parentNode){return false; }b.style.width="100%"; b.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();