<?php

header('Access-Control-Allow-Origin: *');

header('Access-Control-Allow-Methods: GET, POST');

header("Access-Control-Allow-Headers: *");

include('init.php');

if ($_SERVER['REQUEST_METHOD'] == 'GET')
{

	$r = $db->getAll("SELECT * FROM reviews ORDER BY id DESC");

	/*echo "<center>";
	echo "<h3>Отзывы:</h3>";
	foreach($r as $rr)
	{
		echo "<div align=center style='width: 70%; padding: 10px; border: 1px dotted #ccc; margin: 10px;'>
		$rr[txt]
		</div>";
	}
	echo "</center>";	
	*/

?>

    <style>
        /* Стили карусели - изолированные для предотвращения конфликтов */
        .travelask-reviews {
            font-family: 'Arial', sans-serif;
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f5f5f5;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .travelask-reviews * {
            box-sizing: border-box;
        }
        
        .travelask-header {
            text-align: center;
            margin-bottom: 30px;
        }
        
        .travelask-header h1 {
            color: #333;
            font-size: 24px;
            margin-bottom: 10px;
        }
        
        .travelask-header p {
            color: #666;
            font-size: 16px;
            margin-bottom: 20px;
        }
        
        .travelask-telegram-link {
            display: inline-block;
            background-color: #0088cc;
            color: white;
            text-decoration: none;
            padding: 10px 20px;
            border-radius: 5px;
            font-weight: bold;
            transition: background-color 0.3s;
        }
        
        .travelask-telegram-link:hover {
            background-color: #006699;
        }
        
        .travelask-carousel-container {
            position: relative;
            width: 100%;
            overflow: hidden;
            margin-top: 20px;
        }
        
        .travelask-carousel {
            display: flex;
            transition: transform 0.5s ease;
            gap: 20px;
            padding: 10px 0;
        }
        
        .travelask-review-card {
            background-color: white;
            border-radius: 10px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            padding: 20px;
            min-width: 300px;
            max-width: 300px;
            flex-shrink: 0;
        }
        
        .travelask-review-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
        }
        
        .travelask-initials {
            font-size: 18px;
            font-weight: bold;
            color: #333;
            border-radius: 25px;
            min-width: 50px;
            min-height: 50px;
            vertical-align: middle;
            text-align: center;
            line-height: 50px;
        }
        
        .travelask-stars {
            color: #ffc107;
            font-size: 18px;
        }
        
        .travelask-review-text {
            color: #555;
            line-height: 1.5;
            margin-bottom: 15px;
            position: relative;
            max-height: 80px;
            overflow: hidden;
        }
        
        .travelask-review-text.expanded {
            max-height: none;
        }
        
        .travelask-read-more {
            background: none;
            border: none;
            color: #0088cc;
            cursor: pointer;
            font-weight: bold;
            padding: 0;
            margin-top: 5px;
        }
        
        .travelask-carousel-nav {
            display: flex;
            justify-content: center;
            margin-top: 20px;
            gap: 10px;
        }
        
        .travelask-nav-btn {
            background-color: #ddd;
            border: none;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            transition: background-color 0.3s;
        }
        
        .travelask-nav-btn:hover {
            background-color: #ccc;
        }
        
        .travelask-nav-btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }
        
        .travelask-dots {
            display: flex;
            justify-content: center;
            margin-top: 15px;
            gap: 8px;
        }
        
        .travelask-dot {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background-color: #ddd;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        
        .travelask-dot.active {
            background-color: #0088cc;
        }
        
        @media (max-width: 768px) {
            .travelask-review-card {
                min-width: 300px;
                max-width: 300px;
            }
        }
    </style>

    <!-- Контейнер карусели - можно вставить в любое место страницы -->
    <div class="travelask-reviews" id="travelaskReviews">
        <div class="travelask-header">
        </div>
        
        <div class="travelask-carousel-container">
            <div class="travelask-carousel" id="travelaskCarousel">
                <!-- Отзывы будут добавлены через JavaScript -->
            </div>
        </div>
        
        <div class="travelask-carousel-nav">
            <button class="travelask-nav-btn" id="travelaskPrevBtn">←</button>
            <button class="travelask-nav-btn" id="travelaskNextBtn">→</button>
        </div>
        
        <div class="travelask-dots" id="travelaskDots">
            <!-- Точки навигации будут добавлены через JavaScript -->
        </div>
    </div>

    <script>
    	//alert(1);

        // Самовызывающаяся функция для изоляции кода
        (function() {
            // Данные отзывов
            const reviews = [

<?php            

 	function getRandomConsonants() {
    $consonants = 'BCDFGHJKLMNPQRSTVWXYZ';
    $result = '';
    for ($i = 0; $i < 2; $i++) {
        $result .= $consonants[random_int(0, strlen($consonants) - 1)];
    }
    return $result;
}

function getRandomColor() {
    $red = str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT);
    $green = str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT);
    $blue = str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT);
    
    return '#' . $red . $green . $blue;
}
// Использование
//echo getRandomConsonants();

foreach($r as $k=>$rr)
{
	$rr['txt'] = str_replace(["\n", "\r"],' ',trim($rr['txt']));
    $rr['txt'] = str_replace('"',"'",trim($rr['txt']));    

 echo '
                {
                    initials: "'.getRandomConsonants().'",
                    stars: "★★★★★",
                    text: "'.mb_substr($rr['txt'], 0, 150).'...",
                    fullText: "'.$rr['txt'].'",
                    color: "'.getRandomColor().'"
                }';

if ($k < count($r)-1) echo ',';                
}
?>
            ];

            // Элементы DOM
            const carousel = document.getElementById('travelaskCarousel');
            const prevBtn = document.getElementById('travelaskPrevBtn');
            const nextBtn = document.getElementById('travelaskNextBtn');
            const dotsContainer = document.getElementById('travelaskDots');
            
            // Переменные состояния
            let currentIndex = 0;
            let cardsPerView = calculateCardsPerView();
            
            // Функция для расчета количества видимых карточек
            function calculateCardsPerView() {
                const cardWidth = 320; // ширина карточки + gap
                const containerWidth = carousel.parentElement.offsetWidth;
                return Math.max(1, Math.floor(containerWidth / cardWidth));
            }
            
            // Инициализация карусели
            function initCarousel() {
                // Очистка карусели
                carousel.innerHTML = '';
                dotsContainer.innerHTML = '';
                
                // Создание карточек отзывов
                reviews.forEach((review, index) => {
                    const card = document.createElement('div');
                    card.className = 'travelask-review-card';
                    
                    card.innerHTML = `
                        <div class="travelask-review-header">
                            <div class="travelask-initials" style="background-color: ${review.color}">${review.initials}</div>
                            <div class="travelask-stars">${review.stars}</div>
                        </div>
                        <div class="travelask-review-text">${review.text}</div>
                        <button class="travelask-read-more">ЧИТАТЬ ПОЛНОСТЬЮ</button>
                    `;
                    
                    carousel.appendChild(card);
                    
                    // Добавление обработчика для кнопки "Читать полностью"
                    const readMoreBtn = card.querySelector('.travelask-read-more');
                    const reviewText = card.querySelector('.travelask-review-text');
                    
                    readMoreBtn.addEventListener('click', () => {
                        if (reviewText.classList.contains('expanded')) {
                            reviewText.textContent = review.text;
                            readMoreBtn.textContent = 'ЧИТАТЬ ПОЛНОСТЬЮ';
                            reviewText.classList.remove('expanded');
                        } else {
                            reviewText.textContent = review.fullText;
                            readMoreBtn.textContent = 'СВЕРНУТЬ';
                            reviewText.classList.add('expanded');
                        }
                    });
                    
                    // Создание точек навигации
                    const dot = document.createElement('div');
                    dot.className = 'travelask-dot';
                    if (index === 0) dot.classList.add('active');
                    dot.addEventListener('click', () => {
                        goToSlide(index);
                    });
                    dotsContainer.appendChild(dot);
                });
                
                updateCarousel();
            }
            
            // Обновление позиции карусели
            function updateCarousel() {
                const cardWidth = 320; // ширина карточки + gap
                const translateX = -currentIndex * cardWidth;
                carousel.style.transform = `translateX(${translateX}px)`;
                
                // Обновление активной точки
                document.querySelectorAll('.travelask-dot').forEach((dot, index) => {
                    dot.classList.toggle('active', index === currentIndex);
                });
                
                // Обновление состояния кнопок навигации
                prevBtn.disabled = currentIndex === 0;
                nextBtn.disabled = currentIndex >= reviews.length - cardsPerView;
            }
            
            // Переход к определенному слайду
            function goToSlide(index) {
                currentIndex = Math.max(0, Math.min(index, reviews.length - cardsPerView));
                updateCarousel();
            }
            
            // Обработчики событий для кнопок навигации
            prevBtn.addEventListener('click', () => {
                if (currentIndex > 0) {
                    currentIndex--;
                    updateCarousel();
                }
            });
            
            nextBtn.addEventListener('click', () => {
                if (currentIndex < reviews.length - cardsPerView) {
                    currentIndex++;
                    updateCarousel();
                }
            });
            
            // Обработчик изменения размера окна
            window.addEventListener('resize', () => {
                cardsPerView = calculateCardsPerView();
                // Корректируем currentIndex, если он выходит за пределы
                currentIndex = Math.min(currentIndex, reviews.length - cardsPerView);
                updateCarousel();
            });
            
            // Инициализация карусели при загрузке страницы
            if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', initCarousel);
            } else {
                initCarousel();
            }
        })();
    </script>


<?php	
	



	exit;
}
else
{
	header('Content-type: application/json;');
	
	$input = $input0 = file_get_contents('php://input');

	//tel_sms('196862160', $input);


	$input = json_decode($input);

	$txt = $input->text;

    if ($db->getOne("SELECT COUNT(*) FROM reviews WHERE txt=?s", $txt) == 0)
    	$db->query("INSERT INTO reviews SET dt=NOW(), txt=?s", $txt);

	file_put_contents('rev.dat', print_r($_GET,1)."\n===\n".print_r($_POST,1)."\n===\n".print_r($input,1)."\n===\n".$input0);
	
	echo "{result:'ok'}";
}

	//file_put_contents('rev.dat', print_r($_GET,1)."\n===\n".print_r($_POST,1)."\n===\n".print_r($input,1)."\n===\n".$input0);
