function GetRefererUrl($id, $unset_url = true)
{
    if (isset($_SESSION['saved_urls'][$id])) {
        $url = $_SESSION['saved_urls'][$id];
        if ($unset_url) {
            unset($_SESSION['saved_urls'][$id]);
        }
        return $url;
    } else {
        return HistoryGetUrl(2);
    }
}
function IndexArticlesAddVote()
{
    $ip = getip();
    $time = time() - 86400;
    //1 день
    $article = SafeEnv($_GET['article'], 11, int);
    $vote = SafeEnv($_POST['vote'], 1, int);
    System::database()->Delete('articles_rating', "`time`<'{$time}'");
    System::site()->OtherMeta .= '<meta http-equiv="REFRESH" content="3; URL=' . HistoryGetUrl(1) . '">';
    System::database()->Select('articles', GetWhereByAccess('view', "`id`='{$article}' and `active`='1'"));
    if (System::database()->NumRows() > 0) {
        $dfile = System::database()->FetchRow();
        if ($dfile['allow_votes'] == '1') {
            // оценки разрешены
            System::database()->Select('articles_rating', "`ip`='{$ip}' and `downid`='{$article}'");
            if (System::database()->NumRows() > 0) {
                System::site()->AddTextBox('', '<p align="center">Вы уже голосовали за эту статью.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
            } else {
                if ($vote == 0) {
                    System::site()->AddTextBox('', '<p align="center">Вы не выбрали оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
                } else {
                    System::user()->ChargePoints(System::config('points/article_rating'));
                    $time = time();
                    System::database()->Insert('articles_rating', "'','{$article}','{$ip}','{$time}'");
                    $numvotes = SafeDB($dfile['num_votes'], 11, int) + 1;
                    $vote = SafeDB($dfile['all_votes'], 11, int) + $vote;
                    System::database()->Update('articles', "num_votes='{$numvotes}',all_votes='{$vote}'", "`id`='{$article}'");
                    System::site()->AddTextBox('', '<p align="center">Спасибо за вашу оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
                }
            }
        } else {
            System::site()->AddTextBox('', '<p align="center">Извините, оценка этой статьи запрещена.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
        }
    } else {
        System::site()->AddTextBox('', '<p align="center">Произошла ошибка. Статья не найдена.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
    }
}
function IndexGalleryAddVote()
{
    $ip = getip();
    $time = time() - 86400;
    //1 день
    $id = SafeEnv($_GET['img'], 11, int);
    $vote = SafeEnv($_POST['vote'], 1, int);
    System::database()->Delete('gallery_rating', "`time`<'{$time}'");
    System::site()->OtherMeta .= '<meta http-equiv="REFRESH" content="3; URL=' . HistoryGetUrl(1) . '">';
    System::database()->Select('gallery', GetWhereByAccess('view', "`id`='{$id}' and `show`='1'"));
    if (System::database()->NumRows() > 0) {
        $image = System::database()->FetchRow();
        if ($image['allow_votes'] == '1') {
            // оценки разрешены
            System::database()->Select('gallery_rating', "`ip`='{$ip}' and `imageid`='{$id}'");
            if (System::database()->NumRows() > 0) {
                System::site()->AddTextBox('', '<p align="center">Вы уже голосовали.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
            } else {
                if ($vote == 0) {
                    System::site()->AddTextBox('', '<p align="center">Вы не выбрали оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
                } else {
                    System::user()->ChargePoints(System::config('points/gallery_rating'));
                    $time = time();
                    System::database()->Insert('gallery_rating', "'','{$id}','{$ip}','{$time}'");
                    $vote = SafeDB($image['sum_votes'], 11, int) + $vote;
                    $numvotes = SafeDB($image['num_votes'], 11, int) + 1;
                    System::database()->Update('gallery', "`num_votes`='{$numvotes}',`sum_votes`='{$vote}'", "`id`='{$id}'");
                    System::site()->AddTextBox('', '<p align="center">Спасибо за вашу оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
                }
            }
        } else {
            // Оценка запрещена
            System::site()->AddTextBox('', '<p align="center">Извините, оценка этого изображения запрещена.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
        }
    } else {
        // Файл не существует
        System::site()->AddTextBox('', '<p align="center">Произошла ошибка. Изображение не найдено.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
    }
}
function IndexDownloadsAddVote()
{
    $ip = getip();
    $time = time() - 86400;
    //1 день
    $file = SafeEnv($_GET['file'], 11, int);
    $vote = SafeEnv($_POST['vote'], 1, int);
    System::database()->Delete('downloads_rating', "`time`<'{$time}'");
    System::site()->OtherMeta .= '<meta http-equiv="REFRESH" content="3; URL=' . HistoryGetUrl(1) . '">';
    System::database()->Select('downloads', GetWhereByAccess('view', "`id`='{$file}' and `active`='1'"));
    if (System::database()->NumRows() > 0) {
        $dfile = System::database()->FetchRow();
        if ($dfile['allow_votes'] == '1') {
            // оценки разрешены
            System::database()->Select('downloads_rating', "`ip`='{$ip}' and `downid`='{$file}'");
            if (System::database()->NumRows() > 0) {
                System::site()->AddTextBox('', '<p align="center">Вы уже голосовали за этот файл.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
            } else {
                if ($vote == 0) {
                    System::site()->AddTextBox('', '<p align="center">Вы не выбрали оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
                } else {
                    System::user()->ChargePoints(System::config('points/download_rating'));
                    $time = time();
                    System::database()->Insert('downloads_rating', "'','{$file}','{$ip}','{$time}'");
                    $vote = SafeDB($dfile['votes'], 11, int) + $vote;
                    $numvotes = SafeDB($dfile['votes_amount'], 11, int) + 1;
                    System::database()->Update('downloads', "votes_amount='{$numvotes}',votes='{$vote}'", "`id`='{$file}'");
                    System::site()->AddTextBox('', '<p align="center">Спасибо за вашу оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
                }
            }
        } else {
            // Оценка запрещена
            System::site()->AddTextBox('', '<p align="center">Извините, оценка этого файла запрещена.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
        }
    } else {
        // Файл не существует
        System::site()->AddTextBox('', '<p align="center">Произошла ошибка. Файл, который вы пытаетесь оценить, не найден в нашем файловом архиве. Возможно он был удален.<br><br><a href="javascript:history.go(-1)">Назад</a></p>');
    }
}