<?php
require_once('../classes/body.class.php');
require_once('../classes/db.class.php');
require_once('../classes/system.class.php');
$title= new Body;
$title->SetTitle(homeurl.' - Покупка рекламы');
$title->GetHeader();
define('MT', microtime(true));
$errors = [];
echo'<div class="tile"><div class="t-header th-alt bg-teal"><div class="th-title"><i class="zmdi zmdi-widgets"></i><a href="/"style="text-decoration:none; color:white;"> Главная</a> :: Покупка рекламы</div></div></div>';

if (! empty($_POST)) {
    if (! empty($_POST['location'])) {
        $e = $_POST['location'];
        if (! isset($location[$e]))
            $errors[] = 'Выберите расположение рекламы';
        else if (getCountLinks($e) >= $location[$e]['count_links'])
            $errors[] = 'Количество рекламных мест уже закончилось';
        else {
            $_location = $e;
            $cost = $location[$e]['price'];
        }
    } else {
        $errors[] = 'Выберите расположение рекламы';
    }

    if (! empty($_POST['url'])) {
        $e = explode('/', $_POST['url']);

        if (isset($e[3]))
            $errors[] = 'Введите адрес сайта в виде <b>http://skywap.org</b>';
        else if (empty($e[2]))
            $errors[] = 'Введите адрес сайта';
        else if (! domain_valid(str_replace('http://', '', $_POST['url'])))
            $errors[] = 'Введите существующий адрес сайта';
        else {
            $code = str_replace('.', '_', str_replace('http://', '', $_POST['url']));
            if (file_exists(ADV_FOLDER . '/' . $code . '-paid.dat'))
                $errors[] = 'Этот сайт уже рекламируется';
            else
                $url = $_POST['url'];
        }
    } else {
        $errors[] = 'Введите URL-ссылку сайта';
    }

    // проверяем корректность названия ссылки
    if (! empty($_POST['title'])) {
        $length = mb_strlen(preg_replace('/\s+/',' ', trim($_POST['title'])), 'utf-8');
        if (! ($length >= LEGTH_FROM && $length <= LEGTH_TO))
            $errors[] = 'Длинна заголовка не соответствует правилам';
        else
            $title = htmlspecialchars($_POST['title']);
    } else {
        $errors[] = 'Введите заголовок ссылки';
    }

    // проверяем корректность цвета
    if (! empty($_POST['color'])) {
        if (! preg_match('/^(#[a-f0-9]{6}|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$/i', $_POST['color']))
            $errors[] = 'Цвет введен неверно, используйте <b>#rrggbb</b> или название цвета (silver, navy)';
        else {
            $color = $_POST['color'];
            $cost += PRICE_COLOR;
        }
    }

    // проверяем корректность к-ва дней
    if (! empty($_POST['days'])) {
        $days = floor($_POST['days']);
        if (! ($days >= DAYS_MIN && $days <= DAYS_MAX))
            $errors[] = 'Количество дней не соответствует правилам';
    }

    // проверяем корректность выделения
    if (! empty($_POST['bold'])) {
        $cost += PRICE_BOLD;
        $bold = true;
    }

    // если ошибок нет, то переходим на следующий этап
    if (empty($errors)) {
        $price = $cost*$days;

        // применяем скидку
        $disc = '';
        foreach($discounts as $discount)
            if ($days >= $discount['days'])
                $disc = $discount['percent'];
        $price -= ($price/100) * $disc;

        $time_end = time() + 86400 * $days;
        $scolor = isset($color) ? $color : 'no';
        $bolder = isset($bold) ? 'yes' : 'no';

        // сохраняем для последующей проверки
        $file = fopen(ADV_FOLDER . '/' . $code . '-wait.dat', 'w');
        fwrite($file, "{$price};{$url};{$title};{$time_end};{$scolor};{$bolder};{$_location}");
        fclose($file);

        // информация
        echo '<div class="list-group-item media">';
            echo 'Цена рекламы: ', '<b>', $price, ' ', CURRENCY_TEXT, '</b>', (! empty($disc) ? ' (скидка ' . $disc . '%)' : ''), '<hr />';

            echo 'URL-ссылки: <b>', $url, '</b><br />';
            echo 'Заголовок: <b>', $title, '</b><br />';
            if (isset($color))
                echo 'Цвет: <b>', $color, '</b><br />';
            echo 'Количество дней: <b>', $days, '</b><br />';
            echo 'Выделение: <b>', isset($bold) ? 'включено' : 'выключено', '</b><hr />';

            // кнопка для оплаты
            echo '<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">',
                '<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="' . $price . '">',
                '<input type="hidden" name="LMI_PAYMENT_DESC_BASE64" value="' . base64_encode('Покупка рекламы для сайта ' . $url) . '">',
                '<input type="hidden" name="LMI_PAYEE_PURSE" value="' . WEBMONEY_PURSE . '">',
                '<input type="hidden" name="IDENTIFY" value="' . $code . '">',
                '<input type="submit" class="btn btn-primary" value="Перейти к оплате">',
            '</form>';
        echo '</div>';

        
exit();
    }
}

// выводим ошибки
if (! empty($errors)) {
    echo '<div class="alert alert-danger"role="alert">';
    foreach ($errors as $message) 
        echo '<span class="error">', $message, '</span><br/>';
    echo '</div>';
}

// форма заказа рекламы
echo '<div class="list-group-item media">';
    echo '<form action="' . URL . '/index.php" method="POST">';
        echo 'URL ссылки:<br />';
        echo '<input type="text" class="form-control" name="url" value="http://"/><br />';
        echo 'Название: (от ' . LEGTH_FROM . ' до ' . LEGTH_TO . ' символов)<br />';
        echo '<input type="text" class="form-control" name="title"/><br />';
        echo 'Цвет названия: (#rrggbb или (silver, navy))<br />';
        echo '<input type="text" class="form-control" name="color" size="6"/><br />';
        echo 'Количество дней:<br />';
        echo '<input type="text" class="form-control" name="days" size="1" value="' . DAYS_MIN .'"/><br />';
        echo '<div class="info">Минимально ' . DAYS_MIN . ', максимально ' . DAYS_MAX . ' дней</div>';
        echo '<input type="checkbox" name="bold" value="yes"/> выделить <b>жирным</b><br />';
        echo 'Расположение:<br />';
        echo '<select class="form-control" name="location">';
        foreach($location as $key => $val)
            if (getCountLinks($key) < $val['count_links'])
                echo '<option value="' . $key . '" />' . $val['name'] . ', ' . $val['price'] . ' ' . CURRENCY_TEXT . '</option>';
            else
                echo '<option value="' . $key . '" />' . $val['name'] . ', мест нет</option>';
        echo '</select>';
        echo '<br/><br/>';

        echo '<input class="btn btn-primary" type="submit" value="Подтвердить"/><br />';
    echo '</form>';
echo '</div>';

echo '<div class="tile"><div class="t-header th-alt bg-teal"><div class="th-title"><i class="zmdi zmdi-widgets"></i> Дополнительно</div></div></div>';

echo '<div class="list-group-item media">';
    echo 'Цвет ссылки: <b>', PRICE_COLOR, '</b> ', CURRENCY_TEXT,'<br />';
    echo 'Выделение: <b>', PRICE_BOLD, '</b> ', CURRENCY_TEXT, '<br/>';
    echo 'Скидки:<br />';
    foreach($discounts as $discount)
        echo '- <b>', $discount['percent'], '%</b> при заказе от ', $discount['days'], ' дней<br/>';
echo '</div>';

$title->GetMenu();
$title->GetFooter();
?>