<?php
/*
* ////////////////////////////////////////////////////////////////////////////////
* // JohnCMS                             Content Management System              //
* // Официальный сайт сайт проекта:      http://johncms.com                     //
* // Дополнительный сайт поддержки:      http://gazenwagen.com                  //
* ////////////////////////////////////////////////////////////////////////////////
* // JohnCMS core team:                                                         //
* // Евгений Рябинин aka john77          john77@gazenwagen.com                  //
* // Олег Касьянов aka AlkatraZ          alkatraz@gazenwagen.com                //
* //                                                                            //
* // Информацию о версиях смотрите в прилагаемом файле version.txt              //
* ////////////////////////////////////////////////////////////////////////////////
* // Найдите пару                                                               //
* // Автор Regan                                                                //
* ////////////////////////////////////////////////////////////////////////////////
*/
define('_IN_JOHNCMS', 1);

$headmod = 'find_pair';
$textl = 'Найдите пару';

$rootpath = '../../';

require_once ("../../incfiles/core.php");
require_once ("../../incfiles/head.php");

if ($user_id) {
    switch ($act) {
        case "hod":

            $ms = mysql_fetch_array(mysql_query("SELECT *
			FROM `game` 
			WHERE type='fp' and users='" . $user_id . "' LIMIT 1;"));

            if (!$ms['id']) {
                header("Location: index.php");
            }

            $mod = $ms['sum'];

            $data_temp = unserialize($ms['dump']);

            $t = abs(intval($_GET['t']));

            include_once ("lvl/index.php");

            if ($t <= $fields) {

                if ($ms['act'] != $t) {
                    if ($data_temp[$ms['act']] == $data_temp[$t]) {
                        $data_temp[$ms['act']] = 1;
                        $data_temp[$t] = 1;

                    } else {
                        header("Location: ?act=game");
                    }

                    mysql_query("UPDATE `game` SET
				`dump`='" . serialize($data_temp) . "',
				`act`='" . $t . "',
				`motion`=motion+1
				 WHERE type='fp' and users='" . $user_id . "'
				;") or die('Error: UPDATE game');

                    header("Location: ?act=game");

                }
            } else {
                echo "Ошибка<br/><a href='index.php?'>Вернутся</a><br/>";
                require_once ('../incfiles/end.php');
                exit;
            }
            break;

        case "start":
            $ms = mysql_fetch_array(mysql_query("SELECT *
			FROM `game`
			WHERE type='fp' and users='" . $user_id . "' LIMIT 1;"));

            $mod = abs(intval($_POST['lvl']));

            include_once ("lvl/index.php");

            if ($dDir = opendir("lvl/$image")) {
                $aFileList = array();
                while ($sFileName = readdir($dDir)) {
                    if (preg_match("/.gif/i", $sFileName)) {
                        $aFileList[] = $sFileName;
                    }
                }
                closedir($dDir);
                $iNumFiles = count($aFileList);

            } else {
                echo "Не удалось найти папку c картинками, обратитесь к администратору<br/><a href='index.php'>Назад</a>";
                require_once ('../incfiles/end.php');
                exit;
            }

            for ($r = 0; $r < ($fields / 2); $r++) {

                $rand = rand(2, $iNumFiles);
                $data_temp[$r] = $rand;

                for ($i = 0; $i < ($fields * 3); $i++) {
                    $rand2 = rand((($fields / 2)), $fields - 1);
                    if ($data_temp[$rand2] != 0)
                        continue;                    {

                        $data_temp[$rand2] = $rand;
                    }
                    break;
                }
            }

            if ($ms['id']) {

                mysql_query("UPDATE `game` SET
				`dump`='" . serialize($data_temp) . "',
				`sum`='" . $image . "',
				`time`='" . time() . "'
				 WHERE type='fp' and users='" . $user_id . "'
				;") or die('Error: UPDATE game');
            } else {
                mysql_query("INSERT INTO `game` SET
				`users`='" . $user_id . "',
				`dump`='" . serialize($data_temp) . "',
				`sum`='" . $image . "',
				`time`='" . time() . "',
				`type`='fp';") or die('Error: INSERT INTO game');
            }

            header("Location: ?act=game");
            break;

        case "game":

            $ms = mysql_fetch_array(mysql_query("SELECT *
			FROM `game` 
			WHERE type='fp' and users='" . $user_id . "' LIMIT 1;"));

            if (!$ms['id']) {
                header("Location: index.php");
            }

            $mod = $ms['sum'];

            $data_temp = unserialize($ms['dump']);

            include_once ("lvl/index.php");

            style_table(); //Таблица

            for ($i = 0; $i < $fields; $i++) {

                echo " <td>";

                if ($ms['act'] != $i) {
                    if ($data_temp[$i] != "1") {

                        echo "<a href='?t=" . $i . "&amp;act=hod'><img src='lvl/hidden.gif' width=\"16\" height=\"16\" alt=\"\" border=\"1\"/></a>";
                    } else {
                        echo "<img src='lvl/hidden2.gif' width=\"16\" height=\"16\" alt=\"\" border=\"1\"/>";

                    }

                } else {
                    echo "<img src='lvl/" . $image . "/" . $data_temp[$i] . ".gif' width=\"16\" height=\"16\" alt=\"\" border=\"1\"/>";
                }

                echo "</td>";

                for ($re = 0; $re < ($fields / $cells_on_horizon); $re++) {
                    if ($i == ($cells_on_horizon * $re) - 1) {
                        echo "</tr><tr>";
                    }
                }
            }
            echo "</tr></table>";

            for ($r = 0; $r < $fields; $r++) {
                if ($data_temp[$r] == "1") {
                    $cell++;
                }
            }
            echo '<div class="gmenu">';
            if ($cell == $fields) {
                echo '<h3><span class="green">Вы победили!</span></h3>';
            }

            echo "<hr/>Открыто: " . (int)$cell . "<br/>Ходов сделано: " . $ms['motion'] .
                "<br/>Время игры: " . gmdate('H:i:s', time() - $ms['time']) .
                "<br/>Уровень: " . $ms['sum'] . "</div><div class='menu'>
				<a href='?'>Выбрать уровень</a><br /><a href='../?'>В раздел</a></div>";
            break;

        default:
            $old = time() - (3 * 24 * 3600);

            mysql_query("DELETE FROM `game` WHERE  type='fp' and
				`time`>='" . $old . "';");
            mysql_query("OPTIMIZE TABLE `game`");

            echo "<form action='?act=start' method='post'><div class='gmenu'>Правила игры:<br/>Нужно находить пары для разных картинок. Кликните на любой ромбик и вы увидите картинку на обороте. Для этой картинки нужно найти пару. Кликните на другой ромбик, если картинки совпадут то ромб изменит цвет.<br/>Желаю удачи!<br/>
 <br/>";

            echo "<b><big>Уровень:</big></b><br/>
           <select name='lvl'>
		   <option value='1'>1 (Легко)</option>
           <option value='2'>2 (Просто)</option>
           <option value='3'>3 (Норально)</option>
           <option value='4'>4 (Тяжело)</option>
           <option value='5'>5 (Профи)</option>
	</select></div><div class='bmenu'>
<input type='submit' name='submit' value='В игру'/></div></form>";
            echo "<div class='menu'><a href='../?'>В раздел</a></div>";
            break;
    }
} else {
    echo functions::display_error("Игра доступна только для зарегистрированых пользователей сайта");
    echo "<div class='menu'><a href='../?'>В раздел</a></div>";
}

require_once ("../../incfiles/end.php");

?>