/**
  * @param int $slot
  * @param bool $advanced = false
  * @return array
  **/
 public static function GetEquippedItemInfo($slot, $advanced = false)
 {
     if (!self::IsCorrect()) {
         WoW_Log::WriteError('%s : character was not found.', __METHOD__);
         return false;
     }
     // Try to find cached item...
     if (isset(self::$cache_item[$slot])) {
         // ... and return it.
         return self::$cache_item[$slot];
     }
     if (!isset(self::$m_items[$slot])) {
         // Slot is empty, just return false.
         return false;
     }
     $item = self::GetItem($slot);
     if (!$item || !$item->IsCorrect()) {
         WoW_Log::WriteError('%s : item handler for slot %d is broken.', __METHOD__, $slot);
         return false;
     }
     $info = DB::World()->selectRow("SELECT `Quality`, `displayid`, `socketColor_1`, `socketColor_2`, `socketColor_3` FROM `item_template` WHERE `entry` = %d LIMIT 1", $item->GetEntry());
     if (!$info) {
         WoW_Log::WriteError('%s : item #%d was not found in `item_template` table!', __METHOD__, $item->GetEntry());
         return false;
     }
     $item_data = array('item_id' => $item->GetEntry(), 'name' => WoW_Items::GetItemName($item->GetEntry()), 'guid' => $item->GetGUID(), 'quality' => $info['Quality'], 'item_level' => $item->GetItemLevel(), 'icon' => WoW_Items::GetItemIcon(0, $info['displayid']), 'slot_id' => $item->GetSlot(), 'enchid' => $item->GetEnchantmentId(), 'g0' => $item->GetSocketInfo(1), 'g1' => $item->GetSocketInfo(2), 'g2' => $item->GetSocketInfo(3), 'can_ench' => !in_array($item->GetSlot(), array(INV_SHIRT, INV_RANGED_RELIC, INV_TABARD, INV_TRINKET_1, INV_TRINKET_2, INV_NECK, INV_OFF_HAND, INV_RING_1, INV_RING_2, INV_NECK, INV_BELT)));
     if ($advanced) {
         $item_data['enchant_text'] = '';
         $item_data['enchant_quality'] = 2;
         $item_data['enchant_item'] = 0;
         $enchantment_info = DB::WoW()->selectRow("\n            SELECT\n            `DBPREFIX_enchantment`.`text_%s` AS `text`,\n            `DBPREFIX_spellenchantment`.`id` AS `spellId`\n            FROM `DBPREFIX_enchantment`\n            JOIN `DBPREFIX_spellenchantment` ON `DBPREFIX_spellenchantment`.`Value`=`DBPREFIX_enchantment`.`id`\n            WHERE `DBPREFIX_enchantment`.`id` = %d LIMIT 1", WoW_Locale::GetLocale(), $item_data['enchid']);
         if (is_array($enchantment_info)) {
             $item_data['enchant_text'] = $enchantment_info['text'];
             $ench_spell = DB::WoW()->selectCell("SELECT `id` FROM `DBPREFIX_spellenchantment` WHERE `Value` = %d", $item_data['enchid']);
             if ($ench_spell > 0) {
                 $item_data['enchant_item'] = DB::World()->selectCell("SELECT `entry` FROM `item_template` WHERE `spellid_1` = %d OR `spellid_2` = %d OR `spellid_3` = %d LIMIT 1", $ench_spell, $ench_spell, $ench_spell);
                 if ($item_data['enchant_item'] > 0) {
                     $item_ench_name = WoW_Items::GetItemName($item_data['enchant_item']);
                     $matches = array();
                     $item_data['enchant_text'] = str_replace('- ', null, substr($item_ench_name, strpos($item_ench_name, ' - ')));
                 }
             }
         }
         for ($socket_index = 0; $socket_index < 3; $socket_index++) {
             $item_data['gem' . $socket_index] = array();
             if (isset($item_data['g' . $socket_index]['enchant_id'])) {
                 $item_data['gem' . $socket_index] = WoW_Items::GetSocketInfo($item_data['g' . $socket_index]['enchant_id']);
             }
         }
     }
     // Create data-item url
     $data_item = sprintf('i=%d', $item->GetEntry());
     if ($item_data['enchid'] > 0) {
         $data_item .= sprintf('&amp;e=%d', $item_data['enchid']);
     }
     for ($i = 0; $i < 3; $i++) {
         if ($item_data['g' . $i] > 0) {
             $data_item .= sprintf('&amp;g%d=%d', $i, $item_data['g' . $i]['enchant_id']);
         }
     }
     $data_item .= sprintf('&amp;s=%d&amp;r=%d&amp;cd=%d&amp;md=%d&amp;pl=%d&amp;t=true', $item->GetGUID(), self::GetRealmID(), $item->GetCurrentDurability(), $item->GetMaxDurability(), self::GetLevel());
     // Itemset check
     $itemset_original = $item->GetOriginalItemSetID();
     $itemset_changed = $item->GetItemSetID();
     $itemsetID = 0;
     $pieces_string = null;
     if ($itemset_original > 0) {
         $itemsetID = $itemset_original;
     }
     if ($itemset_changed > 0) {
         $itemsetID = $itemset_changed;
     }
     if ($itemsetID > 0) {
         $pieces = $item->GetItemSetPieces();
         $setpieces = explode(',', $pieces);
         if (isset($setpieces[1])) {
             $prev = false;
             foreach ($setpieces as $piece) {
                 if (self::IsItemEquipped($piece)) {
                     if ($prev) {
                         $pieces_string .= ',';
                     }
                     $pieces_string .= $piece;
                     $prev = true;
                 }
             }
         }
     }
     $data_item .= sprintf('&amp;set=%s', $pieces_string);
     $item_data['data-item'] = $data_item;
     // Add to cache
     self::$cache_item[$slot] = $item_data;
     return $item_data;
 }
    }
}
$sockets_text = null;
$socketBonusEnabled = array();
for ($i = 0; $i < 3; $i++) {
    if ($proto->Socket[$i]['color'] == 0 && !isset($_GET['g' . $i])) {
        continue;
    }
    $sockets_text .= '<li';
    if (!isset($_GET['g' . $i])) {
        $sockets_text .= ' class="color-d4"';
    }
    $sockets_text .= sprintf('>
            <span class="icon-socket socket-%d">', $proto->Socket[$i]['color']);
    if (isset($_GET['g' . $i])) {
        $socket_info = WoW_Items::GetSocketInfo($_GET['g' . $i]);
        if ($socket_info) {
            $sockets_text .= sprintf('<a href="%s/wow/' . WoW_Locale::GetLocale() . '/item/%d" class="gem">
                    <img src="http://eu.battle.net/wow-assets/static/images/icons/18/%s.jpg" alt="" />
                    <span class="frame"></span>
                    </a>
                    </span>
                    %s', WoW::GetWoWPath(), $socket_info['item'], $socket_info['icon'], $socket_info['text']);
            if (WoW_Items::IsGemMatchesSocketColor($socket_info['color'], $proto->Socket[$i]['color'])) {
                $socketBonusEnabled[] = true;
            } else {
                $socketBonusEnabled[] = false;
            }
        }
    } else {
        $sockets_text .= '<span class="empty"></span><span class="frame"></span></span>' . WoW_Locale::GetString('template_item_socket_' . $proto->Socket[$i]['color']);