<?php

die();

define('GAME', true);
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
include('_incl_data/class/__user.php');
//
if (isset($u->info['id'])) {
    $mcf = mysql_fetch_array(mysql_query('SELECT * FROM `mini_actions` WHERE `uid` = "' . $u->info['id'] . '" AND (`val` = "vkauth" OR `val` = "fbauth" OR `val` = "okauth") LIMIT 1'));
    if (isset($mcf['id'])) {
        die('Вы уже подтвердили одну страницу в социальной сети.');
    }
}
if (!isset($u->info['id'])) {
    echo 'Вы не авторизовались в игре.';
} elseif (isset($_GET['vkconnect'])) {
    //
    require_once('vk/VK.php');
    require_once('vk/VKException.php');
    //
    $vk_config = [
        'app_id' => '5145826',
        'api_secret' => 'V90yIzlgSglfgrnHw7Ny',
        'callback_url' => '/social.php?vkconnect',
        'api_settings' => 'offline,friends,email',
    ];
    $vk = new VK\VK($vk_config['app_id'], $vk_config['api_secret']);
    //
    echo '<center style="font-size:20px;"><br><br>';
    if (isset($_GET['error']) && $_GET['error'] == 'access_denied') {
        echo 'Вы отказались привязывать свой аккаунт в социальной сети ВКонтакте.';
    } else {
        $access_token = $vk->getAccessToken($_REQUEST['code'], $vk_config['callback_url']);
        if ($access_token['user_id'] > 0) {
            $mcf = mysql_fetch_array(mysql_query('SELECT * FROM `mini_actions` WHERE `val` = "vkauth" AND `ok` = "' . $access_token['user_id'] . '" LIMIT 1'));
            $ubn = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `id` = "' . $mcf['uid'] . '" AND `banned` = 0 LIMIT 1'));
            if (!isset($ubn['id'])) {
                unset($mcf);
            }
            if (isset($mcf['id'])) {
                echo 'Ваш аккаунт уже был привязан к одному из персонажей!';
            } else {
                $bank = mysql_fetch_array(mysql_query('SELECT * FROM `bank` WHERE `uid` = "' . $u->info['id'] . '" LIMIT 1'));
                //
                if (!isset($bank['id'])) {
                    echo 'id игрока: ' . $u->info['id'] . '<br>Откройте игровой банковский счет и попробуйте снова.';
                } else {
                    mysql_query('UPDATE `bank` SET `money2` = `money2` + 1, `money1` = `money1` + 150 WHERE `id` = "' . $bank['id'] . '" LIMIT 1');
                    mysql_query('INSERT INTO `mini_actions` (`uid`,`time`,`val`,`var`,`var2`,`ok`) VALUES (
						"' . $u->info['id'] . '","' . time() . '","vkauth","' . mysql_real_escape_string($access_token['email']) . '",
						"' . mysql_real_escape_string($access_token['access_token']) . '","' . mysql_real_escape_string($access_token['user_id']) . '"
					)');
                    //
                    echo 'Ваш аккаунт успешно привязан! Спасибо!<br>На счет персонажа <b>' . $u->info['login'] . '</b> зачислен 1 екр. и 150 кр.';
                }
            }
        } else {
            echo 'Информация не получена, попробуйте снова.';
        }
    }
    echo '<br><br>(Через 5 секунд окно автоматически закроется)';
    echo '</center>';
    echo '<script>window.opener.location.href=\'main.php?inv=1\';setTimeout("window.close();",5000);</script>';
    //
} elseif (isset($_GET['fbconnect'])) {
    //
    require_once('vk/FB.php');
    // Пример использования класса:
    session_start();
    if (!empty($_GET['error'])) {
        // Пришёл ответ с ошибкой. Например, юзер отменил авторизацию.
        die($_GET['error']);
    } elseif (empty($_GET['code'])) {
        // Самый первый запрос
        OAuthFB::goToAuth();
    } else {
        // Пришёл ответ без ошибок после запроса авторизации

        if (!OAuthFB::checkState($_GET['state'])) {
            die("The state does not match. You may be a victim of CSRF.");
        }

        if (!OAuthFB::getToken($_GET['code'])) {
            die('Error - no token by code');
        }

        $user = OAuthFB::getUser();
        if (isset($user->id)) {
            $mcf = mysql_fetch_array(mysql_query('SELECT * FROM `mini_actions` WHERE `val` = "fbauth" AND `ok` = "' . $user->id . '" LIMIT 1'));
            $ubn = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `id` = "' . $mcf['uid'] . '" AND `banned` = 0 LIMIT 1'));
            if (!isset($ubn['id'])) {
                unset($mcf);
            }
            if (isset($mcf['id'])) {
                echo 'Ваш аккаунт уже был привязан к одному из персонажей!';
            } else {
                $bank = mysql_fetch_array(mysql_query('SELECT * FROM `bank` WHERE `uid` = "' . $u->info['id'] . '" LIMIT 1'));
                //
                if (!isset($bank['id'])) {
                    echo 'id игрока: ' . $u->info['id'] . '<br>Откройте игровой банковский счет и попробуйте снова.';
                } else {
                    mysql_query('UPDATE `bank` SET `money2` = `money2` + 1, `money1` = `money1` + 150 WHERE `id` = "' . $bank['id'] . '" LIMIT 1');
                    mysql_query('INSERT INTO `mini_actions` (`uid`,`time`,`val`,`var`,`var2`,`ok`) VALUES (
						"' . $u->info['id'] . '","' . time() . '","fbauth","' . mysql_real_escape_string($user->id) . '",
						"","' . mysql_real_escape_string($user->id) . '"
					)');
                    //
                    echo 'Ваш аккаунт успешно привязан! Спасибо!<br>На счет персонажа <b>' . $u->info['login'] . '</b> зачислен 1 екр. и 150 кр.';
                }
            }
            echo '<br><br>(Через 5 секунд окно автоматически закроется)';
            echo '</center>';
            echo '<script>window.opener.location.href=\'main.php?inv=1\';setTimeout("window.close();",5000);</script>';
        } else {
            die('Не удалось получить данные вашей странички Facebook');
        }
        /*
         * Вот и всё - мы узнали основные данные авторизованного юзера.
         * $user в этом примере состоит из двух полей: id, name.
         * Делайте с ними что угодно - регистрируйте, авторизуйте, ругайте...
         */
    }
    //
} else {
    echo 'Мы не работает с подобной социальной сетью.';
}
