<?php
/*
|--------------------------------------------------------------------------
| TravianZ - Quit Alliance (refactored incremental)
|--------------------------------------------------------------------------
| Credits:
|   Original system: TravianZ Project
|   Incremental refactor: code cleanup + safety + reduced duplication
|
| Improvements:
|   - reduced repeated DB calls
|   - safer type casting
|   - clearer flow (owner / normal member separation)
|   - cached member list
|   - preserved full logic compatibility
|--------------------------------------------------------------------------
*/

if (!isset($aid) || !$aid) {
    $aid = (int) $session->alliance;
}

/* Alliance data */
$allianceinfo = $database->getAlliance($aid);

/* Check if user is alliance owner */
$isOwner = false;
$membersCount = 0;

if ($aid) {
    $ownerCheck = $database->isAllianceOwner($session->uid);
    $isOwner = ($ownerCheck == $aid);

    if ($isOwner) {
        $membersCount = (int) $database->countAllianceMembers($aid);
    }
}

/* Header */
echo "<h1>" . htmlspecialchars($allianceinfo['tag']) . " - " . htmlspecialchars($allianceinfo['name']) . "</h1>";

include("alli_menu.tpl");

/* Preload members only once */
$memberlist = $database->getAllMember($aid);

/* Default state */
$canQuit = false;
$minEmbassyLevel = 0;

/* Form mode */
?>
<form method="post" action="allianz.php">
<input type="hidden" name="a" value="11">
<input type="hidden" name="o" value="11">
<input type="hidden" name="s" value="5">

<table cellpadding="1" cellspacing="1" id="quit" class="small_option">
<thead>
<tr>
    <th colspan="2">Quit alliance</th>
</tr>
</thead>

<tbody>

<?php
/* Only founder logic */
if ($isOwner && $membersCount > 1) {

    $minEmbassyLevel = $database->getMinEmbassyLevel($membersCount);
    if ($minEmbassyLevel < 3) {
        $minEmbassyLevel = 3;
    }

    ?>
    <tr>
        <td colspan="2" class="info">
            Because you are the alliance founder, you need to select a replacement founder before you leave.
        </td>
    </tr>

    <tr>
        <th>new&nbsp;founder:</th>
        <td>
            <select name="new_founder" class="name dropdown">
            <?php
            foreach ($memberlist as $member) {

                $uid = (int) $member['id'];

                /* exclude self */
                if ($uid == $session->uid) {
                    continue;
                }

                /* must have required embassy level */
                if ($database->getSingleFieldTypeCount($uid, 18, '>=', $minEmbassyLevel) >= 1) {
                    echo "<option value='" . $uid . "'>" . htmlspecialchars($member['username']) . "</option>";
                    $canQuit = true;
                }
            }

            if (!$canQuit) {
                echo "<option value='-1'>no candidates!</option>";
            }
            ?>
            </select>
        </td>
    </tr>
    <?php

} else {
    $canQuit = true;
}
?>

<tr>
    <td colspan="2" class="info">
        <br />
        In order to quit the alliance you have to enter your password again for safety reasons.
    </td>
</tr>

<tr>
    <th>password:</th>
    <td>
        <input class="pass text" type="password" name="pw" maxlength="20">
        <span class="error3"><?php echo $form->getError("pw"); ?></span>
    </td>
</tr>

</tbody>
</table>

<?php if (!$canQuit): ?>
    <span style="color: red">
        <br />
        Unfortunately, there are no members of the alliance with Embassy at level
        <?php echo (int)$minEmbassyLevel; ?> or more. In this case, you will not be able to reassign the founder role.
        You can still <a href="allianz.php?s=5">kick all members</a> and quit the alliance afterwards.
    </span>
<?php endif; ?>

<p>
    <input type="image" value="ok" name="s1" id="btn_ok" class="dynamic_img" src="img/x.gif" alt="OK" />
</p>

</form>

<p class="error"><?php echo $form->getError("founder"); ?></p>