function o_outlines( $id, $action, $options = '' )
    {
        if ( $action != 'new' )
        {
            $o =& $this->objects[$id];
        }
        switch ( $action )
        {
        case 'new':
            $this->objects[$id] = array( 't' => 'outlines', 'info' => array( 'outlines' => array() ) );
            $this->o_catalog( $this->catalogId, 'outlines', $id );
            break;
        case 'outline':
            $o['info']['outlines'][] = $options;
            break;
        case 'out':
            if ( count( $o['info']['outlines'] ) )
            {
                $res = "\n" . $id . " 0 obj\n<< /Type /Outlines /Kids [";
                foreach ( $o['info']['outlines'] as $k => $v )
                {
                    $res .= $v . " 0 R ";
                }
                $res .= "] /Count " . count( $o['info']['outlines'] ) . " >>\nendobj";
            }
            else
            {
                $res = "\n" . $id . " 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj";
            }
            return $res;
            break;
        }
    }