﻿// JScript File

function client_OnTreeNodeChecked()
{
var obj = window.event.srcElement;
var treeNodeFound = false;
var checkedState;
   if (obj.tagName == "INPUT" && obj.type == "checkbox") 
    {
    var treeNode = obj;

    checkedState = treeNode.checked;
    if (!checkedState)
    {
        do
        {
            obj = obj.parentElement;
        } 
        while (obj.tagName != "TABLE")
        
        
            var parentTreeLevel = obj.rows[0].cells.length;
            var parentTreeNode = obj.rows[0].cells[0];
            var tables = obj.parentElement.getElementsByTagName("TABLE");
            var numTables = tables.length
            if (numTables >= 1)
            {
                for (i=0; i < numTables; i++)
                {
                    if (tables[i] == obj)
                    {
                    treeNodeFound = true;
                    i++;
                        if (i == numTables)
                        {
                        return;
                        }
                    }
                    if (treeNodeFound == true)
                    {
                        var childTreeLevel = tables[i].rows[0].cells.length;
                        if (childTreeLevel > parentTreeLevel)
                        {
                            var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                            var inputs = cell.getElementsByTagName("INPUT");
                            inputs[0].checked = checkedState;
                        }
                        else
                        {
                            return;
                        }
                    }
                }
            }
            
            
        }
        else
        {

            //get current table and detect level            
            do
            {
                obj = obj.parentElement;
            } 
            while (obj.tagName != "TABLE")
            var childTreeLevel= obj.rows[0].cells.length-2;
            //Parse parent Nodes
            while(childTreeLevel != 0)
            {
              obj = obj.previousSibling;   
              if (obj==null) return;
              var colcount =  obj.rows[0].cells.length-1;
              if (colcount!=childTreeLevel) //if the same level
                    continue;
                var nd = obj.getElementsByTagName("INPUT");
                nd[0].checked = checkedState;
                childTreeLevel= childTreeLevel-1;
            } 
        }
            
 }


}
