<?php

function count_days($a, $b) 
{
  $gd_a = getdate($a);
  $gd_b = getdate($b);
  $a_new = mktime(12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year']);
  $b_new = mktime(12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year']);
  return round(abs($a_new - $b_new) / 86400);
}

$Realm = new Realm($System, $_COOKIE['RealmIndex']);
$db2 = $Realm->Database;
$db2->select_db($Config['Mangos']['RealmList'][$Realm->Id]['DatabaseCharacters']);
$id = (isset($_GET['id'])) ? $_GET['id'] : 0;
if($id != 0)
{
  $guild_id = $id;
  $DbResult = $db2->query('SELECT `guildid`, `name`, `createdate` FROM `guild` WHERE `guildid` = '.$guild_id.' LIMIT 1');
  $guild_data = $DbResult->fetch_assoc();
  $members = $db2->query('SELECT guild_member.guid, guild_member.rank AS mrank, `characters`.name, SUBSTRING_INDEX(SUBSTRING_INDEX(`characters`.`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['Level'].' + 1), " ", -1) AS level, (SELECT rname FROM guild_rank WHERE guildid ='.$guild_id.' AND rid = mrank + 1) AS rname, guild_member.pnote, guild_member.offnote FROM guild_member,`characters` LEFT JOIN guild_member k1 ON k1.`guid`=`characters`.`guid` WHERE guild_member.guildid = '.$guild_id.' AND guild_member.guid=`characters`.guid ORDER BY mrank');
  $total_members = $members->num_rows;
  $DbResult = $db2->query('SELECT count(*) AS online_mem  FROM `guild_member`, `characters`, `guild` WHERE guild.guildid = '.$guild_id.' AND guild_member.guildid = guild.guildid AND guild_member.guid = characters.guid AND characters.online = 1');
  $online_mem = $DbResult->fetch_assoc();

  // guild info
  $date_arr = explode(' ', $guild_data['createdate']);
  $date = explode('-', $date_arr[0]);
  $time_stp = explode(':', $date_arr[1]);
  $time = mktime($time_stp[0], $time_stp[1], $time_stp[2], $date[1], $date[2], $date[0]);
  $human_date = date('d.m.Y H:i:s', $time);
  echo('<a href="?page=guildy">&lt;- Zpět na výpis</a><br />');
  echo('<table class="BaseTable">
    <tr>
      <td colspan="2" style="font-size: x-large;">Spolek '.$guild_data['name'].'</td>
    </tr>
    <tr>
      <th>Datum založení: </th>
      <td>'.$human_date.'</td>
    </tr>
    <tr>
      <th>Celkem členů: </th>
      <td>'.$total_members.' (Online : '.$online_mem['online_mem'].')</td>
    </tr>');
  $DbResult = $db->query('SELECT Homepage FROM GuildInfo WHERE Guild='.$guild_id.' AND Realm='.$Realm->Id);
  $DbRow = $DbResult->fetch_assoc();
  $Homepage = $DbRow['Homepage'];
  if($Homepage != '')
  {
    echo('    <tr>
      <th>Webové stránky: </th>
      <td><a href="http://'.$Homepage.'/">'.$Homepage.'</a></td>
    </tr>
');
  }
  echo('</table><br />');

  
  // members info
  echo('<table class="BaseTable">
    <tr>
      <th align="center">Jméno</th>
      <th align="center">Rasa</th>
      <th align="center">Třída</th>
      <th align="center">Úroveň</th>
      <th align="center">Hodnost</th>
      <th align="center">Poslední přihlášení (dny)</th>
      <th align="center">Online</th>     
    </tr>');
  while($member = $members->fetch_row())
  {    
    $query = $db2->query('SELECT `race`,`class`,`online`, `account`, `logout_time`, SUBSTRING_INDEX(SUBSTRING_INDEX(`characters`.`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['Level'].' + 1), " ", -1) AS level, mid(lpad( hex( CAST(substring_index(substring_index(data, " ", '.($Config['Mangos']['CharacterDataOffset']['Gender'] + 1).'), " ", -1) as unsigned) ), 8, 0), 4, 1) as gender FROM `characters` WHERE `guid` = '.$member[0].' LIMIT 1;');
    $online = $query->fetch_assoc();
    $accid = $online['account'];
    
    $LogoutTime = count_days($online['logout_time'], time());
    $LogoutTimeColorList = array(0 => '#0000CC', 5 => '#FFFF00', 15 => '#FF8000', 30 => '#FF0000', 60 => '#FF00FF', 90 => '#8000FF');
    $LogoutTimeColor = '#009900';
    foreach($LogoutTimeColorList as $Time => $Color)
    {
      if($LogoutTime > $Time) $LogoutTimeColor = $Color;
    }
    
    $Level = $online['level'];
    $LevelColorList = array(9 => '#858585', 19 => '#339900', 29 => '#3300CC', 39 => '#5552FF', 49 => '#FF8000', 59 => '#FF0000', 69 => '#FF00CC', 70 => '#FFF000');
    $LevelColor = '#FFFFFF';
    foreach($LevelColorList as $Index => $Color)
    {
      if($Level > $Index) $LevelColor = $Color;
    }
    
    if($online['gender'] == 0) $gender = 0;
    else $gender = 1;
    echo('<tr>'.
      '<td align="center">'.$member[2].'</td>'.
      '<td align="center"><img src="imgs/icons/'.$online['race'].'-'.$gender.'.gif" alt="pohlaví" /></td>'.
      '<td align="center"><img src="imgs/icons/'.$online['class'].'.gif" alt="třída" /></td>'.
      '<td align="center" style="color: '.$LevelColor.'">'.$Level.'</td>'.
      '<td align="center">'.$member[4].' ('.$member[1].')</td>'.
      '<td align="center" style="color: '.$LogoutTimeColor.'">'.$LogoutTime.'</td>'.
      '<td align="center">'.(($online['online']) ? '<img src="imgs/inc/on.gif" alt="online" />' : '<img src="imgs/inc/off.gif" alt="offline" />').'</td>'.
      '</tr>');
  }
  echo('</table>');
} else echo('<meta http-equiv="refresh" content="0;url=?page=guildy">');
 
?>
