
var AgatTables={userAddTableRow:function(button){var table;if(button.id.match(/^tfsAddRowBtn_(.*)/)){table=$("#"+RegExp.$1);if(table.length==0){return;}}else{table=$(button).prev();}
if(table.hasAttribute("tfsMaxrowcount")){var maxlines=table.attr("tfsMaxrowcount");if(AgatTables.countRows(table[0])>=maxlines){AgatEngine.displayMsgBox("TABLES_ALLOWED_ROW_NUM",maxlines);return;}}
if(!(AgatEvents.userBeforeAddTableRow(table[0].id))){return;}
AgatTables.addTableRow(table);AgatValidator.evalDynamicExpressions();AgatEvents.userAfterAddTableRow(table[0].id);},addTableRow:function(table){var sourceRow=$("#"+table[0].id+">tbody>tr:last").eq(0);var newRow;try{newRow=sourceRow.clone(true);}catch(e){newRow=$(sourceRow[0].cloneNode(true));}
$(":tfsrowdata",newRow).tfsClear();newRow.insertAfter($("#"+table[0].id+">tbody>tr:last").eq(0));return newRow;},delTableRow:function(button){var row=AgatTables.findParentElem(button,"TR");var table=AgatTables.findParentElem(row,"TABLE");if(AgatTables.countRows(table)==1){AgatEngine.displayMsgBox("TABLES_AT_LIST_ONE_ROW");return;}
if(!(AgatEvents.userBeforeRemoveTableRow($(table).attr("id"),row.rowIndex))){return;}
table.deleteRow(row.rowIndex);},findParentElem:function(elem,parentTag){while(elem&&elem.tagName!=parentTag){elem=elem.parentNode;}
return elem;},getContainingDynamicTable:function(elem){elem=elem.parentNode;while(elem&&!(elem.tagName=="TABLE"&&$(elem).hasAttribute("tfsData"))){elem=elem.parentNode;}
return elem;},getContainingDynamicTableRow:function(elem){var lastrow=null;elem=elem.parentNode;while(elem&&!(elem.tagName=="TABLE"&&$(elem).hasAttribute("tfsData"))){if(elem.tagName=="TR"){lastrow=elem;}
elem=elem.parentNode;}
return elem?lastrow:null;},countRows:function(table){return $(table).children("tbody").children("tr").size();},clearAllTables:function(doc){var elems=$("table:tfsdata").each(function(){AgatTables.clearTable(this);});},clearTable:function(table){var firstRow=0;if(table.tHead)firstRow+=table.tHead.rows.length;var lastRow=table.rows.length-1;if(table.tFoot)lastRow-=table.tFoot.rows.length;for(var i=lastRow;i>firstRow;i--){table.deleteRow(i);}
if(!this.countRows(table))return;$(":tfsrowdata",$("#"+table.id+">tbody>tr:first")).tfsClear();}};