$form = 'linkage_edit';
    $focus = 'text';
    require "./form_header.php";
    echo "<h2>Rediger lenke {$id}</h2>\n";
    echo '<p>' . fetch_val("SELECT source_text FROM sources WHERE source_id={$node}") . "</p>\n";
    $row = fetch_row_assoc("SELECT * FROM source_linkage WHERE source_fk={$node} AND per_id={$id}");
    $person = $row['person_fk'] ? $row['person_fk'] : 0;
    form_begin($form, $_SERVER['PHP_SELF']);
    hidden_input('posted', 1);
    hidden_input('node', $node);
    hidden_input('per_id', $id);
    hidden_input('f_person', $f_person);
    // role_fk
    select_role($row['role_fk']);
    person_id_input($person, 'person_fk', 'Person: ');
    select_surety($row['surety_fk']);
    text_input("Navn i kilden: ", 100, 's_name', $row['s_name']);
    textarea_input("Note: ", 5, 100, 'sl_note', $row['sl_note']);
    form_submit();
    form_end();
    echo "<h3>Personer nevnt i kilden:</h3>\n";
    list_mentioned($node, 0);
    echo "</body>\n</html>\n";
} else {
    $node = $_POST['node'];
    $note = rtrim($_POST['sl_note']);
    $f_person = $_POST['f_person'];
    pg_prepare("query", "UPDATE\n            source_linkage\n        SET\n            role_fk = \$1,\n            person_fk = \$2,\n            surety_fk = \$3,\n            s_name = \$4,\n            sl_note = \$5\n        WHERE\n            source_fk = \$6\n        AND\n            per_id = \$7\n    ");
    pg_execute("query", array($_POST['role_id'], $_POST['person_fk'] ? $_POST['person_fk'] : NULL, $_POST['surety'], $_POST['s_name'], $note, $node, $_POST['per_id']));
    if ($f_person) {
        // called from family.php
    $title = "Lag lenke";
    $form = 'linkage_add';
    $focus = 'text';
    $per_id = fetch_val("SELECT COUNT(*) + 1 FROM source_linkage WHERE source_fk={$node}");
    require "./form_header.php";
    echo "<h2>Lag lenke</h2>\n";
    echo '<p>' . fetch_val("SELECT source_text FROM sources WHERE source_id={$node}") . "</p>\n";
    form_begin($form, $_SERVER['PHP_SELF']);
    hidden_input('posted', 1);
    hidden_input('node', $node);
    // per_id
    text_input("Lnr.: ", 10, 'per_id', $per_id);
    // role_fk
    select_role();
    person_id_input(0, 'person_id', 'Person:');
    select_surety();
    text_input("Navn i kilden: ", 100, 's_name');
    textarea_input("Note: ", 5, 100, 'sl_note');
    form_submit();
    form_end();
    echo "<h3>Personer nevnt i kilden:</h3>\n";
    list_mentioned($node, 0);
    echo "</body>\n</html>\n";
} else {
    $node = $_POST['node'];
    $note = rtrim($_POST['sl_note']);
    pg_prepare("query", "INSERT INTO\n            source_linkage(\n                source_fk,\n                per_id,\n                role_fk,\n                person_fk,\n                surety_fk,\n                s_name,\n                sl_note\n            )\n        VALUES (\$1, \$2, \$3, \$4, \$5, \$6, \$7)");
    pg_execute("query", array($node, $_POST['per_id'], $_POST['role_id'], $_POST['person_id'] ? $_POST['person_id'] : NULL, $_POST['surety'], $_POST['s_name'], $note));
    // return to parent node
    header("Location: {$app_root}/source_manager.php?node={$node}");
}
        $gender = $_GET['gender'];
        $surety = 3;
    }
    $pprompt = ucfirst($ptype[$gender]) . ':';
    echo "<h2>{$atype} " . $ptype[$gender] . " for {$name}</h2>\n";
    form_begin($form, $_SERVER['PHP_SELF']);
    hidden_input('posted', 1);
    hidden_input('person', $person);
    hidden_input('qtype', $qtype);
    if ($qtype == 'update') {
        hidden_input('relation', $relation);
        hidden_input('oldparent', $parent);
    }
    person_id_input($parent, 'parent', $pprompt);
    checkbox('bsource', $_Use_source_for_birth_event);
    select_surety($surety);
    source_input();
    form_submit();
    form_end();
    if ($qtype == 'update') {
        echo "<h3>{$_References}</h3>\n";
        $handle = pg_query("\n            SELECT\n                source_fk,\n                get_source_text(source_fk) AS source_text\n            FROM\n                relation_citations\n            WHERE\n                relation_fk = {$relation}\n        ");
        while ($row = pg_fetch_assoc($handle)) {
            echo para($row['source_fk'] . ' ' . $row['source_text']);
        }
    }
    echo "</body>\n</html>\n";
} else {
    // do action
    $person = $_POST['person'];
    $surety = $_POST['surety'];