<?php

/* DCMS Special
 * Дата последнего редактирования 14.01.2016
 * Модифицировал densnet
 */

if (isset($user) && $user['id'] == $ank['id']) {
    if (isset($_POST['delete'])) {
        foreach ($_POST as $key => $value) {
            if (preg_match('#^post_([0-9]*)$#', $key, $postnum) && $value = '1') {
                $delpost[] = $postnum[1];
            }
        }


        if (isset($delpost) && is_array($delpost)) {
            echo "<div class='list-group-item-null list-group-item-grey'>Друзья: ";

            for ($q = 0; $q <= count($delpost) - 1; $q++) {
                $fri = $db->super_query("SELECT COUNT(*) as count FROM `friends` WHERE (`user` = '$user[id]' AND `friends` = '$delpost[$q]') OR (`user` = '$delpost[$q]' AND `friends` = '$user[id]') LIMIT 1");
                if ($fri['count'] == 0) {
                    $warn[] = lang('Этого пользователя нет в вашем списке друзей');
                } else {
                    $frid = $db->super_query("SELECT COUNT(*) as count FROM `gallery_frend` WHERE `id_avtor` = '$user[id]' AND `id_user` = '$delpost[$q]' AND `id_foto` = '$foto[id]'");

                    if ($frid['count'] == 1) {
                        $db->query("DELETE FROM `gallery_frend` WHERE `id_user` = '$delpost[$q]' AND `id_foto` = '$foto[id]'");
                    }
                }
                $ank_del = get_user($delpost[$q]);
                echo "<font color='#395aff'><b>$ank_del[nick]</b></font>, ";
            }

            echo " удален(ы) из списка отмеченных друзей на этом фото</div>";
        } else {
            $err[] = lang('Не выделено ни одного контакта');
        }
    } elseif (isset($_POST['metka'])) {
        foreach ($_POST as $key => $value) {
            if (preg_match('#^post_([0-9]*)$#', $key, $postnum) && $value = '1') {
                $delpost[] = $postnum[1];
            }
        }

        if (isset($delpost) && is_array($delpost)) {
            echo "<div class='list-group-item-null list-group-item-grey'>Друзья: ";

            for ($q = 0; $q <= count($delpost) - 1; $q++) {
                $fri = $db->super_query("SELECT COUNT(*) as count FROM `friends` WHERE (`user` = '$user[id]' AND `friends` = '$delpost[$q]') OR (`user` = '$delpost[$q]' AND `friends` = '$user[id]') LIMIT 1");
                if ($fri['count'] == 0) {
                    $warn[] = lang('Этого пользователя нет в вашем списке друзей');
                } else {
                    $frid = $db->super_query("SELECT COUNT(*) as count FROM `gallery_frend` WHERE `id_avtor` = '$user[id]' AND `id_user` = '$delpost[$q]' AND `id_foto` = '$foto[id]'");

                    if ($frid['count'] == 0) {
                        $db->query("INSERT INTO `gallery_frend` (`id_user`, `id_foto`, `time`, `id_avtor`) values('$delpost[$q]', '$foto[id]', '$time', $user[id])", $db);
                    }
                }
                $ank_del = get_user($delpost[$q]);
                echo "<font color='#395aff'><b>$ank_del[nick]</b></font>, ";
            }

            echo " отмечен(ы) на этом фото</div>";
        } else {
            $err[] = lang('Не выделено ни одного друга');
        }
    }
}

if (isset($_GET['act']) && $_GET['act'] == 'delete' && isset($_GET['ok'])) {

    if ($user['id'] != $ank['id']) {
        admin_log(lang('Фотогалерея'), lang('Фотографии'), "" . lang('Удаление фото пользователя') . " '[url=/id$ank[id]]$ank[nick][/url]'");
    }
    @unlink(H . "sys/gallery/48/$foto[id].jpg");
    @unlink(H . "sys/gallery/128/$foto[id].jpg");
    @unlink(H . "sys/gallery/640/$foto[id].jpg");
    @unlink(H . "sys/gallery/foto/$foto[id].jpg");

    $db->query("DELETE FROM `gallery_foto` WHERE `id` = '$foto[id]' LIMIT 1");

    $_SESSION['message'] = lang('Фотография успешно удалена');
    header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/");
    exit;
}

if (isset($_GET['act']) && $_GET['act'] == 'avatar' && isset($_GET['ok'])) {
    $avatar = $db->get_row($db->query("SELECT * FROM `gallery_foto` WHERE `avatar` = '1' AND `id_user` = '$user[id]' LIMIT 1"));

    if ($avatar['id'] != $foto['id']) {
        $q = $db->query("SELECT * FROM `friends` WHERE `user` = '" . $gallery['id_user'] . "' AND `i` = '1'");

        while ($f = $db->get_array($q)) {
            $a = get_user($f['friends']);

            if ($a['id'] != $user['id'] && $foto['id'] != $avatar['id'] && $f['lenta_avatar'] == 1) {
                $db->query("INSERT INTO `notifications` (`id_user`, `id_kont`, `msg`, `id_img`, `time`) values('$user[id]', '$a[id]', '" . ($user['sex'] ? 'обновил' : 'обновила') . " [url=/modules/foto/$ank[id]/$gallery[id]/$foto[id]/]" . lang('фото профиля из альбома') . "[/url]', '2', '$time')");
            }
        }
    }
    $db->query("UPDATE `gallery_foto` SET `avatar` = '0' WHERE `id_user` = '$user[id]'");
    $db->query("UPDATE `gallery_foto` SET `avatar` = '1' WHERE `id` = '$foto[id]' LIMIT 1");

    $_SESSION['message'] = lang('Фотография успешно установлена');
    header("Location: /modules/foto/$ank[id]/$gallery[id]/$foto[id]/");
    exit;
}

if (isset($_GET['act']) && $_GET['act'] == 'edit') {
    if (isset($_GET['rotate']) && ($_GET['rotate'] == 'right' || $_GET['rotate'] == 'left')) {
        $rotate = $_GET['rotate'];

        if ($rotate == 'left') {
            $degrees = 90;
        } else {
            $degrees = 270;
        }

        $file_48 = H . "sys/gallery/48/$foto[id].jpg";
        $source_48 = imagecreatefromjpeg($file_48);
        $rotate_48 = imagerotate($source_48, $degrees, 0);

        imagejpeg($rotate_48, H . "sys/gallery/48/$foto[id].jpg", 90);

        $file_128 = H . "sys/gallery/128/$foto[id].jpg";
        $source_128 = imagecreatefromjpeg($file_128);
        $rotate_128 = imagerotate($source_128, $degrees, 0);

        imagejpeg($rotate_128, H . "sys/gallery/128/$foto[id].jpg", 90);

        $file_640 = H . "sys/gallery/640/$foto[id].jpg";
        $source_640 = imagecreatefromjpeg($file_640);
        $rotate_640 = imagerotate($source_640, $degrees, 0);

        imagejpeg($rotate_640, H . "sys/gallery/640/$foto[id].jpg", 90);

        $file_foto = H . "sys/gallery/foto/$foto[id].jpg";
        $source_foto = imagecreatefromjpeg($file_foto);
        $rotate_foto = imagerotate($source_foto, $degrees, 0);

        imagejpeg($rotate_foto, H . "sys/gallery/foto/$foto[id].jpg", 90);
    }

    if (isset($_GET['ok']) && isset($_POST['name']) && isset($_POST['opis'])) {

        $name = esc(stripcslashes(htmlspecialchars($_POST['name'])), 1);
        if (!preg_match("#^([A-zА-я0-9\-\_\(\)\,\.\ ])+$#ui", $name)) {
            $err = lang('В названии фото присутствуют запрещенные символы');
        }
        if (utf8_strlen($name) < 3) {
            $err = lang('Короткое название');
        }
        if (utf8_strlen($name) > 100) {
            $err = lang('Название не должно быть длиннее 100 символов');
        }
        $name = $db->safesql($name);
        $msg = $_POST['opis'];

        #if (utf8_strlen($msg)<10)$err='Короткое описание';
        if (utf8_strlen($msg) > 10024) {
            $err = lang('Длина описания превышает предел в 10024 символа');
        }
        $msg = $db->safesql($msg);

        if (isset($_POST['adult']) && $_POST['adult'] == 1) {
            $adult = 1;
        } else {
            $adult = 0;
        }

        $komm = $_POST['komm'];

        if (in_array($komm, array('all', 'friends', 'only_me'))) {
            $komm = $komm;
        } else {
            $komm = 'all';
        }

        if (!isset($err)) {
            if ($user['id'] != $ank['id']) {
                admin_log(lang('Фотогалерея'), lang('Фотографии'), lang('Переименование фото пользователя') . " '[url=/id$ank[id]]$ank[nick][/url]'");
            }
            $db->query("UPDATE `gallery_foto` SET `name` = '$name', `opis` = '$msg', `adult` = '$adult', `komm` = '$komm' WHERE `id` = '$foto[id]' LIMIT 1");
            $foto = $db->get_row($db->query("SELECT * FROM `gallery_foto` WHERE `id` = '$foto[id]'  LIMIT 1"));
            $_SESSION['message'] = lang('Изменения сохранены');
            header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/$foto[id]/");
            exit;
        } else {
            $_SESSION['err'] = lang('Изменения не сохранены');
        }
    }
}
