
function checkPrivilegesTree( inputName, formName, bool )
{
  var obj = eval( privileges_tree_input[ inputName ] + '_cell' );

  if( obj[1] != null )
  {
    if( obj[1][2] != null )
    {
      for( var i=0 ; i<obj[1][2].length ; i++ )
      {
        var cellObj = eval( obj[1][2][i] + '_cell' );
        if( cellObj[1][0] != null )
        {
          var checkbox = getFormObject( cellObj[1][0], formName );
          if ( !checkbox.disabled )
            checkbox.checked = bool;
          checkPrivilegesTree( cellObj[1][0], formName, bool );
        }
      }
    }
  }
}

function checkBackPrivilegesTree( inputName, formName )
{
  var obj = eval( privileges_tree_input[ inputName ] + '_cell' );

  if( obj[0] != null && obj[0] != '' )
  {
    var parentCellName = obj[0];
    var parentCell = eval( parentCellName + '_cell' );
    isParentCellChecked = false;
    for( var i=0 ; i<parentCell[1][2].length ; i++ )
    {
      var cellObj = eval( parentCell[1][2][i] + '_cell' );
      if( cellObj[1][0] != null )
      {
        var checkbox = getFormObject( cellObj[1][0], formName );
        if( checkbox.checked )
        {
          isParentCellChecked = true;
        }
      }
    }

    if( parentCell[1][0] != null && parentCell[1][0] != '' )
    {
      var parentObj = getFormObject( parentCell[1][0], formName );
      parentObj.checked=isParentCellChecked;
      checkBackPrivilegesTree( parentCell[1][0], formName, isParentCellChecked );
    }
  }
}

function initPrivilegesTree( formName )
{
  if( !window.privileges_tree_input )
  {
    return;
  }
  var inputObjs = eval( 'privileges_tree_input' );
  for( var inputName in inputObjs )
  {
    if( getFormObject( inputName, formName ).checked )
    {
      checkBackPrivilegesTree( inputName, formName );
    }
  }
}

function checkOperationsTree( inputName, formName, bool )
{
  var obj = eval( operations_tree_input[ inputName ] + '_cell' );

  if( obj[1] != null )
  {
    if( obj[1][2] != null )
    {
      for( var i=0 ; i<obj[1][2].length ; i++ )
      {
        var cellObj = eval( obj[1][2][i] + '_cell' );
        if( cellObj[1][0] != null )
        {
          var checkbox = getFormObject( cellObj[1][0], formName );
          if ( !checkbox.disabled )
            checkbox.checked = bool;
          checkOperationsTree( cellObj[1][0], formName, bool );
        }
      }
    }
  }
}

function checkBackOperationsTree( inputName, formName )
{
  var obj = eval( operations_tree_input[ inputName ] + '_cell' );

  if( obj[0] != null && obj[0] != '' )
  {
    var parentCellName = obj[0];
    var parentCell = eval( parentCellName + '_cell' );
    isParentCellChecked = false;
    for( var i=0 ; i<parentCell[1][2].length ; i++ )
    {
      var cellObj = eval( parentCell[1][2][i] + '_cell' );
      if( cellObj[1][0] != null )
      {
        var checkbox = getFormObject( cellObj[1][0], formName );
        if( checkbox.checked )
        {
          isParentCellChecked = true;
        }
      }
    }

    if( parentCell[1][0] != null && parentCell[1][0] != '' )
    {
      var parentObj = getFormObject( parentCell[1][0], formName );
      parentObj.checked=isParentCellChecked;
      checkBackOperationsTree( parentCell[1][0], formName );
    }
  }
}

function initOperationsTree( formName )
{
  if( !window.operations_tree_input )
  {
    return;
  }
  var inputObjs = eval( 'operations_tree_input' );
  for( var inputName in inputObjs )
  {
    if( getFormObject( inputName, formName ).checked )
    {
      checkBackOperationsTree( inputName, formName );
    }
  }
}

