<?php
require('../setClassPath.php');
require_once('object/User.php');
require_once('object/Picture.php');
require_once('db/UserDB.php');
require_once('db/FriendDB.php');
require_once('db/TransManager.php');
require_once('ui/Component.php');
require_once('util/InputHelper.php');

$helper     = InputHelper::getInstance();
$fname      = $helper->fixInput($_GET['name'], FALSE);

if (!isset($fname))
    exit();

session_start();
$self           = $_SESSION['user'];
$friendReorder  = false;

$trans = TransManager::getInstance();
$trans->beginTrans();
$frienddb = new FriendDB();
$userdb = new UserDB();

$user = $userdb->lookupUserInformation($fname, $trans->getPDO());
if (!$user) {
    $trans->commit();
    $trans->disconnect();
    exit();
}
$myfriends = (isset($self) && $self->getUserId() == $user->getUserId());

if ($myfriends && strlen($_POST['subbtn']) > 0) { //reorder friends
    $uids = $_POST['uid'];
    $disporders = $_POST['disporder'];
    if (count($uids) == count($disporders)) {
        for ($i = 0, $n = count($uids); $i < $n; ++$i) { //make all ints
            $uids[$i]       = intval($uids[$i]);
            $disporders[$i] = intval($disporders[$i]);
        }

        for ($i = 0, $n = count($uids); $i < $n; ++$i) { //sort
            for ($j = $i + 1, $m = count($uids); $j < $m; ++$j) {
                if ($disporders[$j] < $disporders[$i]) { //swap 'em
                    $tmp = $disporders[$i];
                    $disporders[$i] = $disporders[$j];
                    $disporders[$j] = $tmp;
                    $tmp = $uids[$i];
                    $uids[$i] = $uids[$j];
                    $uids[$j] = $tmp;
                }
            }
        }

        //now our $uids are sorted by user-entered disp order. save it to db
        $frienddb->reorderFriends($user->getUserId(), $uids, $trans->getPDO());
        $friendReorder = true;
    }
}

$friends    = $frienddb->getFriends($user->getUserId(), $trans->getPDO(), 200);

$trans->commit();
$trans->disconnect();


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?= ($myfriends ? 'Manage Your Friends List' : $user->getName() .'\'s Friend List') ?></title>
<link type="text/css" rel="stylesheet" href="/css/main.css">
<link type="text/css" rel="stylesheet" href="/css/profile.css">
</head>
<body>
<div id="body">
<h1><?= ($myfriends ? 'Manage Your Friends' : $user->getName() .'\'s Friend List') ?></h1>

<?php
if ($friendReorder)
    echo '<p>Your friend list has been re-ordered the way you wanted.</p>';
?>

  <form action="/friends/<?= $user->getFName() ?>" method="post" id="manageform">
  <div id="top2">
    <h2><?= $user->getName() ?>'s Friends</h2>
  </div>
  <table cellspacing="2" id="details">
    <tr>
      <td>
<?php
if (count($friends) == 0) {
    if ($myfriends)
        echo '<i>You have not yet added any friends</i>';
    else
        echo '<i>'. $user->getName() .' has not yet added any friends</i>';
}
else {
    echo '<ul id="friends">';
    for ($i = 0, $n = count($friends); $i < $n; ++$i) {
        $fr = $friends[$i];
        if ($fr->hasPicture()) {
            $fpic = $fr->getPicture();
            echo '<li><a href="/profile/'. $fr->getFName() .'"><img src="/pic/'. $fpic->getDirName() . $fpic->getThumbName() .'"><br>'. $fr->getName() .'</a>';
        }
        else
            echo '<li><a href="/profile/'. $fr->getFName() .'"><img src="/i/nopicsm.gif" alt=""><br>'. $fr->getName() .'</a>';
        if ($myfriends)
            echo '<br><div class="endfr">(<a href="/account/remove-friend.html?uid='. $fr->getUserId() .'">end friendship</a>)</div><input type="hidden" name="uid[]" value="'. $fr->getUserId() .'"><input type="text" size="2" maxlength="3" name="disporder[]" value="'. ($i + 1) .'"></li>';
        else
            echo '</li>';
    }
    echo '</ul>';
}
?>
      </td>
    </tr>
  </table>
<?php
if ($myfriends)
    echo '<input type="submit" value="Re-Order Friends" name="subbtn">';
?>
  </form>

<?php
$ui = Component::getInstance();
$ui->drawHeader($self);
$ui->drawFooter();
?>
</div>
</body>
</html>
