function doChildren($list, $N, $id, $uid, $level, $maxlevels, $display_week_hours, $ss, $se)
{
    $tmp = '';
    if ($maxlevels == -1 || $level < $maxlevels) {
        for ($c = 0; $c < $N; $c++) {
            $task = $list[$c];
            if ($task->task_parent == $id and isChildTask($task)) {
                // we have a child, do we have the user as a member?
                if (isMemberOfTask($list, $N, $uid, $task)) {
                    $tmp .= displayTask($list, $task, $level, $display_week_hours, $ss, $se, $uid);
                    $tmp .= doChildren($list, $N, $task->task_id, $uid, $level + 1, $maxlevels, $display_week_hours, $ss, $se);
                }
            }
        }
    }
    return $tmp;
}
function doChildren($list, $id, $uid, $level, $maxlevels, $display_week_hours, $ss, $se)
{
    $tmp = "";
    if ($maxlevels == -1 || $level < $maxlevels) {
        foreach ($list as $task) {
            if ($task->task_parent == $id && $task->task_id != $task->task_parent) {
                // we have a child, do we have the user as a member?
                if (isMemberOfTask($list, $uid, $task)) {
                    $tmp .= displayTask($list, $task, $level, $display_week_hours, $ss, $se, $uid);
                    $tmp .= doChildren($list, $task->task_id, $uid, $level + 1, $maxlevels, $display_week_hours, $ss, $se);
                }
            }
        }
    }
    return $tmp;
}
                $tmpuser .= '</td></tr></table></td>';
                $tmpuser .= '</tr>';
                $tmptasks = '';
                $actual_date = $start_date;
                $zi = 0;
                foreach ($task_list as $task) {
                    if (isMemberOfTask($task_list, $Ntasks, $user_id, $task)) {
                        $tmptasks .= displayTask($task_list, $task, 0, $display_week_hours, $sss, $sse, $user_id);
                        // Get children
                        $tmptasks .= doChildren($task_list, $Ntasks, $task->task_id, $user_id, 1, $max_levels, $display_week_hours, $sss, $sse);
                    } else {
                        // we have to process children task the user
                        // is member of, but member of their parent task.
                        // Also show the parent task then before the children.
                        $tmpChild = '';
                        $tmpChild = doChildren($task_list, $Ntasks, $task->task_id, $user_id, 1, $max_levels, $display_week_hours, $sss, $sse);
                        if ($tmpChild > '') {
                            $tmptasks .= displayTask($task_list, $task, 0, $display_week_hours, $sss, $sse, $user_id);
                            $tmptasks .= $tmpChild;
                        }
                    }
                }
                if ($tmptasks != '') {
                    $table_rows .= $tmpuser;
                    $table_rows .= $tmptasks . '</form>';
                }
            }
        }
    }
}
?>