function MetafuseTable(elementId,uniqueId,nonUniqueId){this.ElementId=elementId;this.ClientID=elementId;this.UniqueId=uniqueId;this.NonUniqueId=nonUniqueId;this.ObjectId=elementId+"l";this.ObjectsById=new Object();this.ObjectsByIndex=new Array();this.LastObjectAddedByDepth=new Array();this.ExpandedArrowUrl="";this.CollapsedArrowUrl="";this.ExpandCollapseArrowWidth=null;this.ExpandCollapseCellStandardPadding=2;this.ExpandCollapseDepthPadding=20;this.DisableAjaxPostBackOnExpandCollapseAfterChildrenLoaded=false;this.ChildrenPreLoadedLoadedForCollapsedNodes=false;this.IsOddEvenAlternatingRows=false;this.EvenClassName="even";this.OddClassName="odd";this.RowAdditionalRelatedIdSuffixes=null;this.RowAdditionalRelatedIdSuffixesToHighlight=null;this.RowObjectTypes=null;this.ReceivedExpandCollapseMetafuseTable=null;this.ReceivedTableHtml=null;this.ContextMenus=null;this.OnBeforeShowContextMenuForRow=function(metafuseTable,contextMenu,localEvent,rowId){return true;};this.IsBusy=false;this.OnAfterReplaceRows=function(metafuseTableUpdate){};this.RowIdCurrentlyMoving=null;this.OnBeforeRowMoveDrop=function(rowObject,rowObjectDropOn,metafuseTableDroppedOn,otherElementDroppedOn){return true;};this.OnAfterRowMoveDropPerformMove=function(rowObject,rowObjectDropOn,isChild){};this.RowMoveDropAdditionalMetafuseTablesToMonitor=null;this.RowMoveDropAdditionalElementsToMonitor=null;this.RowIdCurrentlyOver=null;this.RowIdContextMenu=null;this.RowIdMouseDown=null;this.FormDefinition=null;this.ObjectsDeleted=new Object();this.ObjectsUpdated=new Object();this.ObjectsCreated=new Object();this.ObjectsUpdatedParent=new Object();this.ObjectsUpdatedIndexFromParent=new Object();this.OnUnloadMessage="There are unsaved changes on the form.  Click \"OK\" to have the changes saved or \"Cancel\" to cancel the changes made to the form.";this.EnableOnAddRowObject=false;this.EnableOnUpdateRowObject=false;this.EnableOnRemoveRowObject=false;this.EnableOnAddRowObjectCausesValidation=false;this.EnableOnUpdateRowObjectCausesValidation=false;this.EnableOnRemoveRowObjectCausesValidation=false;this.EnableSerializeXmlListOnAddRowObject=false;this.EnableSerializeXmlListOnUpdateRowObject=false;this.EnableSerializeXmlListOnRemoveRowObject=false;this.EnableOnRowMoveDrop=false;this.EnableSkipConfirmOnDelete=false;this.ConfirmDeleteMessage="Are you sure you want to delete the row $RowName?  Once the row $RowName is deleted it cannot be recovered.";this.ConfirmDeleteRecursiveMessage="Do you want to delete all child rows of $RowName? Press \"OK\" to delete all child rows, press \"Cancel\" to only delete the $RowName.";this.RowNameValueIndex=-1;this.RowNameCellIndex=-1;this.ExpandCollapseCellIndex=-1;this.OnAfterGetRowName=function(name){return name;};this.OnAfterDeleteObject=function(metafuseTable,id){};this.OnAfterExpandRow=function(metafuseTable,rowObject,loadedRows){};this.OnAfterCollapseRow=function(metafuseTable,rowObject){};this.RowMoveDropDetermineIfChildrenAllowed=function(rowObject){if(this.IsTree==true){return true;}else{return false;}};this.SortArrowAscendingUrl="";this.SortArrowDescendingUrl="";};MetafuseTable.prototype.ExpandAll=MetafuseTable_ExpandAll;MetafuseTable.prototype.CollapseAll=MetafuseTable_CollapseAll;MetafuseTable.prototype.SaveTable=MetafuseTable_SaveTable;MetafuseTable.prototype.OnUnload=MetafuseTable_OnUnload;MetafuseTable.prototype.ClearMetafuseTable=MetafuseTable_ClearMetafuseTable;function MetafuseTable_ClearMetafuseTable(){var table=GetElementById(this.ElementId);var tableTBody=table.getElementsByTagName("TBODY");tableTBody=tableTBody[0];for(var i=0;i<this.ObjectsByIndex.length;i++){var ao=this.ObjectsByIndex[i];tableTBody.removeChild(GetElementById(ao.Id));}this.ObjectsByIndex=new Array();this.ObjectsById=new Object();this.ObjectsDeleted=new Object();this.ObjectsUpdated=new Object();this.ObjectsCreated=new Object();};MetafuseTable.prototype.EO=MetafuseTable_EditObject;MetafuseTable.prototype.EditObject=MetafuseTable_EditObject;function MetafuseTable_EditObject(element,id){this.FormDefinition.EO(element,id);return false;};MetafuseTable.prototype.DO=MetafuseTable_DeleteObject;MetafuseTable.prototype.DeleteObject=MetafuseTable_DeleteObject;function MetafuseTable_DeleteObject(element,id,confirmMessage,skipConfirm){if(this.IsBusy){this.AlertBusyMessage();return false;}element=GetElementById(element);if(id==null||id==""){var row=this.GetRowContainingElement(element);id=row.id;}var ajaxObjectDeleting=this.ObjectsById[id];if(ajaxObjectDeleting!=null){var row=GetElementById(ajaxObjectDeleting.Id);if(ajaxObjectDeleting.DisableDelete){var name=this.GetRowName(ajaxObjectDeleting.Id);if(name==null||name==""){name="the item";}alert("You do not have permission to delete "+name+".");return false;}if(!skipConfirm&&this.EnableSkipConfirmOnDelete){skipConfirm=true;}if(!skipConfirm){var name=this.GetRowName(id);if(name!=null&&name!=""){name=" \""+name+"\"";}if(confirmMessage==null||confirmMessage==""){confirmMessage=this.ConfirmDeleteMessage;}confirmMessage=confirmMessage.replace(/\$RowName/g,name);}if(skipConfirm||confirm(confirmMessage)){var isRecursive=true;if(ajaxObjectDeleting.ChildTotalRecursive>0||(this.RowMoveDropDetermineIfChildrenAllowed(ajaxObjectDeleting)&&ajaxObjectDeleting.IsChildrenLoaded==false)){var confirmDeleteRecursiveMessage=this.ConfirmDeleteRecursiveMessage;confirmDeleteRecursiveMessage=confirmDeleteRecursiveMessage.replace(/\$RowName/g,name);isRecursive=confirm(confirmDeleteRecursiveMessage);if(this.EnableOnRemoveRowObject&&isRecursive==false&&ajaxObjectDeleting.IsChildrenLoaded==false&&ajaxObjectDeleting.IsExpanded==false){this.TempDeleteAfterExpand=true;this.ExpandCollapseObject(element,ajaxObjectDeleting);return false;}}if(this.EnableOnRemoveRowObject){var serverResponse=new MetafuseAjaxPostBackObjectServerResponse();var self=this;serverResponse.OnAfterExecuteSuccessfulResponse=function(serverResponse){if(this.IsValid){self.DeleteObjectRecursively(id,isRecursive);self.OnAfterDeleteObject(self,id);}self.IsBusy=false;};if(this.EnableSerializeXmlListOnRemoveRowObject){this.SerializeUpdateXml();}var command="REMOVERECURSIVE:";if(!isRecursive){command="REMOVE:";}Ajax.DoAjaxPostBack(this.UniqueId,command+id,this.EnableOnRemoveRowObjectCausesValidation,element,"",false,true,serverResponse);}else{this.DeleteObjectRecursively(id,isRecursive);this.OnAfterDeleteObject(this,id);if(this.EnableSerializeXmlListOnRemoveRowObject){this.SerializeUpdateXml();}this.IsBusy=false;}}}else{alert("Unable to locate the item to be deleted with id: "+id);}return false;};MetafuseTable.prototype.RowMoveDropGetParentConfirmResult=MetafuseTable_RowMoveDropGetParentConfirmResult;function MetafuseTable_RowMoveDropGetParentConfirmResult(rowObject,rowObjectDropOn,metafuseTableDroppedOn){var rowName=this.GetRowName(rowObject.Id);var rowNameOn=this.GetRowName(rowObjectDropOn.Id);var rowNameParent=" no parent";if(rowName!=null&&rowName!=""){rowName=" \""+rowName+"\"";}else{rowName=" dragged";}if(rowNameOn!=null&&rowNameOn!=""){rowNameOn=" \""+rowNameOn+"\"";}else{rowNameOn=" dropped on";}if(rowObjectDropOn.ParentId!=null&&rowObjectDropOn.ParentId!=""){rowNameParent=" \""+this.GetRowName(rowObjectDropOn.ParentId)+"\"";}isChild=confirm("Click \"OK\" for the row"+rowName+" to be moved and added as a child of the row"+rowNameOn+".\n\nPress \"Cancel\" to move the row"+rowName+" after and as the next sibling of the row"+rowNameOn+", set the parent to"+rowNameParent+".");return isChild;};MetafuseTable.prototype.RowMoveDropPerformMove=MetafuseTable_RowMoveDropPerformMove;function MetafuseTable_RowMoveDropPerformMove(rowObject,rowObjectDropOn,isChild){var oldIndexAbsolute=rowObject.IndexAbsolute;var newIndexAbsolute=rowObjectDropOn.IndexAbsolute+rowObjectDropOn.ChildTotalRecursive+1;var oldParentId=rowObject.ParentId;var newParentId=rowObjectDropOn.ParentId;var newParentObject=rowObjectDropOn.ParentObject;if(isChild){newParentId=rowObjectDropOn.Id;newParentObject=rowObjectDropOn;newIndexAbsolute=rowObjectDropOn.IndexAbsolute+1;}var addToDepth=0;var newParentIsNotLoaded=false;if(newParentId!=oldParentId){newParent=true;var oldParentIdLoop=oldParentId;while(oldParentIdLoop!=null&&oldParentIdLoop!=""){var oldParent=this.ObjectsById[oldParentIdLoop];oldParent.ChildTotalRecursive-=1;oldParent.ChildTotalRecursive-=rowObject.ChildTotalRecursive;oldParentIdLoop=oldParent.ParentId;}rowObject.ParentId=newParentId;rowObject.ParentObject=newParentObject;var newDepth=0;if(newParentId!=null&&newParentId!=""){var rowObjectParent=this.ObjectsById[rowObject.ParentId];newDepth=rowObjectParent.Depth+1;}addToDepth=newDepth-rowObject.Depth;var newParentIdLoop=newParentId;while(newParentIdLoop!=null&&newParentIdLoop!=""){var newParent=this.ObjectsById[newParentIdLoop];if(newParent.IsChildrenLoaded==true){newParent.ChildTotalRecursive+=1;newParent.ChildTotalRecursive+=rowObject.ChildTotalRecursive;newParentIdLoop=newParent.ParentId;}else{newParentIsNotLoaded=true;newParentIdLoop=null;}}}if(newIndexAbsolute!=oldIndexAbsolute||newParentIsNotLoaded){var rowObjectsMoving=new Array();var rowInsertBefore;if(newIndexAbsolute>=this.ObjectsByIndex.length){rowInsertBefore=GetElementById(this.ObjectsByIndex[this.ObjectsByIndex.length-1].Id);rowInsertBefore=rowInsertBefore.nextSibling;}else{rowInsertBefore=GetElementById(this.ObjectsByIndex[newIndexAbsolute].Id);}var table=GetElementById(this.ElementId);var tBodies=table.getElementsByTagName("TBODY");var tBody=tBodies[0];var rowsToMoveCount=1+rowObject.ChildTotalRecursive;var count=0;for(var i=oldIndexAbsolute;i<oldIndexAbsolute+rowsToMoveCount;i++){var rowObjectToRemove=this.ObjectsByIndex[i];if(rowObjectToRemove==null){alert('Object to remove was null, reload the page and try again. Contact technical support if the problem persists');}var rowToRemove=GetElementById(rowObjectToRemove.Id);tBody.removeChild(rowToRemove);var rowToRemoveRelatedRows=null;if(this.RowAdditionalRelatedIdSuffixes!=null&&this.RowAdditionalRelatedIdSuffixes.length>0){rowToRemoveRelatedRows=new Array();for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){var relatedRow=GetElementById(rowObjectToRemove.Id+this.RowAdditionalRelatedIdSuffixes[ii]);if(relatedRow!=null){rowToRemoveRelatedRows[rowToRemoveRelatedRows.length]=relatedRow;tBody.removeChild(relatedRow);}}}if(newParentIsNotLoaded==true){this.ObjectsById[rowObjectToRemove.Id];}else{tBody.insertBefore(rowToRemove,rowInsertBefore);if(rowToRemoveRelatedRows){for(var ii=0;ii<rowToRemoveRelatedRows.length;ii++){var relatedRow=rowToRemoveRelatedRows[ii];tBody.insertBefore(relatedRow,rowInsertBefore);}}if(newIndexAbsolute<oldIndexAbsolute){rowObjectToRemove.IndexAbsolute=newIndexAbsolute+count;}else{rowObjectToRemove.IndexAbsolute=newIndexAbsolute+count-rowsToMoveCount;}if(addToDepth!=0&&this.ExpandCollapseCellIndex!=null&&this.ExpandCollapseCellIndex>=0){rowObjectToRemove.Depth+=addToDepth;var cells=rowToRemove.getElementsByTagName("TD");var cell=cells[this.ExpandCollapseCellIndex];if(this.ExpandCollapseArrowWidth){var hasArrow=false;var anchors=cell.getElementsByTagName("A");for(var ii=0;ii<anchors.length;ii++){var a=anchors[ii];var breakLoop=false;var imgs=a.getElementsByTagName("IMG");for(var iii=0;iii<imgs.length;iii++){var img=imgs[iii];var imageSrc=new String(img.src);var slash=new String('/');imageSrc=imageSrc.substring(imageSrc.lastIndexOf(slash)+1,imageSrc.length);if(this.ExpandedArrowUrl.indexOf(imageSrc)>0||this.CollapsedArrowUrl.indexOf(imageSrc)>0){hasArrow=true;breakLoop=true;break;}}if(breakLoop){break;}}var depthPadding=this.ExpandCollapseCellStandardPadding;depthPadding+=(rowObjectToRemove.Depth*this.ExpandCollapseDepthPadding);if(!hasArrow){depthPadding+=this.ExpandCollapseArrowWidth;}var padding=depthPadding;var paddingLeftString=padding.toString()+"px";cell.style.paddingLeft=paddingLeftString;}}}rowObjectsMoving[rowObjectsMoving.length]=rowObjectToRemove;count++;}if(newParentIsNotLoaded==true){this.ObjectsByIndex.splice(oldIndexAbsolute,rowsToMoveCount);for(var i=oldIndexAbsolute;i<this.ObjectsByIndex.length;i++){var rowObjectToUpdate=this.ObjectsByIndex[i];rowObjectToUpdate.IndexAbsolute-=rowsToMoveCount;}}else{if(newIndexAbsolute<oldIndexAbsolute){for(var i=newIndexAbsolute;i<oldIndexAbsolute;i++){var rowObjectToUpdate=this.ObjectsByIndex[i];rowObjectToUpdate.IndexAbsolute+=rowsToMoveCount;}}if(newIndexAbsolute>oldIndexAbsolute){for(var i=oldIndexAbsolute+rowsToMoveCount;i<newIndexAbsolute;i++){var rowObjectToUpdate=this.ObjectsByIndex[i];rowObjectToUpdate.IndexAbsolute-=rowsToMoveCount;}}this.ObjectsByIndex.splice(oldIndexAbsolute,rowsToMoveCount);if(newIndexAbsolute<oldIndexAbsolute){for(var i=0;i<rowObjectsMoving.length;i++){var rowObjectToAdd=rowObjectsMoving[i];this.ObjectsByIndex.splice(newIndexAbsolute+i,0,rowObjectToAdd);}}else{for(var i=0;i<rowObjectsMoving.length;i++){var rowObjectToAdd=rowObjectsMoving[i];this.ObjectsByIndex.splice(newIndexAbsolute-rowsToMoveCount+i,0,rowObjectToAdd);}}}}else if(addToDepth!=0&&this.ExpandCollapseCellIndex!=null&&this.ExpandCollapseCellIndex>=0){var rowsToMoveCount=1+rowObject.ChildTotalRecursive;for(var i=oldIndexAbsolute;i<oldIndexAbsolute+rowsToMoveCount;i++){var rowObjectToRemove=this.ObjectsByIndex[i];if(rowObjectToRemove==null){alert('Object to remove was null, reload the page and try again. Contact technical support if the problem persists');}var rowToRemove=GetElementById(rowObjectToRemove.Id);rowObjectToRemove.Depth+=addToDepth;var cells=rowToRemove.getElementsByTagName("TD");var cell=cells[this.ExpandCollapseCellIndex];if(this.ExpandCollapseArrowWidth){var hasArrow=false;var anchors=cell.getElementsByTagName("A");for(var ii=0;ii<anchors.length;ii++){var a=anchors[ii];var breakLoop=false;var imgs=a.getElementsByTagName("IMG");for(var iii=0;iii<imgs.length;iii++){var img=imgs[iii];var imageSrc=new String(img.src);var slash=new String('/');imageSrc=imageSrc.substring(imageSrc.lastIndexOf(slash)+1,imageSrc.length);if(this.ExpandedArrowUrl.indexOf(imageSrc)>0||this.CollapsedArrowUrl.indexOf(imageSrc)>0){hasArrow=true;breakLoop=true;break;}}if(breakLoop){break;}}var depthPadding=this.ExpandCollapseCellStandardPadding;depthPadding+=(rowObjectToRemove.Depth*this.ExpandCollapseDepthPadding);if(!hasArrow){depthPadding+=this.ExpandCollapseArrowWidth;}var padding=depthPadding;var paddingLeftString=padding.toString()+"px";cell.style.paddingLeft=paddingLeftString;}}}this.OnAfterRowMoveDropPerformMove(rowObject,rowObjectDropOn,isChild);};MetafuseTable.prototype.RowMoveDropServerSideConfirm=MetafuseTable_RowMoveDropServerSideConfirm;function MetafuseTable_RowMoveDropServerSideConfirm(rowId,rowDropOnId,metafuseTableDroppedOn,otherElementDroppedOnId,confirmMessage){if(confirm(confirmMessage)){var rowDropFunctionFunction=this.ObjectId+".RowMoveDropServerSideConfirmSetTimeout('"+rowId+"','"+rowDropOnId+"',"+metafuseTableDroppedOn.ObjectId+", '"+otherElementDroppedOnId+"');";setTimeout(rowDropFunctionFunction,100);}};MetafuseTable.prototype.RowMoveDropServerSideConfirmSetTimeout=MetafuseTable_RowMoveDropServerSideConfirmSetTimeout;function MetafuseTable_RowMoveDropServerSideConfirmSetTimeout(rowId,rowDropOnId,metafuseTableDroppedOn,otherElementDroppedOn){var rowObject=this.ObjectsById[rowId];var rowObjectDropOn=null;if(rowDropOnId!=null&&rowDropOnId!=""){rowObjectDropOn=this.ObjectsById[rowDropOnId];if(rowObjectDropOn==null&&metafuseTableDroppedOn!=this){rowObjectDropOn=metafuseTableDroppedOn.ObjectsById[rowDropOnId];}}this.RowMoveDrop(rowObject,rowObjectDropOn,metafuseTableDroppedOn,otherElementDroppedOn,true);};MetafuseTable.prototype.RowMoveDrop=MetafuseTable_RowMoveDrop;function MetafuseTable_RowMoveDrop(rowObject,rowObjectDropOn,metafuseTableDroppedOn,otherElementDroppedOn,serverSideConfirmed){otherElementDroppedOn=GetElementById(otherElementDroppedOn);if(this.OnBeforeRowMoveDrop(rowObject,rowObjectDropOn,metafuseTableDroppedOn,otherElementDroppedOn)==true){if((rowObjectDropOn!=null&&rowObject!=rowObjectDropOn)||otherElementDroppedOn){if(this.IsBusy){this.AlertBusyMessage();return false;}this.IsBusy=true;var isChild=false;if(rowObjectDropOn!=null){if(this.RowMoveDropDetermineIfChildrenAllowed(rowObjectDropOn)){isChild=this.RowMoveDropGetParentConfirmResult(rowObject,rowObjectDropOn,metafuseTableDroppedOn);}}if(this.EnableOnRowMoveDrop){var serverResponse=new MetafuseAjaxPostBackObjectServerResponse();var self=this;serverResponse.OnAfterExecuteSuccessfulResponse=function(serverResponse){if(this.IsValid){if(rowObjectDropOn!=null&&self==metafuseTableDroppedOn){self.RowMoveDropPerformMove(rowObject,rowObjectDropOn,isChild);}}self.IsBusy=false;};showProcessingMessageId="";var eventArgument='ROWDROP:RowId='+rowObject.Id+'&IsChild='+isChild;if(rowObject.RowObjectType!=null){eventArgument+="&RowType="+rowObject.RowObjectType;}if(rowObjectDropOn!=null){eventArgument+='&RowDropOnId='+rowObjectDropOn.Id;showProcessingMessageId=rowObjectDropOn.Id;if(rowObjectDropOn.RowObjectType!=null){eventArgument+="&RowDropOnType="+rowObjectDropOn.RowObjectType;}var depth=0;var parentObject=rowObjectDropOn.ParentObject;while(parentObject!=null){depth++;parentObject=parentObject.ParentObject;}eventArgument+="&RowDropOnDepth="+depth;}if(serverSideConfirmed!=null){eventArgument+="&ServerSideConfirmed=true";}if(metafuseTableDroppedOn!=null){eventArgument+="&MetafuseTableIdDroppedOn="+metafuseTableDroppedOn.NonUniqueId;}if(otherElementDroppedOn!=null){eventArgument+="&OtherElementDroppedOnId="+otherElementDroppedOn.id;if(showProcessingMessageId==""){otherElementDroppedOn.id;}}Ajax.DoAjaxPostBack(self.UniqueId,eventArgument,false,showProcessingMessageId,"",false,true,serverResponse);}else{alert("TODO: Add ability to save the order of the list/tree, right now only posting back each time is supported");this.IsBusy=false;}}}};MetafuseTable.prototype.GetBusyMessage=MetafuseTable_GetBusyMessage;function MetafuseTable_GetBusyMessage(){return"Another operation is currently being processed.  Please try again after the current operation is complete.";};MetafuseTable.prototype.AlertBusyMessage=MetafuseTable_AlertBusyMessage;function MetafuseTable_AlertBusyMessage(){alert(this.GetBusyMessage());};MetafuseTable.prototype.GetRowName=MetafuseTable_GetRowName;function MetafuseTable_GetRowName(rowId,row){var name="";if((rowId!=null&&rowId!="")||row!=null){if(this.RowNameValueIndex>=0){if(rowId==null||rowId==""){rowId=row.id;}if(rowId!=null&&rowId!=""){var obj=this.ObjectsById[rowId];if(obj!=null){var value=obj.GetValueByIndex(this.RowNameValueIndex);if(value.Text!=null&&value.Text!=""){name=value.Text;}else{name=value.Value;}}}}else if(this.RowNameCellIndex>=0){if(row==null){row=GetElementById(rowId);}if(row!=null){var cells=row.getElementsByTagName("TD");var cell=cells[this.RowNameCellIndex];if(cell!=null){if(BrowserTools.IsInternetExplorer()){name=cell.innerText;}else{name=cell.textContent;}}}}}name=this.OnAfterGetRowName(name);return name;};MetafuseTable.prototype.RowMoveSelectOnMouseDown=MetafuseTable_RowMoveSelectOnMouseDown;function MetafuseTable_RowMoveSelectOnMouseDown(row,localEvent){if(row){if(this.RowDragObject==null){this.RowDragObject=new MetafuseGenericDragObject();}this.RowDragObject.StartDrag(localEvent,null,null);var self=this;this.RowDragObject.OnDragging=function(){if((Math.abs(self.RowDragObject.MouseStartPageXCoordinate-self.RowDragObject.MousePageXCoordinate)>5)||Math.abs(self.RowDragObject.MouseStartPageYCoordinate-self.RowDragObject.MousePageYCoordinate)>5){self.RowDragObject.StopDrag();self.RowMoveSelect(row,localEvent);}};}};MetafuseTable.prototype.RowMoveSelect=MetafuseTable_RowMoveSelect;function MetafuseTable_RowMoveSelect(element,localEvent){element=GetElementById(element);var row;if(element.tagName=="TR"){row=element;}else{row=this.GetRowContainingElement(element,true);}document.body.style.cursor='move';if(row){var self=this;if(this.RowDragObject==null){this.RowDragObject=new MetafuseGenericDragObject();}if(this.RowDragTable==null){var tblId=this.ObjectId+"_DragTable";var tbl='<table id="'+tblId+'" class="TableMoving" style="z-index:500;display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.DropShadow(color=#999999,offx=2, offy=2);filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,Direction=135, Strength=2);" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td></td></tr></table>';InsertHTML(tbl);this.RowDragTable=GetElementById(tblId);}this.RowDragTable.style.width=0;this.RowDragTable.style.height=0;this.RowDragTable.style.tableLayout='auto';var moveCell=UITools.GetParentNodeByTagName(element,"TD");var tBody=this.RowDragTable.getElementsByTagName("TBODY");var tBody=tBody[0];var rows=tBody.getElementsByTagName("TR")
var clone=rows[0];UITools.DisableElement(clone);var cellsOnClone=clone.getElementsByTagName("TD");for(var i=(cellsOnClone.length-1);i>=0;i--){clone.removeChild(cellsOnClone[i]);}var nameCellClone=null;if(this.RowNameCellIndex>=0){var rowCells=row.getElementsByTagName("TD");var nameCell=rowCells[this.RowNameCellIndex];nameCellClone=nameCell.cloneNode(true);nameCellClone.noWrap=true;nameCellClone.className="OF";nameCellClone.style.height=UITools.GetElementHeight(nameCell);}else{nameCellClone=moveCell.cloneNode(true);}UITools.DisableElement(nameCellClone);clone.appendChild(nameCellClone);var cloneCells=clone.getElementsByTagName("TD");for(var i=0;i<cloneCells.length;i++){var cloneTD=cloneCells[i];for(var ii=0;ii<cloneTD.childNodes.length;ii++){var childNode=cloneTD.childNodes[ii];UITools.DisableElement(childNode);if(childNode.tagName=="A"){if(childNode.childNodes&&childNode.childNodes.length>0&&childNode.childNodes[0].tagName=="IMG"){var img=childNode.childNodes[0];var onmouseover=img.getAttribute("onmouseover");if(onmouseover&&onmouseover!=null&&onmouseover!=""){img.setAttribute("onmouseover","return false;");}}}}}var x=UITools.GetEventPageXCoordinate(localEvent)+10;var y=UITools.GetEventPageYCoordinate(localEvent)-12;this.RowDragObject.OnAfterStopDrag=function(metafuseDragObject){UITools.HideDivAndIFrame(self.RowDragTable,self.RowDragTableShim);document.body.style.cursor='default';var tablesToMonitor=new Array();tablesToMonitor[0]=self;if(self.RowMoveDropAdditionalMetafuseTablesToMonitor!=null){for(var i=0;i<self.RowMoveDropAdditionalMetafuseTablesToMonitor.length;i++){var tableObjectToMonitor=null;tableObjectToMonitor=eval(self.RowMoveDropAdditionalMetafuseTablesToMonitor[i]);if(tableObjectToMonitor!=null){tablesToMonitor[tablesToMonitor.length]=tableObjectToMonitor;}tableObjectToMonitor=null;}}var rowObjectToMove=self.ObjectsById[self.RowIdCurrentlyMoving];for(var i=0;i<tablesToMonitor.length;i++){var tableToTest=tablesToMonitor[i];if(tableToTest.RowIdCurrentlyOver!=null){var isOverElement=false;if(self.RowDragObject.IsMouseOverElement(tableToTest.RowIdCurrentlyOver)){isOverElement=true;}else if(tableToTest.RowAdditionalRelatedIdSuffixes||tableToTest.RowAdditionalRelatedIdSuffixesToHighlight){var relatedIdSuffixes=tableToTest.RowAdditionalRelatedIdSuffixes;if(relatedIdSuffixes==null){relatedIdSuffixes=tableToTest.RowAdditionalRelatedIdSuffixesToHighlight}for(var i=0;i<relatedIdSuffixes.length;i++){var idToTest=tableToTest.RowIdCurrentlyOver+relatedIdSuffixes[i];if(self.RowDragObject.IsMouseOverElement(idToTest)){isOverElement=true;}}}if(isOverElement){var rowObjectOver=tableToTest.ObjectsById[tableToTest.RowIdCurrentlyOver];self.RowMoveDrop(rowObjectToMove,rowObjectOver,tableToTest);break;}}}if(!isOverElement&&self.RowMoveDropAdditionalElementsToMonitor!=null){for(var i=0;i<self.RowMoveDropAdditionalElementsToMonitor.length;i++){var elementToTest=self.RowMoveDropAdditionalElementsToMonitor[i];if(self.RowDragObject.IsMouseOverElement(elementToTest,2,2)){self.RowMoveDrop(rowObjectToMove,null,self,elementToTest);break;}}}self.RowIdCurrentlyMoving=null;};UITools.ShowDivAndIFrameAtXY(x,y,this.RowDragTable,null,0,0,false,true);if(UITools.GetElementWidth(nameCellClone)>250){this.RowDragTable.style.tableLayout='fixed';nameCellClone.style.width=250;this.RowDragTable.style.width=250;nameCellClone.style.height=24;}this.RowIdCurrentlyMoving=row.id;this.RowDragObject.StartDrag(localEvent,this.RowDragTable,null);UITools.CancelBubble(localEvent);}return false;};MetafuseTable.prototype.DeleteObjectRecursively=MetafuseTable_DeleteObjectRecursively;function MetafuseTable_DeleteObjectRecursively(id,isRecursive){var metafuseTableRowObject=this.ObjectsById[id];var deleteCount=1;var table=GetElementById(this.ElementId);var tableTBody=table.getElementsByTagName("TBODY");tableTBody=tableTBody[0];var recursiveCount=0;if(isRecursive){recursiveCount=metafuseTableRowObject.ChildTotalRecursive;deleteCount+=recursiveCount;}for(var i=(metafuseTableRowObject.IndexAbsolute+recursiveCount);i>=metafuseTableRowObject.IndexAbsolute;i--){var objectToDelete=this.ObjectsByIndex[i];objectToDelete.IsObjectDeleted=true;this.FormDefinition.OnBeforeDeleteFormData(this.FormDefinition,objectToDelete);if(objectToDelete.IsObjectCreated){delete this.ObjectsCreated[objectToDelete.Id];}else{delete this.ObjectsUpdated[objectToDelete.Id];this.ObjectsDeleted[objectToDelete.Id]=objectToDelete;}var rowToRemove=GetElementById(objectToDelete.Id);if(rowToRemove){tableTBody.removeChild(rowToRemove);}if(this.RowAdditionalRelatedIdSuffixes!=null){for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){var additionalRow=GetElementById(objectToDelete.Id+this.RowAdditionalRelatedIdSuffixes[ii]);if(additionalRow){tableTBody.removeChild(additionalRow);}}}delete this.ObjectsById[objectToDelete.Id];this.ObjectsByIndex.splice(i,1);this.FormDefinition.OnAfterDeleteFormData(this.FormDefinition,objectToDelete);}var recursiveChildrenIndexStop=metafuseTableRowObject.IndexAbsolute+metafuseTableRowObject.ChildTotalRecursive;for(var i=metafuseTableRowObject.IndexAbsolute;i<this.ObjectsByIndex.length;i++){var objectToShift=this.ObjectsByIndex[i];objectToShift.IndexAbsolute-=deleteCount;if(!isRecursive){if(objectToShift.ParentId==objectToDelete.Id){objectToShift.ParentId=objectToDelete.ParentId;}if(i<recursiveChildrenIndexStop){objectToShift.Depth-=1;var rowToShift=GetElementById(objectToShift.Id);UITools.ToggleDisplay(rowToShift,false);if(this.ExpandCollapseArrowWidth){var cells=rowToShift.getElementsByTagName("TD");var cell=cells[this.ExpandCollapseCellIndex];var hasArrow=false;var anchors=cell.getElementsByTagName("A");for(var ii=0;ii<anchors.length;ii++){var a=anchors[ii];var breakLoop=false;var imgs=a.getElementsByTagName("IMG");for(var iii=0;iii<imgs.length;iii++){var img=imgs[iii];var imageSrc=new String(img.src);var slash=new String('/');imageSrc=imageSrc.substring(imageSrc.lastIndexOf(slash)+1,imageSrc.length);if(this.ExpandedArrowUrl.indexOf(imageSrc)>0||this.CollapsedArrowUrl.indexOf(imageSrc)>0){hasArrow=true;breakLoop=true;break;}}if(breakLoop){break;}}var depthPadding=this.ExpandCollapseCellStandardPadding;depthPadding+=(rowObjectToRemove.Depth*this.ExpandCollapseDepthPadding);if(!hasArrow){depthPadding+=this.ExpandCollapseArrowWidth;}padding=depthPadding;var paddingLeftString=padding.toString()+"px";cell.style.paddingLeft=paddingLeftString;}}}if(this.IsOddEvenAlternatingRows){alert("Hookup odd and even processing for deleting objects recursively");}}var updateParentObject=metafuseTableRowObject.ParentObject;while(updateParentObject!=null){updateParentObject.ChildTotalRecursive-=deleteCount;if(!isRecursive){updateParentObject.ChildTotalRecursive+=metafuseTableRowObject.ChildTotalRecursive;}updateParentObject=updateParentObject.ParentObject;}return false;};function MetafuseTable_SaveTable(elementId,causesValidation){if(this.IsBusy){this.AlertBusyMessage();return false;}this.IsBusy=true;if(this.SerializeUpdateXml()!=""){var eventArgument="SAVELIST";var elementToProcess=null;if(elementId){elementToProcess=GetElementById(elementId);}if(!elementToProcess){elementToProcess=this.ElementId;}if(causesValidation){causesValidation=true;}else{causesValidation=false;}alert('TODO: add method to have event after save list so we can set the busy message properly');Ajax.DoAjaxPostBack(this.UniqueId,eventArgument,causesValidation,elementToProcess,"",false,true);this.IsBusy=false;}else{alert("There aren't any items changed on the form, your command was cancelled");this.IsBusy=false;}};MetafuseTable.prototype.SerializeUpdateXml=MetafuseTable_SerializeUpdateXml;function MetafuseTable_SerializeUpdateXml(isChildList){var hasDeleted=false;var hasCreated=false;var hasUpdated=false;var deletedList="";var createdList="";var updatedList="";var list="";if(this.ObjectsDeleted!=null){for(var key in this.ObjectsDeleted){var metafuseTableRowObject=this.ObjectsDeleted[key];if(metafuseTableRowObject.IsObjectDeleted&&!metafuseTableRowObject.IsObjectCreated){deletedList+="<o id=\""+metafuseTableRowObject.Id+"\" d=\"1\"/>";hasDeleted=true;}}if(hasDeleted){deletedList="<dl>"+deletedList+"</dl>";}}if(this.ObjectsCreated!=null){for(var key in this.ObjectsCreated){var metafuseTableRowObject=this.ObjectsCreated[key];var xml=metafuseTableRowObject.UpdatedValuesXml;if(xml!=null&&xml!=""){createdList+=xml;hasCreated=true;}}}if(hasCreated){createdList="<cl>"+createdList+"</cl>";}if(this.ObjectsUpdated!=null){for(var key in this.ObjectsUpdated){var metafuseTableRowObject=this.ObjectsUpdated[key];var xml=metafuseTableRowObject.UpdatedValuesXml;if(xml!=null&&xml!=""){updatedList+=xml;hasUpdated=true;}}if(hasUpdated){updatedList="<ul>"+updatedList+"</ul>";}}if(hasDeleted||hasCreated||hasUpdated){if(!isChildList){list="<xml>";list+="<fd>";list+=this.SerializeFormDefinitionFields();list+="</fd>";}if(hasDeleted){list+=deletedList;}if(hasCreated){list+=createdList;}if(hasUpdated){list+=updatedList;}if(!isChildList){list+="</xml>";}}if(!isChildList){FormTools.SetFormElementValue(this.ElementId+"_Changes",list);}return list;};MetafuseTable.prototype.SerializeFormDefinitionFields=MetafuseTable_SerializeFormDefinitionFields;function MetafuseTable_SerializeFormDefinitionFields(){var fds="";for(var i=0;i<this.FormDefinition.Fields.length;i++){var field=this.FormDefinition.Fields[i];fds+="<ff i=\""+i.toString()+"\" n=\""+field.Name+"\"";if(field.ChildMetafuseTableVar!=null){fds+=">";var cmt=field.GetChildMetafuseTable();if(cmt!=null){fds+=cmt.SerializeFormDefinitionFields();}fds+="</ff>";}else{fds+="/>";}}return fds;};function MetafuseTable_OnUnload(){var hasDeleted=false;var hasCreated=false;var hasUpdated=false;if(this.ObjectsDeleted){for(var key in this.ObjectsDeleted){hasDeleted=true;break;}}if(this.ObjectsCreated){for(var key in this.ObjectsCreated){hasCreated=true;break;}}if(this.ObjectsUpdated){for(var key in this.ObjectsUpdated){hasUpdated=true;break;}}if(hasDeleted||hasCreated||hasUpdated){if(confirm(this.OnUnloadMessage)){this.SaveTable();}}};MetafuseTable.prototype.ReplaceMetafuseTableRowObjectId=MetafuseTable_ReplaceMetafuseTableRowObjectId;function MetafuseTable_ReplaceMetafuseTableRowObjectId(previousId,newId){var ro=this.ObjectsById[previousId];if(!ro){alert("Unable to update the table row object with id '"+previousId+"' with the new id '"+newId+"' because the existing row could not be located in the list.  The problem could have occured because the list was modified by another user, please reload the page.  Contact your system administrator if the problem persists.");}else{var row=GetElementById(ro.Id);if(!row){alert("Able to locate the id '"+previousId+"' in the metafuse table row object list, but unable to find the row that corresponds with the id.  Changing the row id to '"+newId+"'");}else{ro.Id=newId;row.id=newId;delete this.ObjectsById[previousId];this.ObjectsById[ro.Id]=ro;if(ro.ChildTotalRecursive>0){var childStartIndex=ro.IndexAbsolute+1;var childEndIndex=childStartIndex+ro.ChildTotalRecursive;for(var i=childStartIndex;i<childEndIndex;i++){var co=this.ObjectsByIndex[i];if(co.ParentId=previousId){co.ParentId=newId;}}}if(this.RowAdditionalRelatedIdSuffixes!=null){for(var i=0;i<this.RowAdditionalRelatedIdSuffixes.length;i++){var suffix=this.RowAdditionalRelatedIdSuffixes[i];var relatedRow=GetElementById(previousId+suffix);if(relatedRow){relatedRow.id=newId+suffix;}}}}}};MetafuseTable.prototype.ClearCreatedUpdatedDeletedList=MetafuseTable_ClearCreatedUpdatedDeletedList;function MetafuseTable_ClearCreatedUpdatedDeletedList(){if(this.ObjectsDeleted!=null){for(var key in this.ObjectsDeleted){var metafuseTableRowObject=this.ObjectsDeleted[key];this.ParentIdOriginal=this.ParentId;metafuseTableRowObject.IsObjectDeleted=false;metafuseTableRowObject.IsObjectDirty=false;metafuseTableRowObject.IsObjectCreated=false;}}if(this.ObjectsUpdated!=null){for(var key in this.ObjectsUpdated){var metafuseTableRowObject=this.ObjectsUpdated[key];this.ParentIdOriginal=this.ParentId;metafuseTableRowObject.IsObjectDeleted=false;metafuseTableRowObject.IsObjectDirty=false;metafuseTableRowObject.IsObjectCreated=false;}}if(this.ObjectsCreated!=null){for(var key in this.ObjectsCreated){var metafuseTableRowObject=this.ObjectsCreated[key];this.ParentIdOriginal=this.ParentId;metafuseTableRowObject.IsObjectDeleted=false;metafuseTableRowObject.IsObjectDirty=false;metafuseTableRowObject.IsObjectCreated=false;}}this.ObjectsDeleted=new Object();this.ObjectsUpdated=new Object();this.ObjectsCreated=new Object();};MetafuseTable.prototype.UpdateAjaxAddEditRemoveSettings=MetafuseTable_UpdateAjaxAddEditRemoveSettings;function MetafuseTable_UpdateAjaxAddEditRemoveSettings(enableOnAddRowObject,enableOnUpdateRowObject,enableOnRemoveRowObject,enableOnRowMoveDrop,enableOnAddRowObjectCausesValidation,enableOnUpdateRowObjectCausesValidation,enableOnRemoveRowObjectCausesValidation,enableSerializeXmlListOnAddRowObject,enableSerializeXmlListOnUpdateRowObject,enableSerializeXmlListOnRemoveRowObject){this.EnableOnAddRowObject=enableOnAddRowObject;this.EnableOnUpdateRowObject=enableOnUpdateRowObject;this.EnableOnRemoveRowObject=enableOnRemoveRowObject;this.EnableOnRowMoveDrop=enableOnRowMoveDrop;this.EnableOnAddRowObjectCausesValidation=enableOnAddRowObjectCausesValidation;this.EnableOnUpdateRowObjectCausesValidation=enableOnUpdateRowObjectCausesValidation;this.EnableOnRemoveRowObjectCausesValidation=enableOnRemoveRowObjectCausesValidation;this.EnableSerializeXmlListOnAddRowObject=enableSerializeXmlListOnAddRowObject;this.EnableSerializeXmlListOnUpdateRowObject=enableSerializeXmlListOnUpdateRowObject;this.EnableSerializeXmlListOnRemoveRowObject=enableSerializeXmlListOnRemoveRowObject;};MetafuseTable.prototype.CreateMetafuseTableRowObjectValue=MetafuseTable_CreateMetafuseTableRowObjectValue;MetafuseTable.prototype.V=MetafuseTable_CreateMetafuseTableRowObjectValue;function MetafuseTable_CreateMetafuseTableRowObjectValue(value,text){return new MetafuseTableRowObjectValue(value,text);};MetafuseTable.prototype.GetRowContainingElement=MetafuseTable_GetRowContainingElement;function MetafuseTable_GetRowContainingElement(element,dontAlertWhenCannotFindElementOrParent){element=GetElementById(element);if(element){var parentNode=element;while(parentNode!=null){if(parentNode.nodeName=="TR"){if(parentNode.parentNode.parentNode.id==this.ElementId){return parentNode;}}parentNode=parentNode.parentNode;}if(!dontAlertWhenCannotFindElementOrParent){alert("Unable to find the row the supplied element "+element.toString()+" is located in.");}}else{if(!dontAlertWhenCannotFindElementOrParent){alert("Unable to find the row the supplied element, because the supplied element is null is located in.");}}};MetafuseTable.prototype.ReplaceRows=MetafuseTable_ReplaceRows;function MetafuseTable_ReplaceRows(metafuseTableUpdate,updateValues){var ts=new Date();ts=ts.valueOf();InsertHTML(metafuseTableUpdate.ReceivedTableHtml);var receivedTable=GetElementById(metafuseTableUpdate.ReceivedTableId);var tableTBody=receivedTable.getElementsByTagName("TBODY");tableTBody=tableTBody[0];var rows=tableTBody.getElementsByTagName("TR");while(rows.length>0){row=rows[0];tableTBody.removeChild(row);if(row.id!=null&&row.id!=""){var id=row.id;row.id=id+"_"+ts;var replaceRow=GetElementById(id);if(replaceRow!=null){replaceRow.id=id+"_rm"+ts;row.id=id;var tBody=replaceRow.parentNode;tBody.insertBefore(row,replaceRow);tBody.removeChild(replaceRow);}if(updateValues){var metafuseTableRowObject=metafuseTableUpdate.ObjectsById[id];if(metafuseTableRowObject!=null){var metafuseTableRowObjectToUpdate=this.ObjectsById[id];if(metafuseTableRowObjectToUpdate){metafuseTableRowObjectToUpdate.Values=metafuseTableRowObject.Values;}}}}}this.OnAfterReplaceRows(metafuseTableUpdate);receivedTable.parentNode.removeChild(receivedTable);};MetafuseTable.prototype.InsertRows=MetafuseTable_InsertRows;function MetafuseTable_InsertRows(metafuseTableInsert){this.InsertMetafuseTableRowObjectsFromMetafuseTable(metafuseTableInsert);};MetafuseTable.prototype.GetNextTableRow=MetafuseTable_GetNextTableRow;function MetafuseTable_GetNextTableRow(row){row=GetElementById(row);if(row!=null){var nextRow=row.nextSibling;while(nextRow!=null&&nextRow.nodeName!="TR"){nextRow=nextRow.nextSibling;}if(nextRow!=null&&nextRow.nodeName=="TR"){return nextRow;}}return null;};MetafuseTable.prototype.GetNextTableRowObject=MetafuseTable_GetNextTableRowObject;function MetafuseTable_GetNextTableRowObject(row,includeOnlyVisible){row=GetElementById(row);if(row!=null){var indexAbsolute=null;var nextObjectRow=row.nextSibling;while(nextObjectRow!=null){if(nextObjectRow.id!=null&nextObjectRow.id!=""&&(includeOnlyVisible==false||nextObjectRow.style.display!="none")){var objectToTest=this.ObjectsById[nextObjectRow.id];if(objectToTest!=null){return objectToTest;}}nextObjectRow=nextObjectRow.nextSibling;}}return null;};MetafuseTable.prototype.ClearCollapsedNodeWithChildrenLoaded=MetafuseTable_ClearCollapsedNodeWithChildrenLoaded;function MetafuseTable_ClearCollapsedNodeWithChildrenLoaded(id){var rowObject=this.ObjectsById[id];var rowObjectToClear=null;while(rowObject!=null){if(rowObject.IsChildrenLoaded==true&&rowObject.IsExpanded==false){rowObjectToClear=rowObject;rowObject=null;}else{if(rowObject.ParentId!=null&&rowObject.ParentId!=""){rowObject=this.ObjectsById[rowObject.ParentId];}else{rowObject=null;}}}if(rowObjectToClear!=null){var table=GetElementById(this.ElementId);var tBodies=table.getElementsByTagName("TBODY");var tBody=tBodies[0];var indexToStart=rowObjectToClear.IndexAbsolute+1
var removeCount=rowObjectToClear.ChildTotalRecursive;for(var i=indexToStart;i<indexToStart+rowObjectToClear.ChildTotalRecursive;i++){var rowObjectToRemove=this.ObjectsByIndex[i];var row=GetElementById(rowObjectToRemove.Id);delete this.ObjectsById[rowObjectToRemove.Id];tBody.removeChild(row);}this.ObjectsByIndex.splice(indexToStart,removeCount);rowObjectToClear.IsChildrenLoaded=false;while(rowObjectToClear!=null){rowObjectToClear.ChildTotalRecursive-=removeCount;if(rowObjectToClear.ParentId!=null&&rowObjectToClear.ParentId!=""){rowObjectToClear=this.ObjectsById[rowObjectToClear.ParentId];}else{rowObjectToClear=null;}}}};MetafuseTable.prototype.Sort=MetafuseTable_Sort;function MetafuseTable_Sort(element,sortColumn){var sorts=FormTools.GetFormElementValue(this.UniqueId+"_Sort");var sortDirection="0";if(sorts!=""){var sortProperties=sorts.split(",");sorts="";var count=0;for(var i=0;i<sortProperties.length;i++){var sortProperty=sortProperties[i];var sortPropertyArray=sortProperty.split("|");if(sortPropertyArray[0]==sortColumn){if(sortPropertyArray[1]=="0"&&i==0){sortDirection="1";}}else{if(sorts!=""){sorts+=",";}sorts+=sortProperty;count++;}if(count==3){break;}}}var comma="";if(sorts!=""){comma=","}sorts=sortColumn+"|"+sortDirection+comma+sorts;FormTools.SetFormElementValue(this.UniqueId+"_Sort",sorts);Ajax.DoAjaxPostBack(this.UniqueId,"SORT",false,element,"",false,false,null);return false;};MetafuseTable.prototype.RemoveNamingContainerIdFromRowId=MetafuseTable_RemoveNamingContainerIdFromRowId;function MetafuseTable_RemoveNamingContainerIdFromRowId(id){if(id!=null&&id!=""){id=id.substring(id.lastIndexOf("_")+1,id.length);}return id;};MetafuseTable.prototype.EKH=MetafuseTable_EKH;function MetafuseTable_EKH(element,localEvent){if(IsEnterKey(localEvent)&&this.IsBusy==false){element=GetElementById(element);if(element!=null&&element.onchange&&typeof(element.onchange)=='function'){try{element.onchange();}catch(e){}}var getFormDataFunction=this.ObjectId+".FormDefinition.GetFormData();";setTimeout(getFormDataFunction,300);return false;}return true;}function MetafuseTableFormDefinition(metafuseTable,formRowId,addRowLocationType,addRowLocationRowId,isFormInlineOnEdit,elementIdToFocusOn,blankRowId,editCellIndex,editCellAnchorHtml,deleteCellIndex,deleteCellAnchorHtml,addCommandElementId,updateCommandElementId,hideFormRowOnClearFormData,onValidateForm,onBeforeGetFormData,onAfterGetFormData,onBeforeSetFormData,onAfterSetFormData,onBeforeClearFormData,onAfterClearFormData,onBeforeDeleteFormData,onAfterDeleteFormData,fields){this.MetafuseTable=metafuseTable;this.BlankRowId=blankRowId;this.FormRowId=formRowId;this.AddRowLocationType=addRowLocationType;this.AddRowLocationRowId=addRowLocationRowId;this.IsFormInlineOnEdit=isFormInlineOnEdit;this.ElementIdToFocusOn=elementIdToFocusOn;this.Fields=fields;this.EditCellIndex=editCellIndex;this.EditCellAnchorHtml=editCellAnchorHtml;this.DeleteCellIndex=deleteCellIndex;this.DeleteCellAnchorHtml=deleteCellAnchorHtml;this.AddCommandElementId=addCommandElementId;this.UpdateCommandElementId=updateCommandElementId;this.HideFormRowAfterClearFormData=false;this.EditingRowId=null;this.EditingObject=null;this.AddNewRowsToParentId=null;this.HasAttemptedToEditOneObject=false;this.RowIdToInsertFormBeforeForAdd=null;this.RowToInsertFormBeforeForAdd=null;this.FieldValueInsertedList=null;if(hideFormRowOnClearFormData){this.HideFormRowAfterClearFormData=hideFormRowOnClearFormData;}if(onValidateForm!=null){this.OnValidateForm=onValidateForm;}else{this.OnValidateForm=function(){return true;};}if(onBeforeGetFormData!=null){this.OnBeforeGetFormData=onBeforeGetFormData;}else{this.OnBeforeGetFormData=function(){};}if(onAfterGetFormData!=null){this.OnAfterGetFormData=onAfterGetFormData;}else{this.OnAfterGetFormData=function(){};}if(onBeforeSetFormData!=null){this.OnBeforeSetFormData=onBeforeSetFormData;}else{this.OnBeforeSetFormData=function(){};}if(onAfterSetFormData!=null){this.OnAfterSetFormData=onAfterSetFormData;}else{this.OnAfterSetFormData=function(){};}if(onBeforeClearFormData!=null){this.OnBeforeClearFormData=onBeforeClearFormData;}else{this.OnBeforeClearFormData=function(){};}if(onAfterClearFormData!=null){this.OnAfterClearFormData=onAfterClearFormData;}else{this.OnAfterClearFormData=function(){};}if(onBeforeDeleteFormData!=null){this.OnBeforeDeleteFormData=onBeforeDeleteFormData;}else{this.OnBeforeDeleteFormData=function(){};}if(onAfterDeleteFormData!=null){this.OnAfterDeleteFormData=onAfterDeleteFormData;}else{this.OnAfterDeleteFormData=function(){};}this.JavaScriptOnAfterSetFormDataCreateRowAsChild=function(){};};MetafuseTableFormDefinition.prototype.GetFormData=MetafuseTableFormDefinition_GetFormData;function MetafuseTableFormDefinition_GetFormData(addUpdateButton,functionToExecuteAfterClear){UITools.ToggleElementDisable(addUpdateButton,false);if(this.MetafuseTable.IsBusy){this.MetafuseTable.AlertBusyMessage();UITools.ToggleElementDisable(addUpdateButton,true);return false;}this.MetafuseTable.IsBusy=true;var valid=this.OnValidateForm(this);if(!valid){this.MetafuseTable.IsBusy=false;UITools.ToggleElementDisable(addUpdateButton,true);return false;}setTimeout("OnDocumentUnloadFunctions.AddFunction(MetafuseTable_OnUnload_"+this.MetafuseTable.ObjectId+")",0);this.OnBeforeGetFormData(this);var rowEditing=null;var objectEditing=null;var rowEditingBefore=null;var objectEditingValuesBefore=null;var objectEditingWasUpdatedBefore=false;var objectEditingXmlBefore=null;var rowObjectBeforeCreatedRow=null;var rowObjectParentIdForCreatedRow=null;if(this.EditingRowId==null||this.EditingRowId==""){rowEditing=this.GetNewBlankRow();var guid=rowEditing.id;var appendToTable=GetElementById(this.MetafuseTable.ElementId);var appendToTableTBodies=appendToTable.getElementsByTagName("TBODY");appendToTableTBody=appendToTableTBodies[0];var insertBeforeRow=this.GetRowToInsertNewRowBefore();if(insertBeforeRow){appendToTableTBody.insertBefore(rowEditing,insertBeforeRow);}else{appendToTableTBody.appendChild(rowEditing);}var indexAbsolute=null;var nextRowObject=this.MetafuseTable.GetNextTableRowObject(rowEditing,true);if(nextRowObject!=null){indexAbsolute=nextRowObject.IndexAbsolute;}var rows=appendToTableTBody.getElementsByTagName("TR");for(var i=rowEditing.rowIndex-1;i>=0;i--){var rowToTest=rows[i];if(rowToTest.id!=null&&rowToTest.id!=""&&rowToTest.style.display!="none"){var rowToTestObject=this.MetafuseTable.ObjectsById[rowToTest.id];if(rowToTestObject!=null){rowObjectBeforeCreatedRow=rowToTestObject;break;}}}if(rowObjectBeforeCreatedRow){if(this.MetafuseTable.RowMoveDropDetermineIfChildrenAllowed(rowObjectBeforeCreatedRow)&&rowObjectBeforeCreatedRow.IsExpanded){rowObjectParentIdForCreatedRow=rowObjectBeforeCreatedRow.Id;}else{rowObjectParentIdForCreatedRow=rowObjectBeforeCreatedRow.ParentId;}}objectEditing=new MetafuseTableRowObject(guid,rowObjectParentIdForCreatedRow);objectEditing.IsObjectCreated=true;objectEditing.IsExpanded=true;objectEditing.IsChildrenLoaded=true;this.MetafuseTable.InsertObjectObject(objectEditing,indexAbsolute);this.MetafuseTable.ObjectsCreated[objectEditing.Id]=objectEditing;objectEditing.Values=new Array();for(var i=0;i<this.Fields.length;i++){var field=this.Fields[i];if(field.ValueIndex!=null&&field.ValueIndex>=0){objectEditing.Values[field.ValueIndex]=new MetafuseTableRowObjectValue(null,null);}}}else{rowEditing=GetElementById(this.EditingRowId);objectEditing=this.MetafuseTable.ObjectsById[this.EditingRowId];if(this.MetafuseTable.EnableOnUpdateRowObject){rowEditingBefore=rowEditing.cloneNode(true);rowEditingBefore.id=rowEditing.id+"_BEFORE";objectEditingValuesBefore=objectEditing.Values;objectEditingXmlBefore=objectEditing.UpdatedValuesXml;if(this.MetafuseTable.ObjectsUpdated[objectEditing.Id]!=null){objectEditingWasUpdatedBefore=true;}}if(objectEditing.IsObjectCreated==false){this.MetafuseTable.ObjectsUpdated[objectEditing.Id]=objectEditing;}}var cells=rowEditing.getElementsByTagName("TD");objectEditing.IsObjectDirty=true;var xml="<o id=\""+objectEditing.Id+"\"";if(objectEditing.IsObjectCreated==true&&objectEditing.ParentId!=null&&objectEditing.ParentId!=""){xml+=" p=\""+objectEditing.ParentId+"\"";}if(rowObjectBeforeCreatedRow!=null){objectEditing.RowObjectBeforeCreatedRowId=rowObjectBeforeCreatedRow.Id;xml+=" a=\""+rowObjectBeforeCreatedRow.Id+"\"";}xml+=">";if(this.EditingRowId==null){this.InsertEditDeleteCellsIntoRow(cells);}if(this.Fields!=null){objectEditing.UpdatedValuesStringByFieldIndexForXml=new Array();for(var i=0;i<this.Fields.length;i++){var field=this.Fields[i];var childMetafuseTable=field.GetChildMetafuseTable();if(childMetafuseTable==null){var value=field.GetFieldValue();var text=field.GetFieldText();xml+="<f i=\""+i+"\"><![CDATA["+value+"]]></f>";if(field.CellIndex!=null&&field.CellIndex>=0){var cell=cells[field.CellIndex];if(BrowserTools.IsInternetExplorer()){cell.innerText=text;}else{cell.innerHTML=text.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>").replace(/\r/g,"");}}if(field.ValueIndex!=null&&field.ValueIndex>=0){var valueField=objectEditing.GetValueByIndex(field.ValueIndex);valueField.Value=value;valueField.Text=text;}objectEditing.UpdatedValuesStringByFieldIndexForXml[i]=value;}else{var valueFieldArray=new Array();for(var ii=0;ii<childMetafuseTable.ObjectsByIndex.length;ii++){var co=childMetafuseTable.ObjectsByIndex[ii];valueFieldArray[valueFieldArray.length]=co;}if(childMetafuseTable.ObjectsDeleted!=null){for(var key in childMetafuseTable.ObjectsDeleted){var co=childMetafuseTable.ObjectsDeleted[key];if(co!=null){valueFieldArray[valueFieldArray.length]=co;}}}objectEditing.Values[field.ValueIndex]=valueFieldArray;var value=childMetafuseTable.SerializeUpdateXml(true);xml+="<f i=\""+i+"\">"+value+"</f>";objectEditing.UpdatedValuesStringByFieldIndexForXml[i]=value;}}}xml+="</o>";objectEditing.UpdatedValuesXml=xml;this.OnAfterGetFormData(this,objectEditing);var metafuseAjaxPostBackObjectServerResponse=null;var self=this;if(objectEditing.IsObjectCreated){if(this.MetafuseTable.EnableSerializeXmlListOnAddRowObject){this.MetafuseTable.SerializeUpdateXml();}if(this.MetafuseTable.EnableOnAddRowObject){metafuseAjaxPostBackObjectServerResponse=new MetafuseAjaxPostBackObjectServerResponse();metafuseAjaxPostBackObjectServerResponse.OnAfterExecuteSuccessfulResponse=function(metafuseAjaxPostBackObjectServerResponse){if(metafuseAjaxPostBackObjectServerResponse.IsValid){rowEditing.style.display="";self.ClearFormData();self.MetafuseTable.IsBusy=false;UITools.ToggleElementDisable(addUpdateButton,true);if(functionToExecuteAfterClear){functionToExecuteAfterClear();}}else{self.MetafuseTable.DeleteObjectRecursively(objectEditing.Id,true);self.MetafuseTable.IsBusy=false;UITools.ToggleElementDisable(addUpdateButton,true);}};Ajax.DoAjaxPostBack(this.MetafuseTable.UniqueId,"ADDOBJECT:"+objectEditing.Id,this.MetafuseTable.EnableOnAddRowObjectCausesValidation,addUpdateButton,"Saving...",false,true,metafuseAjaxPostBackObjectServerResponse);}}else{if(this.MetafuseTable.EnableSerializeXmlListOnUpdateRowObject){this.MetafuseTable.SerializeUpdateXml();}if(this.MetafuseTable.EnableOnUpdateRowObject){metafuseAjaxPostBackObjectServerResponse=new MetafuseAjaxPostBackObjectServerResponse();metafuseAjaxPostBackObjectServerResponse.OnAfterExecuteSuccessfulResponse=function(metafuseAjaxPostBackObjectServerResponse){if(metafuseAjaxPostBackObjectServerResponse.IsValid){rowEditing.style.display="";self.ClearFormData();self.MetafuseTable.IsBusy=false;UITools.ToggleElementDisable(addUpdateButton,true);if(functionToExecuteAfterClear){functionToExecuteAfterClear();}}else{var appendToTable=GetElementById(self.MetafuseTable.ElementId);var appendToTableTBody=appendToTable.getElementsByTagName("TBODY");appendToTableTBody=appendToTableTBody[0];var nextSibling=rowEditing.nextSibling;appendToTableTBody.removeChild(rowEditing);rowEditingBefore.id=objectEditing.Id;if(nextSibling!=null){appendToTableTBody.insertBefore(rowEditingBefore,nextSibling);}else{appendToTableTBody.appendChild(rowEditingBefore);}objectEditing.Values=objectEditingValuesBefore;objectEditing.UpdatedValuesXml=objectEditingXmlBefore;if(objectEditing.IsObjectCreated==false&&objectEditingWasUpdatedBefore==false){delete self.MetafuseTable.ObjectsUpdated[objectEditing.Id];}self.MetafuseTable.IsBusy=false;UITools.ToggleElementDisable(addUpdateButton,true);}};Ajax.DoAjaxPostBack(this.MetafuseTable.UniqueId,"UPDATEOBJECT:"+objectEditing.Id,this.MetafuseTable.EnableOnUpdateRowObjectCausesValidation,addUpdateButton,"Saving...",false,true,metafuseAjaxPostBackObjectServerResponse);}}if(metafuseAjaxPostBackObjectServerResponse==null){rowEditing.style.display="";this.ClearFormData();this.MetafuseTable.IsBusy=false;UITools.ToggleElementDisable(addUpdateButton,true);if(functionToExecuteAfterClear){functionToExecuteAfterClear();}}return false;};MetafuseTableFormDefinition.prototype.InsertEditDeleteCellsIntoRow=MetafuseTableFormDefinition_InsertEditDeleteCellsIntoRow;function MetafuseTableFormDefinition_InsertEditDeleteCellsIntoRow(cells){if(this.EditCellIndex>=0){var editCell=cells[this.EditCellIndex];if(editCell==null){alert("Unable to insert the edit cell at the index specified: "+this.EditCellIndex+" the cell does not exist in the blank row");}else{editCell.innerHTML+="<a href=\"javascript:;\" onclick=\""+this.MetafuseTable.ObjectId+".EO(this);return false;\">"+this.EditCellAnchorHtml+"</a>&nbsp;";}}if(this.DeleteCellIndex>=0){var deleteCell=cells[this.DeleteCellIndex];if(deleteCell==null){alert("Unable to insert the delete cell at the index specified: "+this.DeleteCellIndex+" the cell does not exist in the blank row");}else{deleteCell.innerHTML+="<a href=\"javascript:;\" onclick=\""+this.MetafuseTable.ObjectId+".DO(this);return false;\">"+this.DeleteCellAnchorHtml+"</a>&nbsp;";}}};MetafuseTableFormDefinition.prototype.GetNewBlankRow=MetafuseTableFormDefinition_GetNewBlankRow;function MetafuseTableFormDefinition_GetNewBlankRow(){var guid=NewGuid();var blankRow=GetElementById(this.BlankRowId);if(blankRow==null){alert("ERROR: Invalid blank row id: "+this.BlankRowId+" unable to locate the blank row, further processing will fail.");}var newRow=rowEditing=blankRow.cloneNode(true);newRow.id=guid;return newRow;};MetafuseTableFormDefinition.prototype.GetRowToInsertNewRowBefore=MetafuseTableFormDefinition_GetRowToInsertNewRowBefore;function MetafuseTableFormDefinition_GetRowToInsertNewRowBefore(){var rowToInsertBefore=null;if(this.AddRowLocationType=='AddAfterSpecifiedRow'&&this.AddRowLocationRowId!=""){var afterRow=GetElementById(this.AddRowLocationRowId);if(afterRow==null){alert("Unable to add the record after the specified row since the element does not exist, row id: "+this.AddRowLocationRowId);}else{rowToInsertBefore=MetafuseTable_GetNextTableRow(this.AddRowLocationRowId);}}else if(this.AddRowLocationType=='AddBeforeSpecifiedRow'&&this.AddRowLocationRowId!=""){var rowToInsertBefore=GetElementById(this.AddRowLocationRowId);if(rowToInsertBefore==null){alert("Unable to insert the record before the specified row since the element does not exist, row id: "+this.AddRowLocationRowId);isSuccessful=false;}}return rowToInsertBefore;};MetafuseTableFormDefinition.prototype.SetFormData=MetafuseTableFormDefinition_SetFormData;function MetafuseTableFormDefinition_SetFormData(objectEditing){var self=this;if(this.EditingRowId!=null){var editCell=null;if(this.EditCellIndex!=null&&this.EditCellIndex>=0){var editFormRow=GetElementById(this.FormRowId);var editFormRowCells=editFormRow.getElementsByTagName("TD");editCell=editFormRowCells[this.EditCellIndex];}this.GetFormData(editCell,function(){var metafuseTable=window[self.MetafuseTable.ObjectId];metafuseTable.FormDefinition.SetFormData(metafuseTable.ObjectsById[objectEditing.Id]);});return false;}this.EditingRowId=objectEditing.Id;this.EditingObject=objectEditing;var row=GetElementById(objectEditing.Id);var cells=row.getElementsByTagName("TD");if(this.IsFormInlineOnEdit){var formRow=GetElementById(this.FormRowId);if(this.HasAttemptedToEditOneObject==false){if(formRow.nextSibling!=null){if(formRow.nextSibling.id!=null&&formRow.nextSibling.id!=""){this.RowIdToInsertFormBeforeForAdd=formRow.nextSibling.id;}this.RowToInsertFormBeforeForAdd=formRow.nextSibling;}this.HasAttemptedToEditOneObject=true;}var appendToTable=GetElementById(this.MetafuseTable.ElementId);var appendToTableTBody=appendToTable.getElementsByTagName("TBODY");appendToTableTBody=appendToTableTBody[0];appendToTableTBody.removeChild(formRow);row.style.display="none";appendToTableTBody.insertBefore(formRow,row);}this.OnBeforeSetFormData(this);for(var i=0;i<this.Fields.length;i++){var field=this.Fields[i];var childMetafuseTable=field.GetChildMetafuseTable();if(childMetafuseTable==null){var text="";var value="";var cell=null;if(field.CellIndex!=null&&field.CellIndex>=0){var text="";cell=cells[field.CellIndex];if(BrowserTools.IsInternetExplorer()&&1<0){text=cell.innerText;}else{text=cell.innerHTML;text=text.replace(/<BR>/gi,"\r\n");text=text.replace(/<[^<|>]+?>/gi,"");text=text.replace(/&lt;/g,"<");text=text.replace(/&gt;/g,">");text=text.replace(/&amp;/g,"&");text=text.replace(/&nbsp;/g," ");}if(field.ValueIndex==null||field.ValueIndex<0){value=text;}}if(field.ValueIndex!=null&&field.ValueIndex>=0){var metafuseTableRowObjectValue=objectEditing.GetValueByIndex(field.ValueIndex);if(metafuseTableRowObjectValue!=null){value=metafuseTableRowObjectValue.Value;if(value==null){value="";}if(field.CellIndex==null||field.CellIndex<0){text=metafuseTableRowObjectValue.Text;}}}var success=field.SetFieldValue(value,text,cell);if(success==false){if(this.FieldValueInsertedList==null){this.FieldValueInsertedList=new Array();}FormTools.InsertFormElementValueAndText(field.FormElementId,value,text,true);this.FieldValueInsertedList[this.FieldValueInsertedList.length]=new MetafuseTableRowObjectValueInserted(field.FormElementId,value,text);}}else{var arrayObjects=objectEditing.Values[field.ValueIndex];childMetafuseTable.FormDefinition.SetFormDataChildRows(arrayObjects);}}this.OnAfterSetFormData(this);if(this.AddCommandElementId!=""&&this.UpdateCommandElementId!=""){UITools.ToggleDisplay(this.AddCommandElementId,true);UITools.ToggleDisplay(this.UpdateCommandElementId,false);}if(this.ElementIdToFocusOn!=null&&this.ElementIdToFocusOn!=""){setTimeout("UITools.FocusOnElement('"+this.ElementIdToFocusOn+"')",0);}UITools.ToggleDisplay(this.FormRowId,false);return false;};MetafuseTableFormDefinition.prototype.SetFormDataChildRows=MetafuseTableFormDefinition_SetFormDataChildRows;function MetafuseTableFormDefinition_SetFormDataChildRows(childObjectArrayList){this.MetafuseTable.ClearMetafuseTable();if(childObjectArrayList==null||!isArray(childObjectArrayList)||childObjectArrayList.length==0){return;}var insertBeforeRow=null;var appendToTable=GetElementById(this.MetafuseTable.ElementId);var appendToTableTBody=appendToTable.getElementsByTagName("TBODY");appendToTableTBody=appendToTableTBody[0];var blankRow=GetElementById(this.BlankRowId);if(this.AddRowLocationType=='AddAfterSpecifiedRow'&&this.AddRowLocationRowId!=""){var afterRow=GetElementById(this.AddRowLocationRowId);if(afterRow==null){alert("Unable to add the record after the specified row since the element does not exist, row id: "+this.AddRowLocationRowId);}else{insertBeforeRow=afterRow.nextSibling;}}else if(this.AddRowLocationType=='AddBeforeSpecifiedRow'&&this.AddRowLocationRowId!=""){insertBeforeRow=GetElementById(this.AddRowLocationRowId);if(insertBeforeRow==null){alert("Unable to insert the record before the specified row since the element does not exist, row id: "+this.AddRowLocationRowId);}}for(var i=0;i<childObjectArrayList.length;i++){var mto=childObjectArrayList[i];if(mto.IsObjectDeleted){this.MetafuseTable.ObjectsDeleted[mto.Id]=mto;}else{this.MetafuseTable.AppendObjectObject(mto);if(mto.IsObjectCreated){this.MetafuseTable.ObjectsCreated[mto.Id]=mto;}if(mto.IsObjectUpdated){this.MetafuseTable.ObjectsCreated[mto.Id]=mto;}var newRow=blankRow.cloneNode(true);newRow.id=mto.Id;var cells=newRow.getElementsByTagName("TD");this.InsertEditDeleteCellsIntoRow(cells);for(var ii=0;ii<this.Fields.length;ii++){var field=this.Fields[ii];if(field.ValueIndex>=0){var childMetafuseTable=field.GetChildMetafuseTable();if(childMetafuseTable==null){if(field.ValueIndex!=null&&field.ValueIndex>=0){var metafuseTableRowObjectValue=mto.GetValueByIndex(field.ValueIndex);if(field.CellIndex!=null&&field.CellIndex>=0){var cell=cells[field.CellIndex]
var text=metafuseTableRowObjectValue.Text;text=field.OnAfterGetFieldText(text);var cell=cells[field.CellIndex];if(BrowserTools.IsInternetExplorer()){cell.innerText=text;}else{cell.innerHTML=text.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>").replace(/\r/g,"");}}}}else{var childArrayObjects=mto.Values[field.ValueIndex];childMetafuseTable.FormDefinition.SetFormDataChildRows(childArrayObjects);}}}if(insertBeforeRow!=null){appendToTableTBody.insertBefore(newRow,insertBeforeRow);}else{appendToTableTBody.appendChild(newRow);}this.JavaScriptOnAfterSetFormDataCreateRowAsChild(this,mto);newRow.style.display="";}}};MetafuseTableFormDefinition.prototype.ClearFormData=MetafuseTableFormDefinition_ClearFormData;function MetafuseTableFormDefinition_ClearFormData(){this.OnBeforeClearFormData(this);for(var i=0;i<this.Fields.length;i++){var field=this.Fields[i];var childMetafuseTable=field.GetChildMetafuseTable();if(field.DontClearValue==false){var childMetafuseTable=field.GetChildMetafuseTable();if(childMetafuseTable==null){field.SetFieldValue(field.DefaultValue,field.DefaultValue,null);}else{childMetafuseTable.ClearMetafuseTable();}}}if(this.FieldValueInsertedList!=null){for(var i=0;i<this.FieldValueInsertedList.length;i++){var fieldInserted=this.FieldValueInsertedList[i];FormTools.RemoveFormElementValueAndText(fieldInserted.ElementId,fieldInserted.Value,fieldInserted.Text);}this.FieldValueInsertedList=null;}if(this.EditingRowId!=null&&this.IsFormInlineOnEdit){var formRow=GetElementById(this.FormRowId);var appendToTable=GetElementById(this.MetafuseTable.ElementId);var appendToTableTBody=appendToTable.getElementsByTagName("TBODY");appendToTableTBody=appendToTableTBody[0];appendToTableTBody.removeChild(formRow);var formRowToInsertBefore=null;if(this.RowIdToInsertFormBeforeForAdd!=null&&this.RowIdToInsertFormBeforeForAdd!=""){formRowToInsertBefore=GetElementById(this.RowIdToInsertFormBeforeForAdd);}if(formRowToInsertBefore==null&&this.RowToInsertFormBeforeForAdd!=null){if(this.RowToInsertFormBeforeForAdd.id!=null&&this.RowToInsertFormBeforeForAdd.id!=""){formRowToInsertBefore=GetElementById(this.RowToInsertFormBeforeForAdd.id);}if(formRowToInsertBefore==null){formRowToInsertBefore=this.RowToInsertFormBeforeForAdd;}}if(formRowToInsertBefore==null){appendToTableTBody.appendChild(formRow);}else{try{appendToTableTBody.insertBefore(formRow,formRowToInsertBefore);}catch(e){appendToTableTBody.appendChild(formRow);}}UITools.ToggleDisplay(this.EditingRowId,false);}if(this.EditingRowId!=null&&this.EditCellIndex!=null&&this.EditCellIndex>=0){}else{if(this.ElementIdToFocusOn!=null&&this.ElementIdToFocusOn!=""){UITools.FocusOnElement(this.ElementIdToFocusOn);}}this.EditingRowId=null;this.EditingObject=null;this.OnAfterClearFormData(this);if(this.AddCommandElementId!=""&&this.UpdateCommandElementId!=""){UITools.ToggleDisplay(this.UpdateCommandElementId,true);UITools.ToggleDisplay(this.AddCommandElementId,false);}if(this.HideFormRowAfterClearFormData){UITools.ToggleDisplay(this.FormRowId,true);}};MetafuseTableFormDefinition.prototype.EditObject=MetafuseTableFormDefinition_EditObject;MetafuseTableFormDefinition.prototype.EO=MetafuseTableFormDefinition_EditObject;function MetafuseTableFormDefinition_EditObject(element,id){if(id==null){row=this.MetafuseTable.GetRowContainingElement(element);id=row.id;}var objectEditing=this.MetafuseTable.ObjectsById[id];if(objectEditing==null){alert("Unable to edit the item with id '"+id+"'.  Please report the problem to your system administrator");return false;}else if(objectEditing.DisableEdit){var name=this.MetafuseTable.GetRowName(objectEditing.Id);if(name==null||name==""){name="the item";}alert("You do not have permission to edit "+name+".");return false;}this.SetFormData(objectEditing);};MetafuseTableFormDefinition.prototype.GetFieldByName=MetafuseTableFormDefinition_GetFieldByName;function MetafuseTableFormDefinition_GetFieldByName(fieldName){for(var i=0;i<this.Fields.length;i++){var field=this.Fields[i];if(field.Name==fieldName){return field;break;}}return null;};MetafuseTableFormDefinition.prototype.GetFieldValueIndex=MetafuseTableFormDefinition_GetFieldValueIndex;function MetafuseTableFormDefinition_GetFieldValueIndex(fieldName){var field=this.GetFieldByName(fieldName);if(field!=null){return field.ValueIndex;}return null;};MetafuseTableFormDefinition.prototype.GetFieldCellIndex=MetafuseTableFormDefinition_GetFieldCellIndex;function MetafuseTableFormDefinition_GetFieldCellIndex(fieldName){var field=this.GetFieldByName(fieldName);if(field!=null){return field.CellIndex;}return null;};function MetafuseTableFormField(name,cellIndex,valueIndex,formElementId,defaultValue,dontClearValue,setSelectedWhenEditingUsingValueOrTextForDropDown,onAfterGetFieldText,onAfterGetFieldValue,onBeforeSetFieldValue,onAfterSetFieldValue,childMetafuseTableVar){this.Name=name;this.CellIndex=cellIndex;this.ValueIndex=valueIndex;this.DefaultValue=defaultValue;this.FormElementId=formElementId;this.ChildMetafuseTableVar=childMetafuseTableVar;this.ChildMetafuseTable=null;this.IsTextValue=(this.ValueIndex==null);this.DontClearValue=dontClearValue;if(setSelectedWhenEditingUsingValueOrTextForDropDown=="1"){this.SetSelectedWhenEditingUsingValueOrTextForDropDown=true;}else{this.SetSelectedWhenEditingUsingValueOrTextForDropDown=false;}this.GetChildMetafuseTable=function(){if(this.ChildMetafuseTableVar!=null){if(this.ChildMetafuseTable==null){this.ChildMetafuseTable=eval(this.ChildMetafuseTableVar);}}return this.ChildMetafuseTable;};if(onAfterGetFieldText!=null){this.OnAfterGetFieldText=onAfterGetFieldText;}else{this.OnAfterGetFieldText=function(text){return text;};}if(onAfterGetFieldValue!=null){this.OnAfterGetFieldValue=onAfterGetFieldValue;}else{this.OnAfterGetFieldValue=function(value){return value;};}if(onBeforeSetFieldValue!=null){this.OnBeforeSetFieldValue=onBeforeSetFieldValue;}else{this.OnBeforeSetFieldValue=function(value,text){return true;};}if(onAfterSetFieldValue!=null){this.OnAfterSetFieldValue=onAfterSetFieldValue;}else{this.OnAfterSetFieldValue=function(success,value,text){return success;};}};MetafuseTableFormField.prototype.GetFieldValue=MetafuseTableFormField_GetFieldValue;MetafuseTableFormField.prototype.GetFieldText=MetafuseTableFormField_GetFieldText;function MetafuseTableFormField_GetFieldValue(){var value=FormTools.GetFormElementValue(this.FormElementId);return this.OnAfterGetFieldValue(value);};function MetafuseTableFormField_GetFieldText(){var text=FormTools.GetFormElementText(this.FormElementId);return this.OnAfterGetFieldText(text);};MetafuseTableFormField.prototype.SetFieldValue=MetafuseTableFormField_SetFieldValue;function MetafuseTableFormField_SetFieldValue(value,text,tableCell){if(this.OnBeforeSetFieldValue(value,text,tableCell)){if(this.SetSelectedWhenEditingUsingValueOrTextForDropDown){}var success=FormTools.SetFormElementValue(this.FormElementId,value,this.SetSelectedWhenEditingUsingValueOrTextForDropDown);return this.OnAfterSetFieldValue(success,value,text);}else{return true;}};function MetafuseTableRowObjectValue(value,text){this.Value=value;this.Text=text;};function MetafuseTableRowObjectValueInserted(elementId,value,text){this.ElementId=elementId;this.Value=value;this.Text=text;};function MetafuseTableRowObjectChildObject(id,values,isObjectCreated,isObjectUpdated,isObjectDeleted){var tro=new MetafuseTableRowObject(id,null);tro.Values=values;if(isObjectCreated){tro.IsObjectCreated=true;}if(isObjectUpdated){tro.IsObjectUpdated=true;}if(isObjectDeleted){tro.IsObjectDeleted=true;}return tro;};function MTROCO(id,values){return new MetafuseTableRowObjectChildObject(id,values);};function MetafuseTableRowObject(id,parentId,disableEdit,disableDelete,disableDragDrop){this.Id=id;this.Depth=null;this.RowObjectType=null;this.ParentId=parentId;this.ParentIdOriginal=parentId;this.ParentObject=null;this.RowObjectBeforeCreatedRowId=null;this.DisableEdit=false;if(disableEdit!=null){this.DisableEdit=disableEdit;}this.DisableDelete=false;if(disableDelete!=null){this.DisableDelete=disableDelete;}if(disableDragDrop){this.DisableDragDrop=false;}this.ChartXCoordinates=null;this.MetafuseTable=null;this.IndexAbsolute=0;this.ChildTotalRecursive=0;this.IsObjectCreated=false;this.IsObjectDirty=false;this.IsObjectDeleted=false;this.IsExpanded=false;this.IsChildrenLoaded=false;this.Values=null;this.UpdatedValuesXml=null;this.UpdatedValuesStringByFieldIndexForXml=null;};MetafuseTableRowObject.prototype.GetValueByIndex=MetafuseTableRowObject_GetValueByIndex;function MetafuseTableRowObject_GetValueByIndex(index){if(this.Values==null){this.Values=new Array();}if(this.Values.length<index){this.Values[index]=new MetafuseTableRowObjectValue(null,null);}var obj=this.Values[index];if(obj==null){obj=new MetafuseTableRowObjectValue(null,null);this.Values[index]=obj;}else if(isString(obj)){var value=obj;obj=new MetafuseTableRowObjectValue(value,value);this.Values[index]=obj;}return obj;};MetafuseTableRowObject.prototype.ReserializeUpdatedValuesXml=MetafuseTableRowObject_ReserializeUpdatedValuesXml;function MetafuseTableRowObject_ReserializeUpdatedValuesXml(){var metafuseTableFormDefinition=this.MetafuseTable.FormDefinition;var xml="<o id=\""+this.Id+"\"";if(this.IsObjectCreated==true&&this.ParentId!=null&&this.ParentId!=""){xml+=" p=\""+this.ParentId+"\"";}if(this.RowObjectBeforeCreatedRowId!=null){xml+=" a=\""+this.RowObjectBeforeCreatedRowId+"\"";}xml+=">";if(metafuseTableFormDefinition.Fields!=null){for(var i=0;i<metafuseTableFormDefinition.Fields.length;i++){var field=metafuseTableFormDefinition.Fields[i];var childMetafuseTable=field.GetChildMetafuseTable();var valueString=null;if(childMetafuseTable==null){if(field.ValueIndex!=null&&field.ValueIndex>=0){var valueField=this.GetValueByIndex(field.ValueIndex);valueString=valueField.Value;}}if(valueString==null&&this.UpdatedValuesStringByFieldIndexForXml!=null&&this.UpdatedValuesStringByFieldIndexForXml.length>i){valueString=this.UpdatedValuesStringByFieldIndexForXml[i];}if(valueString!=null){if(childMetafuseTable==null){xml+="<f i=\""+i+"\"><![CDATA["+valueString+"]]></f>";}else{xml+="<f i=\""+i+"\">"+valueString+"</f>";}}}}xml+="</o>";this.UpdatedValuesXml=xml;}MetafuseTable.prototype.InsertMetafuseTableRowObjectsFromMetafuseTable=MetafuseTable_InsertMetafuseTableRowObjectsFromMetafuseTable;function MetafuseTable_InsertMetafuseTableRowObjectsFromMetafuseTable(metafuseTable,parentObject){var rowToInsertBefore=null;var insertIndexAbsolute;if(parentObject!=null){var rowExpanded=GetElementById(parentObject.Id);var nextRowObject=this.GetNextTableRowObject(rowExpanded);if(nextRowObject!=null){rowToInsertBefore=GetElementById(nextRowObject.Id);}else{rowToInsertBefore=this.GetNextTableRow(rowExpanded);if(rowToInsertBefore!=null&&rowToInsertBefore.nodeType!=1){rowToInsertBefore=rowToInsertBefore.nextSibling;}if(this.RowAdditionalRelatedIdSuffixes!=null&&this.RowAdditionalRelatedIdSuffixes.length>0){var isSiblingRow=true;while(isSiblingRow==true){if(rowToInsertBefore==null){isSiblingRow=false;}else{if(rowToInsertBefore.nodeType!=1){rowToInsertBefore=rowToInsertBefore.nextSibling;}else{var rowIsRelated=false;for(var i=0;i<this.RowAdditionalRelatedIdSuffixes.length;i++){var rowToTest=GetElementById(parentObject.Id+this.RowAdditionalRelatedIdSuffixes[i]);if(rowToTest!=null&&rowToTest==rowToInsertBefore){rowIsRelated=true;break;}}if(rowIsRelated){rowToInsertBefore=rowToInsertBefore.nextSibling;}else{isSiblingRow=false;}}}}}}insertIndexAbsolute=parentObject.IndexAbsolute+1;}else{var nextVisibleRowObject=null;if(this.FormDefinition!=null){var blankRowLocation=this.FormDefinition.GetNewBlankRow();rowToInsertBefore=this.FormDefinition.GetRowToInsertNewRowBefore();nextVisibleRowObject=this.GetNextTableRowObject(rowToInsertBefore,true);}if(nextVisibleRowObject!=null){insertIndexAbsolute=nextVisibleRowObject.IndexAbsolute;}else{insertIndexAbsolute=this.ObjectsByIndex.length;}}InsertHTML(metafuseTable.ReceivedTableHtml);var appendToTable=GetElementById(this.ElementId);var ajaxTableToInsert=GetElementById(metafuseTable.ReceivedTableId);var appendToTableTBody=appendToTable.getElementsByTagName("TBODY");appendToTableTBody=appendToTableTBody[0];for(var i=0;i<ajaxTableToInsert.tBodies.length;i++){var tBodyToInsert=ajaxTableToInsert.tBodies[i];while(tBodyToInsert.rows.length>0){var rowToInsert=tBodyToInsert.rows[0];tBodyToInsert.removeChild(rowToInsert);if(rowToInsertBefore){if(rowToInsertBefore.nodeType!=1){if(rowToInsertBefore.nextSibling){rowToInsertBefore=rowToInsertBefore.nextSibling;}}var newRowIndex=rowToInsertBefore.rowIndex;if(newRowIndex){appendToTableTBody.insertRow(newRowIndex);appendToTableTBody.rows[newRowIndex].parentNode.replaceChild(rowToInsert,appendToTableTBody.rows[newRowIndex]);}else{appendToTableTBody.appendChild(rowToInsert);}}else{appendToTableTBody.appendChild(rowToInsert);}rowToInsert.style.display="";}}ajaxTableToInsert.parentNode.removeChild(ajaxTableToInsert);var amountToInsert=metafuseTable.ObjectsByIndex.length;var metafuseTableRowObjectsToShift=new Array();for(var i=insertIndexAbsolute;i<this.ObjectsByIndex.length;i++){var metafuseTableRowObject=this.ObjectsByIndex[i];metafuseTableRowObject.IndexAbsolute+=amountToInsert;metafuseTableRowObjectsToShift[metafuseTableRowObjectsToShift.length]=metafuseTableRowObject;}for(var i=0;i<metafuseTable.ObjectsByIndex.length;i++){var metafuseTableRowObject=metafuseTable.ObjectsByIndex[i];metafuseTableRowObject.MetafuseTable=this;if(metafuseTableRowObject.ParentObject==null){metafuseTableRowObject.ParentObject=parentObject;if(parentObject!=null){metafuseTableRowObject.ParentId=parentObject.Id;}}metafuseTableRowObject.IndexAbsolute=insertIndexAbsolute+i;if(parentObject!=null){metafuseTableRowObject.Depth+=parentObject.Depth+1;}this.ObjectsById[metafuseTableRowObject.Id]=metafuseTableRowObject;this.ObjectsByIndex[insertIndexAbsolute+i]=metafuseTableRowObject;}for(var i=0;i<metafuseTableRowObjectsToShift.length;i++){var metafuseTableRowObject=metafuseTableRowObjectsToShift[i];this.ObjectsByIndex[insertIndexAbsolute+amountToInsert+i]=metafuseTableRowObject;}if(parentObject!=null){parentObject.ChildTotalRecursive+=amountToInsert;var updateParentObject=parentObject.ParentObject;while(updateParentObject!=null){updateParentObject.ChildTotalRecursive+=amountToInsert;updateParentObject=updateParentObject.ParentObject;}}};MetafuseTable.prototype.AppendObject=MetafuseTable_AppendObject;MetafuseTable.prototype.A=MetafuseTable_AppendObject;function MetafuseTable_AppendObject(id,depth,rowObjectTypeIndex,isExpanded,values,disableEdit,disableDelete){if(disableEdit==null){disableEdit=false;}if(disableDelete==null){disableDelete=false;}var metafuseTableRowObject=new MetafuseTableRowObject(id,null,disableEdit,disableDelete);metafuseTableRowObject.Depth=depth;if(rowObjectTypeIndex!=null){metafuseTableRowObject.RowObjectType=this.RowObjectTypes[rowObjectTypeIndex];}if(isExpanded){if(isExpanded=="1"||isExpanded=="true"||isExpanded=="True"){metafuseTableRowObject.IsExpanded=true;metafuseTableRowObject.IsChildrenLoaded=true;}}if(this.ChildrenPreLoadedLoadedForCollapsedNodes){metafuseTableRowObject.IsChildrenLoaded=true;}if(values){metafuseTableRowObject.Values=values;}this.AppendObjectObject(metafuseTableRowObject);};MetafuseTable.prototype.AppendObjectObject=MetafuseTable_AppendObjectObject;function MetafuseTable_AppendObjectObject(metafuseTableRowObject){var depth=metafuseTableRowObject.Depth;metafuseTableRowObject.MetafuseTable=this;while(this.LastObjectAddedByDepth.length-1>depth){this.LastObjectAddedByDepth.pop();}if(depth>0){var parentObject=this.LastObjectAddedByDepth[depth-1];metafuseTableRowObject.ParentId=parentObject.Id;metafuseTableRowObject.ParentObject=parentObject;metafuseTableRowObject.IndexAbsolute=parentObject.IndexAbsolute+parentObject.ChildTotalRecursive+1;parentObject.ChildTotalRecursive+=1;var updateParentObject=parentObject.ParentObject;while(updateParentObject!=null){updateParentObject.ChildTotalRecursive+=1;updateParentObject=updateParentObject.ParentObject;}}else{metafuseTableRowObject.IndexAbsolute=this.ObjectsByIndex.length;}this.ObjectsById[metafuseTableRowObject.Id]=metafuseTableRowObject;this.ObjectsByIndex[this.ObjectsByIndex.length]=metafuseTableRowObject;if(this.LastMetafuseTableRowObjectAdded==null){this.LastMetafuseTableRowObjectAdded=new Array();}this.LastObjectAddedByDepth[depth]=metafuseTableRowObject;};MetafuseTable.prototype.InsertObjectObject=MetafuseTable_InsertObjectObject;function MetafuseTable_InsertObjectObject(metafuseTableRowObject,indexAbsolute){if(indexAbsolute==null){indexAbsolute=this.ObjectsByIndex.length;}metafuseTableRowObject.MetafuseTable=this;var parentObject=null;if(metafuseTableRowObject.ParentId!=null&&metafuseTableRowObject.ParentId!=""){parentObject=this.ObjectsById[metafuseTableRowObject.ParentId];metafuseTableRowObject.ParentObject=parentObject;metafuseTableRowObject.Depth=parentObject.Depth+1;var updateParentObject=parentObject;while(updateParentObject!=null){updateParentObject.ChildTotalRecursive+=1;updateParentObject=updateParentObject.ParentObject;}}else{metafuseTableRowObject.Depth=0;metafuseTableRowObject.ParentObject=null;}this.ObjectsById[metafuseTableRowObject.Id]=metafuseTableRowObject;this.ObjectsByIndex.splice(indexAbsolute,0,metafuseTableRowObject);metafuseTableRowObject.IndexAbsolute=indexAbsolute;for(var i=(indexAbsolute+1);i<this.ObjectsByIndex.length;i++){var objectToShift=this.ObjectsByIndex[i];objectToShift.IndexAbsolute+=1;}};MetafuseTable.prototype.GetExpandCollapseEventArgument=MetafuseTable_GetExpandCollapseEventArgument;function MetafuseTable_GetExpandCollapseEventArgument(metafuseTableRowObject,isExpand,isLoad){var depth=0;var topLevelId=metafuseTableRowObject.Id;var topLevelType=metafuseTableRowObject.RowObjectType;var parentObject=metafuseTableRowObject.ParentObject;while(parentObject!=null){depth++;topLevelId=parentObject.Id;topLevelType=parentObject.RowObjectType;parentObject=parentObject.ParentObject;}var isEven=false;var currentRow=GetElementById(metafuseTableRowObject.Id);if(currentRow.className==this.EvenClassName){isEven=true;}var isCollapseString="true";if(isExpand){isCollapseString="false";}var isLoadString="false";if(isLoad){isLoadString="true";}var eventArgument='EXPCOL:RowId='+metafuseTableRowObject.Id+'&RowType='+metafuseTableRowObject.RowObjectType+'&RowDepth='+depth+'&TopRowId='+topLevelId+'&TopRowType='+topLevelType+'&IsLoad='+isLoadString+'&IsCollapse='+isCollapseString+'&IsEven='+isEven+'&IsChildrenLoaded='+metafuseTableRowObject.IsChildrenLoaded.toString();return eventArgument;};MetafuseTable.prototype.ExpandCollapseObject=MetafuseTable_ExpandCollapseObject;MetafuseTable.prototype.E=MetafuseTable_ExpandCollapseObject;function MetafuseTable_ExpandCollapseObject(element,rowObject){var metafuseTableRowObject
var row;var key;if(rowObject!=null){metafuseTableRowObject=rowObject;row=GetElementById(rowObject.Id);key=row.id;}else{row=this.GetRowContainingElement(element);key=row.id;metafuseTableRowObject=this.ObjectsById[key];}if(!metafuseTableRowObject.IsExpanded){if(!metafuseTableRowObject.IsChildrenLoaded){if(this.IsBusy){this.AlertBusyMessage();return;}this.IsBusy=true;var metafuseTable=this;var serverResponse=new MetafuseAjaxPostBackObjectServerResponse();metafuseTableRowObject.AnchorClicked=element;serverResponse.OnAfterExecuteSuccessfulResponse=function(){metafuseTable.IsBusy=false;if(metafuseTable.TempDeleteAfterExpand){metafuseTable.TempDeleteAfterExpand=false;var serverResponseDelete=new MetafuseAjaxPostBackObjectServerResponse();serverResponseDelete.OnAfterExecuteSuccessfulResponse=function(serverResponseDelete){if(this.IsValid){metafuseTable.DeleteObjectRecursively(key,false);}metafuseTable.IsBusy=false;};if(metafuseTable.EnableSerializeXmlListOnRemoveRowObject){metafuseTable.SerializeUpdateXml();}Ajax.DoAjaxPostBack(metafuseTable.UniqueId,"REMOVE:"+key,metafuseTable.EnableOnRemoveRowObjectCausesValidation,element,"",false,true,serverResponseDelete);}metafuseTable.OnAfterExpandRow(metafuseTable,metafuseTableRowObject,true);};var eventArgument=this.GetExpandCollapseEventArgument(metafuseTableRowObject,true,true);Ajax.DoAjaxPostBack(this.UniqueId,eventArgument,false,element,"",false,true,serverResponse);}else{metafuseTableRowObject.IsExpanded=true;for(var i=metafuseTableRowObject.IndexAbsolute+1;i<metafuseTableRowObject.IndexAbsolute+1+metafuseTableRowObject.ChildTotalRecursive;i++){var ajaxObjectTemp=this.ObjectsByIndex[i];var row=GetElementById(ajaxObjectTemp.Id);row.style.display="";if(this.RowAdditionalRelatedIdSuffixes){for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){var rowTempAddl=GetElementById(ajaxObjectTemp.Id+this.RowAdditionalRelatedIdSuffixes[ii]);if(rowTempAddl){rowTempAddl.style.display="";}}}if(!ajaxObjectTemp.IsExpanded){i=i+ajaxObjectTemp.ChildTotalRecursive;}}var anchor=element;if(element.tagName=="TR"){var anchors=element.getElementsByTagName("A");for(var i=0;i<anchors.length;i++){var possibleAnchor=anchors[i];if(possibleAnchor.innerHTML.indexOf(this.ExpandedArrowUrl)>=0||possibleAnchor.innerHTML.indexOf(this.CollapsedArrowUrl)>=0){anchor=possibleAnchor;break;}}}if(this.ExpandedArrowUrl!=null&&this.ExpandedArrowUrl!=""&&anchor.innerHTML.indexOf(this.CollapsedArrowUrl)>=0){anchor.innerHTML="<img src=\""+this.ExpandedArrowUrl+"\" alt=\"Collapse\" border=\"0\"/>";}if(this.IsOddEvenAlternatingRows){if(!IsEven(metafuseTableRowObject.ChildTotalRecursive)){var oddOrEven=GetElementById(metafuseTableRowObject.Id).className;for(var i=metafuseTableRowObject.IndexAbsolute+1;i<this.ObjectsByIndex.length;i++){if(oddOrEven==this.OddClassName){oddOrEven=this.EvenClassName;}else{oddOrEven=this.OddClassName;}var ajaxObjectTemp=this.ObjectsByIndex[i];var rowTemp=GetElementById(ajaxObjectTemp.Id);if(rowTemp.className==oddOrEven){if(i<=metafuseTableRowObject.IndexAbsolute+metafuseTableRowObject.ChildTotalRecursive){i=metafuseTableRowObject.IndexAbsolute+metafuseTableRowObject.ChildTotalRecursive;if(IsEven(metafuseTableRowObject.ChildTotalRecursive)){if(oddOrEven==oddClassName){oddOrEven=evenClassName;}else{oddOrEven=oddClassName;}}}else{break;}}else{rowTemp.className=oddOrEven;if(this.RowAdditionalRelatedIdSuffixes){for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){var rowTempAddl=GetElementById(ajaxObjectTemp.Id+this.RowAdditionalRelatedIdSuffixes[ii]);if(rowTempAddl){rowTempAddl.className=oddOrEven;}}}if(!ajaxObjectTemp.IsExpanded){i+=ajaxObjectTemp.ChildTotalRecursive;}}}}}if(!this.DisableAjaxPostBackOnExpandCollapseAfterChildrenLoaded){var eventArgument=this.GetExpandCollapseEventArgument(metafuseTableRowObject,true,false);Ajax.DoAjaxPostBack(this.UniqueId,eventArgument);}this.OnAfterExpandRow(this,metafuseTableRowObject,false);}}else{metafuseTableRowObject.IsExpanded=false;var table=GetElementById(this.ElementId);var className="";for(var i=metafuseTableRowObject.IndexAbsolute+1;i<metafuseTableRowObject.IndexAbsolute+1+metafuseTableRowObject.ChildTotalRecursive;i++){var ajaxObjectTemp=this.ObjectsByIndex[i];var row=GetElementById(ajaxObjectTemp.Id);row.style.display="none";if(this.RowAdditionalRelatedIdSuffixes){for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){var rowTempAddl=GetElementById(ajaxObjectTemp.Id+this.RowAdditionalRelatedIdSuffixes[ii]);if(rowTempAddl){rowTempAddl.style.display="none";}}}}var anchor=element;if(element.tagName=="TR"){var anchors=element.getElementsByTagName("A");for(var i=0;i<anchors.length;i++){var possibleAnchor=anchors[i];if(possibleAnchor.innerHTML.indexOf(this.ExpandedArrowUrl)>=0||possibleAnchor.innerHTML.indexOf(this.CollapsedArrowUrl)>=0){anchor=possibleAnchor;break;}}}if(this.CollapsedArrowUrl!=null&&this.CollapsedArrowUrl!=""&&anchor.innerHTML.indexOf(this.ExpandedArrowUrl)>=0){anchor.innerHTML="<img src=\""+this.CollapsedArrowUrl+"\" alt=\"Expand\" border=\"0\"/>";}if(this.IsOddEvenAlternatingRows){if(!IsEven(metafuseTableRowObject.ChildTotalRecursive)){var oddOrEven=GetElementById(metafuseTableRowObject.Id).className;for(var i=metafuseTableRowObject.IndexAbsolute+metafuseTableRowObject.ChildTotalRecursive+1;i<this.ObjectsByIndex.length;i++){if(oddOrEven==this.OddClassName){oddOrEven=this.EvenClassName;}else{oddOrEven=this.OddClassName;}var ajaxObjectTemp=this.ObjectsByIndex[i];var rowTemp=GetElementById(ajaxObjectTemp.Id);if(rowTemp.className==oddOrEven){break;}else{rowTemp.className=oddOrEven;if(this.RowAdditionalRelatedIdSuffixes){for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){var rowTempAddl=GetElementById(ajaxObjectTemp.Id+this.RowAdditionalRelatedIdSuffixes[ii]);if(rowTempAddl){rowTempAddl.className=oddOrEven;}}}if(!ajaxObjectTemp.IsExpanded){i+=ajaxObjectTemp.ChildTotalRecursive;}}}}}if(!this.DisableAjaxPostBackOnExpandCollapseAfterChildrenLoaded){var eventArgument=this.GetExpandCollapseEventArgument(metafuseTableRowObject,false,false);var serverResponse=new MetafuseAjaxPostBackObjectServerResponse();Ajax.DoAjaxPostBack(this.UniqueId,eventArgument,false,null,"",false,false,serverResponse);}this.OnAfterCollapseRow(this,metafuseTableRowObject);}return false;};MetafuseTable.prototype.InsertExpandedRows=MetafuseTable_InsertExpandedRows;function MetafuseTable_InsertExpandedRows(metafuseTable,expandId){var metafuseTableRowObject=this.ObjectsById[expandId];this.InsertMetafuseTableRowObjectsFromMetafuseTable(metafuseTable,metafuseTableRowObject);metafuseTableRowObject.IsChildrenLoaded=true;metafuseTableRowObject.IsExpanded=true;if(this.ExpandedArrowUrl!=null&&this.ExpandedArrowUrl!=""&&metafuseTableRowObject.AnchorClicked!=null&&metafuseTableRowObject.AnchorClicked.innerHTML.indexOf(this.CollapsedArrowUrl)>=0){metafuseTableRowObject.AnchorClicked.innerHTML="<img src=\""+this.ExpandedArrowUrl+"\" alt=\"Collapse\" border=\"0\"/>";}if(this.IsOddEvenAlternatingRows){if(!IsEven(metafuseTableRowObject.ChildTotalRecursive)){var oddOrEven=GetElementById(metafuseTableRowObject.Id).className;for(var i=metafuseTableRowObject.IndexAbsolute+metafuseTableRowObject.ChildTotalRecursive+1;i<this.ObjectsByIndex.length;i++){var ajaxObjectTemp=this.ObjectsByIndex[i];var rowTemp=GetElementById(ajaxObjectTemp.Id);if(rowTemp.className==oddOrEven){break;}else{rowTemp.className=oddOrEven;if(additionalCorrelatedRowSuffixArray){for(var ii=0;ii<additionalCorrelatedRowSuffixArray.length;ii++){var rowTempAddl=GetElementById(ajaxObjectTemp.Id+additionalCorrelatedRowSuffixArray[ii]);if(rowTempAddl){rowTempAddl.className=oddOrEven;}}}if(oddOrEven==this.OddClassName){oddOrEven=this.EvenClassName;}else{oddOrEven=this.OddClassName;}if(!ajaxObjectTemp.IsExpanded){i+=ajaxObjectTemp.ChildTotalRecursive;}}}}}};function MetafuseTable_ExpandAll(){Ajax.DoAjaxPostBack(this.UniqueId,'ExpandAll',false,GetElementById(this.ElementId),"",false,true);return false;};function MetafuseTable_CollapseAll(){var attemptedToFindCellIndex=false;var expandCollapseCellIndex=this.ExpandCollapseCellIndex;var row;for(var i=0;i<this.ObjectsByIndex.length;i++){var metafuseTableRowObject=this.ObjectsByIndex[i];row=null;var isExpanded=metafuseTableRowObject.IsExpanded;metafuseTableRowObject.IsExpanded=false;if(metafuseTableRowObject.Depth>0){row=GetElementById(metafuseTableRowObject.Id);ToggleDisplay(row,true);if(this.RowAdditionalRelatedIdSuffixes){for(var ii=0;ii<this.RowAdditionalRelatedIdSuffixes.length;ii++){ToggleDisplay(GetElementById(metafuseTableRowObject.Id+this.RowAdditionalRelatedIdSuffixes[ii]),true);}}}if(isExpanded){if(this.CollapsedArrowUrl!=null&&this.CollapsedArrowUrl!=""){if(row==null){row=GetElementById(metafuseTableRowObject.Id);}if(expandCollapseCellIndex<0&&!attemptedToFindCellIndex){alert("MANUALLY SET THE EXPAND COLLAPSE CELL INDEX -  TODO: ADD CODE FOR FINDING THE ARROW AUTOMATICALLY");}attemptedToFindCellIndex=true;if(expandCollapseCellIndex>=0){var cells=row.getElementsByTagName("TD");var cell=cells[expandCollapseCellIndex];var anchors=cell.getElementsByTagName("A");for(var ii=0;ii<anchors.length;ii++){var a=anchors[ii];var imgs=a.getElementsByTagName("IMG");for(var iii=0;iii<imgs.length;iii++){var img=imgs[iii];var imageSrc=new String(img.src);var slash=new String('/');imageSrc=imageSrc.substring(imageSrc.lastIndexOf(slash)+1,imageSrc.length);if(this.ExpandedArrowUrl.indexOf(imageSrc)>0){img.src=this.CollapsedArrowUrl;breakLoop=true;break;}}}}}}}Ajax.DoAjaxPostBack(this.UniqueId,'CollapseAll',false,GetElementById(this.ElementId),"",false,true);return false;};MetafuseTable.prototype.DisableTotalRows=MetafuseTable_DisableTotalRows;function MetafuseTable_DisableTotalRows(){var table=GetElementById(this.ElementId);var rows=table.getElementsByTagName("TR");for(var i=0;i<rows.length;i++){var row=rows[i];if(row.className=="TotalRow"||row.className=="GroupByRow"||row.className=="GroupByRow1"||row.className=="GroupByRow2"||row.className=="SubTotalRow"||row.className=="SubTotalRow1"||row.className=="SubTotalRow2"||row.className=="TotalRowAlt"||row.className=="GroupByRowAlt"||row.className=="GroupByRow1Alt"||row.className=="GroupByRow2Alt"||row.className=="SubTotalRowAlt"||row.className=="SubTotalRow1Alt"||row.className=="SubTotalRow2Alt"){row.className=row.className+="Disabled";}}UITools.ToggleDisplay(this.ElementId+"_refreshTable",false);UITools.ToggleDisplay(this.ElementId+"_refreshTableBottom",false);};MetafuseTable.prototype.H=MetafuseTable_Highlight;MetafuseTable.prototype.Highlight=MetafuseTable_Highlight;function MetafuseTable_Highlight(row){if(row!=null){row=GetElementById(row);this.RowIdCurrentlyOver=row.id;var arrayOfRelatedRowsToHighlight=null;if(this.RowAdditionalRelatedIdSuffixesToHighlight){arrayOfRelatedRowsToHighlight=new Array();for(var i=0;i<this.RowAdditionalRelatedIdSuffixesToHighlight.length;i++){arrayOfRelatedRowsToHighlight[i]=row.id+this.RowAdditionalRelatedIdSuffixesToHighlight[i];}}HOn(row,arrayOfRelatedRowsToHighlight);if(this.ContextMenus){if(row.oncontextmenu==null){var contextMenuName=null;if(this.RowObjectTypes){var tro=this.ObjectsById[row.id];var type=this.RowObjectTypes[tro.RowObjectType];contextMenuName=this.ContextMenus[type];}else{contextMenuName=this.ContextMenus["0"];}if(contextMenuName!=null){AddEventHandlerToElement(row,'oncontextmenu',new Function("event",this.ObjectId+".ShowContextMenuForRow("+contextMenuName+",event,'"+row.id+"')"));row.oncontextmenu=new function(){return true;};}}}if(row.ondblclick==null&&this.FormDefinition!=null&&GetElementById(this.FormDefinition.FormRowId)!=null){var tro=this.ObjectsById[row.id];if(tro!=null&&!tro.DisableEdit){AddEventHandlerToElement(row,'ondblclick',new Function("event",this.ObjectId+".EO('"+row.id+"');"));}row.ondblclick=new function(){return true;};}if(this.EnableOnRowMoveDrop&&row.onmousedown==null){var tro=this.ObjectsById[row.id];if(tro!=null&&!tro.DisableDragDrop){$(row).bind('mousedown',new Function("event",this.ObjectId+".RowMoveSelectOnMouseDown('"+row.id+"',event);"));}row.onmousedown=new function(){return true;};}if(row.cells.length>0&&row.cells[0].title==""){var rowName=this.GetRowName(null,row);var tableHeaderRow=row.parentNode.rows[0];for(var i=0;i<row.cells.length;i++){var cell=row.cells[i];if(cell.title==""){var columnName="";if(i<tableHeaderRow.cells.length){if(BrowserTools.IsInternetExplorer()){columnName=tableHeaderRow.cells[i].innerText;}else if(tableHeaderRow.cells[i].textContent){columnName=tableHeaderRow.cells[i].textContent;}}var titleToSet="";if(rowName!=""){titleToSet="Row:    "+rowName;}if(columnName!=""){if(titleToSet!=""){titleToSet+="\n";}titleToSet+="Column: "+columnName;}if(titleToSet!=""){cell.title=titleToSet;}else if(i==0){cell.title=" ";}}}}}};MetafuseTable.prototype.AddContextMenu=MetafuseTable_AddContextMenu;function MetafuseTable_AddContextMenu(contextMenu,rowType){if(this.ContextMenus==null){this.ContextMenus=new Object();}this.ContextMenus[rowType]=contextMenu;}MetafuseTable.prototype.ShowContextMenuForRow=MetafuseTable_ShowContextMenuForRow;function MetafuseTable_ShowContextMenuForRow(contextMenu,localEvent,rowId){var row=GetElementById(rowId);this.RowIdContextMenu=rowId;if(this.OnBeforeShowContextMenuForRow(this,contextMenu,localEvent,rowId)){contextMenu.ContextMenuShow(localEvent);if(row!=null){row.className+=" RowContext";contextMenu.OnAfterHideContextMenu=function(){if(row!=null&&row.className){row.className=row.className.replace(/ RowContext/gi,"");}}}}}function MetafuseTable_ToggleAllEntriesChecked(checkbox,tableElementId){var check=checkbox.checked;var checkboxes=document.forms[0][tableElementId+'__e'];if(checkboxes){if(checkboxes.length&&checkboxes.length>1){for(var i=0;i<checkboxes.length;i++){var checkbox=checkboxes[i];checkbox.checked=check;}}else{checkboxes.checked=check;}}};function MT_EC(element){if(element.checked==false){var tableElementId=element.id.replace('__e','');var allCheckbox=GetElementById(tableElementId+'__eAll');if(allCheckbox){allCheckbox.checked=false;}}};MetafuseTable.prototype.DumpMetafuseTableRowObjectsByIndex=MetafuseTable_DumpMetafuseTableRowObjectsByIndex;function MetafuseTable_DumpMetafuseTableRowObjectsByIndex(alert){var s="";for(var i=0;i<this.ObjectsByIndex.length;i++){var metafuseTableRowObject=this.ObjectsByIndex[i];if(s.length>0){s+="\n";}var name=this.GetRowName(metafuseTableRowObject.Id);s+=" IA: "+metafuseTableRowObject.IndexAbsolute+" DP: "+metafuseTableRowObject.Depth+" RC: "+metafuseTableRowObject.ChildTotalRecursive+" NM: "+name+" Id: "+metafuseTableRowObject.Id+" ParentId: "+metafuseTableRowObject.ParentId;}if(!alert){InsertHTML("<div><textarea style=\"width:100%;\" rows=\"10\">"+s+"</textarea></div>");}};