<?php

define('_CONSTANT_', 1);

require_once '../../core/start.php';

checkAuth();

switch ($do) 
{
    default: 

    head('Торговая площадь', 'Торговая площадь');
    ?>
    <div class="headerImg"><img src="<?=HOME?>/img/shop.png" alt="[header-img]" width="350px"></div>
    <a href="<?=HOME?>/modules/shop/index.php?do=vip" class="link-touch"><?=ico('vip.png')?> VIP</a>
    <a href="<?=HOME?>/modules/shop/index.php?do=auction" class="link-touch"><?=ico('items.png')?> Магазин снаряжения</a>
    <a href="<?=HOME?>/modules/fair/index.php" class="link-touch"><?=ico('oracul.png')?> Ярмарка</a>
    <a href="<?=HOME?>/modules/shop/index.php?do=blackMarket" class="link-touch"><?=ico('vip.png')?> Черный рынок</a>
    <a href="<?=HOME?>/modules/shop/index.php?do=bottle" class="link-touch"><img src="/ico/bottle/1.png" width="18px"> Магазин зелий</a>
    <a href="<?=HOME?>/modules/shop/index.php?do=userBonus" class="link-touch"><?=ico('strike.png')?> Магазин эффектов</a>
    <a href="<?=HOME?>/modules/shop/index.php?do=help" class="link-touch"><?=ico('info.png')?><span style="color: darkorange;"> Помочь проекту</span></a>
    <?php

    break;

    case 'vip': 

        head('Vip', 'Vip');

        $cost = 100; // hour;

        if (isset($_POST['try'])) 
        {
            $timeVip = time() + 3600; 

            /* Plus time */
            if ($user['vip'] > time()) 
            {
                $timeVip = $user['vip'] + 3600;
            } 

            if ($user['money'] < $cost) 
            {
                error('Вам не хватает ' . moneyIcon() . ($cost - $user['money']));
            } 

            DB::$dbs->query("UPDATE " . USERS . " SET `vip` = ?, `money` = ? WHERE `id` = ?", [$timeVip, ($user['money'] - $cost), $user['id']]);
            successNoExit('Vip успешно приобретен/продлен');
        } 
        ?> 
        Цена: <?=moneyIcon() . $cost?> за 1час.<br/>
        <div class="head">Преимущества</div>
        <?=ico('info.png')?> Опыт на локациях <span style="color: #fff000;">X2</span><br/>
        <?=ico('info.png')?> Регенерация здоровья <span style="color: #fff000;">X2</span><br/>
        <form action="" method="POST">
            <input type="submit" name="try" value="Приобрести">
        </form> 
        <?php

        break;

         break;

         # Items shop
         case 'auction': 

         head('Магазин снаряжения', 'Магазин снаряжения');

         $category = (!empty($_GET['category']) ? $Filter->output($_GET['category']) : null); 
         $allowCategory = ['items']; // Allow list;

         if (empty($category) || !in_array($category, $allowCategory)) 
         {
             ?> 
             <a href="<?=HOME?>/modules/shop/index.php?do=auction&amp;category=items&amp;sortBy=lvl" class="link-touch"><?=ico('items.png')?> Вещи</a>
             <?php
         } 
         else 
         {
             # Output items list
             if ($category == 'items') 
             {
                 $sortBy = (!empty($_GET['sortBy']) ? $Filter->output($_GET['sortBy']) : 'lvl');
                 $allowSort = ['lvl', 'cost', 'strike']; // Allow sort param;

                 if (!in_array($sortBy, $allowSort)) 
                 {
                     errorNoExit('Неверная сортировка');
                 } 
                 else 
                 {
                     $itemType = (!empty($_POST['itemType']) ? $Filter->output($_POST['itemType']) : NULL);
                     $allowItemType = ['helmet', 'weapon', 'chest', 'defend', 'armor', 'shoulder', 'ring'];
                     
                     # If take don`t allow item type;
                     if (!in_array($itemType, $allowItemType) && !empty($itemType)) 
                     {
                         error('Не верный тип вещи.', '/modules/shop/index.php?do=auction', 'Магазин снаряжения');
                     }

                     $all = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM " . ALL_ITEMS . " WHERE `auction` = ? ". (!empty($itemType) ? 'and `type` = ?' : NULL) ." ORDER BY `" . $sortBy . "` DESC", (!empty($itemType) ? [1, $itemType] : [1]));
                     $n = new Navigator($all,10,'do=auction&amp;category=items&amp;sortBy=' . $sortBy);
                     $sql = DB::$dbs->query("SELECT * FROM " . ALL_ITEMS . " WHERE `auction` = ? ". (!empty($itemType) ? 'and `type` = ?' : NULL) ." ORDER BY `" . $sortBy . "` DESC LIMIT {$n->start()}, 10", (!empty($itemType) ? [1, $itemType] : [1]));

                     if (empty($all)) 
                     {
                         errorNoExit('Ничего не найдено...');
                     } 
                     else if (empty(isset($_GET['byItem'])))
                     {
                         # Items list;
                         echo 'Сортировать по: ' . ($sortBy != 'lvl' ? '<a href="' . HOME . '/modules/shop/index.php?do=auction&amp;category=items&amp;sortBy=lvl"> уровню</a>' : '<b> уровню</b>') . 
                         ($sortBy != 'cost' ? '<a href="' . HOME . '/modules/shop/index.php?do=auction&amp;category=items&amp;sortBy=cost"> цене</a>' : '<b> цене</b>') . 
                         ($sortBy != 'strike' ? '<a href="' . HOME . '/modules/shop/index.php?do=auction&amp;category=items&amp;sortBy=strike"> силе</a>' : '<b> силе</b>');

                         # Item type selector;
                         echo '<form action="#" method="POST"><br/>Тип вещи: <select name="itemType"><option value="helmet"> Шлем</option><option value="weapon"> Оружие</option><option value="chest"> Сундук</option><option value="armor"> Броня</option></select><input type="submit" name="" value="Подтвердить"></form>';

                         echo '<hr><div style="margin: 5px;">';

                         while ($item = $sql -> fetch()) 
                         {
                             ?> 
                             <img src="/img/item/<?=$Filter->output($item['type'])?>/<?=$Filter->output($item['img'])?>.png" width="25px"><a href="#"><?=$Filter->output($item['name'])?></a><br/> 
                             <a href="<?=HOME?>/modules/shop/index.php?do=auction&amp;category=items&amp;sortBy=<?=$sortBy?>&amp;byItem=<?=$Filter->clearInt($item['id'])?>"> Выкупить за <?=ico('gold.png') . $item['cost']?><br/><hr>
                             <?php
                         }

                         echo '</div>' . $n->navi();
                     }
                 }
                 ?> 
                 <a href="<?=HOME?>/modules/shop/index.php?do=auction" class="link-touch"><?=ico('back.png')?> Магазин</a>
                 <?php

                 # By item;
                 if (isset($_GET['byItem'])) 
                 {
                     $itemId = $Filter->clearInt($_GET['byItem']);
                     $item = DB::$dbs->queryFetch("SELECT * FROM " . ALL_ITEMS . " WHERE `id` = ?", [$itemId]);

                     if (empty($itemId) || !is_numeric($itemId)) 
                     {
                         errorNoExit('Не верный идентификатор вещи.');
                     } 
                     else if (empty($item)) 
                     {
                         errorNoExit('Вещь не найдена.');
                     } 
                     else if ($item['auction'] == 0) 
                     {
                         errorNoExit('Данную вещь нельзя купить на аукционе.');
                     } 
                     else 
                     {
                         if (!empty($item['item_reward'])) 
                         {
                             $dropedItem = DB::$dbs->queryFetch("SELECT * FROM " . ALL_ITEMS . " WHERE `id` = ?", [$item['item_reward']]);
                         }
                         ?>
                         <div class="title"><h1>Подтвердите покупку</h1></div>
                         Вы хотите купить - <a href="#"><?=$Filter->output($item['name'])?></a><br/>
                         <div class="head"> Характеристики</div>
                         <div class="wrap">
                             <img src="/img/item/<?=$Filter->output($item['type'])?>/<?=$Filter->output($item['img'])?>.png" width="35px"><br/>
                             <?=ico('strike.png')?> Сила: <?=$Filter->clearInt($item['strike'])?><br/> 
                             <?=ico('defend.png')?> Защита: <?=$Filter->clearInt($item['defend'])?><br/> 
                             <?=ico('health.png')?> Здоровье: <?=$Filter->clearInt($item['health'])?><br/> 
                             <?=ico('exp.png')?> Уровень: <?=($user['lvl'] < $item['lvl'] ? '<span style="color: red;">'. $Filter->clearInt($item['lvl']) .'</span>' : '<span style="color: green;">'. $Filter->clearInt($item['lvl']) .'</span')?><br/>
                             <?=($item['type'] == 'chest' ? 'В этом сундуке вам может выпасть: <br/>' . ico('gold.png') . $item['gold_reward'] . ', ' . ico('exp.png') . $item['exp_reward'] . ', ' . ico('1.png') . $Filter->output($dropedItem['name']) . '<br/>' : NULL)?>
                         </div>
                         <a href="<?=HOME?>/modules/shop/index.php?do=auction&amp;category=items&amp;sortBy=<?=$sortBy?>&amp;byItem=<?=$itemId?>&amp;true" class="link-touch">Купить за <?=ico('gold.png') . $Filter->clearInt($item['cost'])?></a>
                         <?php
                         if (isset($_GET['true'])) 
                         {
                             if ($user['money'] < $item['cost']) 
                             {
                                 errorNoExit('Недостаточно золота.');
                             } 
                             else if ($user['inv'] == $user['max_inv']) 
                             {
                                 errorNoExit('Рюкзак переполнен.');
                             } 
                             else if ($user['lvl'] < $item['lvl']) 
                             {
                                 errorNoExit('Уровень вещи больше чем ваш.');
                             }
                             else 
                             {
                                 DB::$dbs->query("INSERT INTO " . USERITEM . "(`user_id`, `status`, `type`, `name`, `img`, `res_kick`, `strike`, `defend`, `health`, `gold_reward`, `exp_reward`, `item_reward`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", [$user['id'], 0, $Filter->clearString($item['type']), $Filter->clearString($item['name']), $item['img'], $item['res_kick'], $item['strike'], $item['defend'], $item['health'], $item['gold_reward'], $item['exp_reward'], $item['item_reward']]);
                                 DB::$dbs->query("UPDATE " . USERS . " SET `money` = ?, `inv` = ? WHERE `id` = ?", [($user['money'] - $item['cost']), ($user['inv'] + 1), $user['id']]);
                                 $journal = 'Вы купили ' . $Filter->output($item['name']) . ' за ' . ico('gold.png') . $Filter->clearInt($item['cost']);
                                 $User->addUserJournal($journal, $user['id']);
                                 success('Вещь успешно куплена','/modules/shop/index.php?do=auction', 'Магазин');
                             }
                         }
                     }
                 }
                 # End by item;
             }
         }
         break;
         
         case 'help': 
             head('Добровольные взносы', 'Добровольные взносы');
             ?> 
             <div class="block">
                 На данный момент в игре нет доната. Но если вы желаете помочь проекту, можете перечислить любую сумму на указанные ниже номера кошельков в системе webmoney.<br/>
                 Рубли: R037725018759 <br/>
                 Гривны: U716875989961 <br/>
                 <?=ico('info.png')?> Полученые средства будут использованы на оплату хостинга.<br/>
                 <?=ico('info.png')?> Если вы укажете в коментариях к платежу : wapgame + Ваш ник в игре, то я смогу подарить вам какую нибуть плюшку в игре)
             </div>
             <?php
         break;
         
         case 'blackMarket': 
             head('Черный рынок', 'Черный рынок');
             
             ?> 
             <div class="wrap">
                 Здесь вы в дальнейшем сможете покупать легендарные вещи, питомцев, открывать подземелья, покупать редкие зелья и многое другое.<br/>
                 <b><u>На данный момент данный модуль в разработке.</u></b>
             </div>
             <?php
         break;
         
         case 'bottle': 
             head('Магазин зелий', 'Магазин зелий');
             
             ?> 
             <div class="wrap">
                 Здесь вы можете приобрести зелья, которые можно использовать в бою.<br/>
                 <img src="/ico/bottle/1.png" width="18px">Зелье здоровья: x1 = <?=ico('gold.png')?>100з, +<?=ico('health.png')?>100хп<br/>
                 <img src="/ico/bottle/2.png" width="18px">Среднее зелье здоровья: x1 = <?=ico('gold.png')?>250з, +<?=ico('health.png')?>250хп<br/>
                 <img src="/ico/bottle/3.png" width="18px">Большое зелье здоровья: x1 = <?=ico('gold.png')?>500з, +<?=ico('health.png')?>500хп
             </div> 
             <?php
             
             if (isset($_POST['try'])) 
             {
                 $data = $_POST;
                 
                 $data['count'] = $Filter->clearInt($data['count']);
                 $data['type']  = $Filter->clearInt($data['type']);
                 
                 if ($data['type'] == 1) 
                 {
                     $restore = 100;
                     $cost    = 100;
                     $name    = 'Зелье здоровья';
                 } 
                 else if ($data['type'] == 2) 
                 {
                     $restore = 250;
                     $cost    = 250;
                     $name    = 'Среднее зелье здоровья';
                 } 
                 else if ($data['type'] == 3) 
                 {
                     $restore = 500;
                     $cost    = 500; 
                     $name    = 'Большое зелье здоровья';
                 }  
                 
                 $cost = $cost * $data['count'];
                 
                 if (empty($data['count']) || empty($data['type'])) 
                 {
                     errorNoExit('Обнаружено пустое поле.');
                 } 
                 else if ($user['money'] < $cost) 
                 {
                     errorNoExit('Недостаточно золота.');
                 } 
                 else 
                 {
                     DB::$dbs->query("INSERT INTO ". BELT ." (`user_id`, `name`, `status`, `count`, `type`, `restore`, `img`) VALUES (?, ?, ?, ?, ?, ?, ?)", [$user['id'], $name, 0, $data['count'], 'health', $restore, $data['type']]);
                     DB::$dbs->query("UPDATE ". USERS ." SET `money` = ? WHERE `id` = ?", [($user['money'] - $cost), $user['id']]);
                     $User->addUserJournal('Вы купили '. $name .' x'. $data['count'] .' <span style="color: red;">-'. ico('gold.png') . $cost.'</span>', $user['id']);
                     success('Вы купили зелье.');
                 }
             }
             ?> 
             <form action="" method="POST">
                 Зелье: <br/>
                 <select name="type">
                     <option value="1">Зелье здоровья</option>
                     <option value="2">Среднее зелье здоровья</option>
                     <option value="3">Большое зелье здоровья</option>
                 </select><br/>
                 Количество: <br/>
                 <input type="text" name="count"><br/>
                 <input type="submit" name="try" value="Купить">
             </form> 
             <?php
             break;

             case 'userBonus':

             head('Эффекты', 'Эффекты');

             $bonusCost  = $user['lvl'] * 100;
             $userParam  = $user['strike'] + $user['defend'] + $user['max_health']; 
             $bonusParam = round($userParam * $user['lvl'] / 100);

             if (isset($_POST['try'])) 
             {
                 $bonusTime  = time() + 3600;
                 $bonus      = DB::$dbs->queryFetch("SELECT * FROM ". USER_BONUS ." WHERE `user_id` = ? and `type` = ?", [$user['id'], 'param']);

                 if ($user['money'] < $bonusCost) 
                 {
                     errorNoExit('Недостаточно золота'); 
                 } 
                 else 
                 {
                     if (!empty($bonus)) 
                     {
                         errorNoExit('У вас уже активирован данный эффект');
                     }
                     DB::$dbs->query("UPDATE ". USERS ." SET `strike` = ?, `defend` = ?, `max_health` = ?, `money` = ? WHERE `id` = ?", [($user['strike'] + $bonusParam), ($user['defend'] + $bonusParam), ($user['max_health'] + $bonusParam), ($user['money'] - $bonusCost), $user['id']]);
                     DB::$dbs->query("INSERT INTO ". USER_BONUS ." (`user_id`, `type`, `param`, `time`, `text`) VALUES (?, ?, ?, ?, ?)", [$user['id'], 'param', $bonusParam, $bonusTime, 'Городской бонус']);
                     successNoExit('Бонус активирован');
                 }
             }
             ?> 
             <div class="wrap"> 
                 Цена эффекта: <?=$bonusCost?><br/>
                 К параметрам: <span style="color: green;">+ <?=ico('strike.png') . ico('health.png') . ico('defend.png') .$bonusParam?></span><br/>
                 Время действия: 1 час.
             </div>
             <form action="" method="POST">
                 <input type="submit" name="try" value="Активировать">
             </form>
             <?php
             break;
} 

require_once '../../core/foot.php';