<?php

class Home extends Base {

public static function index() {


    $new = Flight::db()->query("
        SELECT video.*, category.*, video.name AS vName, category.name AS cName, video.url AS vURL, category.url AS cURL
        FROM video LEFT JOIN category ON category.id = video.catid ORDER BY video.id DESC LIMIT " . NEWVIDEO)
        ->fetchAll();




$category = Flight::db()
->query("SELECT * FROM `category` ORDER BY `pos` DESC")
->fetchAll();

    
    foreach ($category as $key => $cat) {
        
        $count = Flight::db()->query("
            SELECT COUNT(*) AS `total`,
            (SELECT COUNT(*) FROM `video` WHERE `date_upload` >= '".(time()-(3600*24*1))."' && catid = '".$cat['id']."') AS `today`,
            (SELECT COUNT(*) FROM `video` WHERE (date_upload >= '".(time() - 86400 * 2)."' && date_upload <= '".(time() - 86400)."') && catid = '".$cat['id']."') AS `yesterday`,
            (SELECT COUNT(*) FROM `video` WHERE date_upload >= '".(time() - 86400 * 7)."' && catid = '".$cat['id']."') AS `ned`
            FROM `video` WHERE catid = '".$cat['id']."'")->fetch();   
             
        if (!empty($count['today'])) {
            $category[$key]['count'] = '(' . $count['total'] . ') <span style="color: red;">+' . $count['today'] . ' </span>';
        } else if (!empty($count['yesterday'])) {
            $category[$key]['count'] = '(' . $count['total'] . ') <span style="color: blue;">+' . $count['yesterday'] . ' </span>';
        } else if (!empty($count['ned'])) {
            $category[$key]['count'] = '(' . $count['total'] . ') <span style="color: green;">+' . $count['ned'] . ' </span>';
        } else {
            $category[$key]['count'] = '(' . $count['total'] . ')';
        }

    }
    
        $count_fo = Flight::db()->query("
            SELECT COUNT(*) AS `total`,
            (SELECT COUNT(*) FROM `fo_video` WHERE `date_upload` >= '".(time()-(3600*24*1))."') AS `today`,
            (SELECT COUNT(*) FROM `fo_video` WHERE date_upload >= '".(time() - 86400 * 2)."' && date_upload <= '".(time() - 86400)."') AS `yesterday`
            FROM `fo_video`")->fetch(); 
            
        $count_fo_str = '(' . $count_fo['total'] . ')';
        $count_fo_str .= (!empty($count_fo['today']) ? ' <span style="color: red;">+' . $count_fo['today'] . '</span>' : NULL);
        $count_fo_str .= (!empty($count_fo['yesterday']) ? ' <span style="color: blue;">+' . $count_fo['yesterday'] . '</span>' : NULL);

parent::view('home/index', [
'title'      => 'Лучшее порно скачать на телефон, смотреть порно онлайн бесплатно',
'new_video'  => $new,
'rate'      => parent::videoRate(),
'category'   => $category,
'count_fo' => $count_fo_str,
'rand'      => parent::videoRand(),
'description' => '',
'keywords'    => ''
]);
}

public static function video($url) {

$result = Flight::db()->prepare("SELECT * FROM `video` WHERE url = :url");
$result->bindValue(":url", $url, PDO::PARAM_STR);
$result->execute(); 
$q = $result->fetch(PDO::FETCH_ASSOC);    

if ($q) {
    /* Рейтинг */
    $check = Flight::db()
    ->query("SELECT id FROM `rating_list` WHERE ip = '{$_SERVER['REMOTE_ADDR']}' && video_id = '{$q['id']}'")
    ->fetchAll();
    
    /* Счетчик рейтинга (+ и -)*/
    $total_plus = Flight::db()
    ->query("SELECT id FROM `rating_list` WHERE video_id = '{$q['id']}' && type = 'plus'")
    ->fetchAll();
    $total_plus = count($total_plus);
    
    $total_minus = Flight::db()
    ->query("SELECT id FROM `rating_list` WHERE video_id = '{$q['id']}' && type = 'minus'")
    ->fetchAll();
    $total_minus = count($total_minus);
    
    if (isset($_GET['rating']) && in_array($_GET['rating'], array('plus', 'minus'))) {
        if (empty($check)) {
            $updRating = ($_GET['rating'] == 'plus' ? ($q['rating'] + 1) : ($q['rating'] - 1));
            $typeRating = ($_GET['rating'] == 'plus' ? 'plus' : 'minus');
            Flight::db()
            ->query("UPDATE `video` SET `rating` = '{$updRating}' WHERE `id` = {$q['id']}");
            
            Flight::db()->query("
                INSERT INTO `rating_list`
                (video_id, type, date, ip)
                VALUES
                ('{$q['id']}', '{$typeRating}', UNIX_TIMESTAMP(), '{$_SERVER['REMOTE_ADDR']}')
                ");
                
            $message = 'Вы успешно проголосовали ' . ($typeRating == 'plus' ? '+1' : '-1');
        } else {
            $message = 'Вы уже голосовали за это видео';
        }
    } else {
        $message = null;
    } 
    
if (Flight::request()->cookies->uniq != $q['id']) {

    /* Статистика просмотров */
    $stat = Flight::db()
            ->query("SELECT * FROM `statistics`")
            ->fetch();
            
    $todate = date("Y-m-d"); // Текущая дата
    
    if ($stat['date'] != $todate) {
        // Записываем на ВЧЕРА
        Flight::db()
            ->query("UPDATE `statistics` SET 
            `views_yesterday` = '{$stat['views_today']}', 
            `views_today` = 0, 
            
            `loads_yesterday` = '{$stat['loads_today']}', 
            `loads_today` = 0, 
            
            `online_yesterday` = '{$stat['online_today']}', 
            `online_today` = 0, 
            
            date = NOW()");
    }
    
    //Скачиваний за сегодня
    Flight::db()
        ->query("UPDATE `statistics` SET `views_today` = views_today + 1"); 
        
Flight::db()
->query("UPDATE `video` SET `view_count` = `view_count` + 1 WHERE `id` = {$q['id']}");

setcookie('uniq', $q['id'], time() + 3600 * 24, '/');

}


parent::view('home/video', [
'video'       => $q,
'title'       => $q['name'],
'description' => $q['description'],
'keywords'    => $q['keywords'],
'rands'       => parent::videoRand(),
'message'     => $message,
'check_rating' => (empty($check) ? 0 : 1),
'rating_plus' => $total_plus,
'rating_minus' => $total_minus
]);
} else Flight::redirect('/');

}

public static function categories($url = '', $page) {
    
$result = Flight::db()->prepare("SELECT * FROM `category` WHERE url = :url");
$result->bindValue(":url", $url, PDO::PARAM_STR);
$result->execute(); 
$q = $result->fetch(PDO::FETCH_ASSOC);

if ($q) {
$p = Flight::page();

$pages = $p->menu('video', '/category/' . $q['url'], $page, "WHERE `catid` = {$q['id']}");

$v = Flight::db()
->query("SELECT * FROM `video` WHERE `catid` = {$q['id']} ORDER BY `id` DESC ".$p->limit())
->fetchAll();

parent::view('home/category', [
'video'       => $v,
'title'       => $q['name'],
'description' => $q['description'],
'keywords'    => $q['keywords'],
'pagination'  => $pages,
'top_type'    => null,
'nav'         => null
]);

} else Flight::redirect('/');
}

public static function statistics() {
    
    $total['category'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `category`")
        ->fetchColumn();
        
    $total['video'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `video`")
        ->fetchColumn();
        
    $total['video_load_count'] = Flight::db()
        ->query("SELECT SUM(load_count) FROM `video`")
        ->fetchColumn();
        
    $total['video_view_count'] = Flight::db()
        ->query("SELECT SUM(view_count) FROM `video`")
        ->fetchColumn();
        
    $total['video_size_count'] = Flight::db()
        ->query("SELECT SUM(size_mp4) FROM `video`")
        ->fetchColumn() 
        + 
        Flight::db()
        ->query("SELECT SUM(size_3gp) FROM `video`")
        ->fetchColumn();
        
    $stat = Flight::db()
        ->query("SELECT * FROM `statistics`")
        ->fetch();
        
    $online = Flight::db()
        ->query("SELECT COUNT(*) FROM `online`")
        ->fetchColumn();

    $video_upload_yesterday = Flight::db()
        ->query("SELECT COUNT(*) FROM `video` WHERE (date_upload >= '".(time() - 86400 * 2)."' && date_upload <= '".(time() - 86400)."')")
        ->fetchColumn();
        
    $video_upload_today = Flight::db()
        ->query("SELECT COUNT(*) FROM `video` WHERE date_upload > '".(time()-(3600*24*1))."'")
        ->fetchColumn();
        
    $votes = Flight::db()->query("
            SELECT COUNT(*) AS `all`,
            (SELECT COUNT(*) FROM `rating_list` WHERE `type` = 'plus') AS `plus`,
            (SELECT COUNT(*) FROM `rating_list` WHERE `type` = 'minus') AS `minus`
            FROM `rating_list`")->fetch(); 
            
            
     /* обменник*/
        $total['fo_video_total'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `fo_video`")
        ->fetchColumn();
        
        $total['fo_video_today'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `fo_video` WHERE date_upload > '".(time()-(3600*24*1))."'")
        ->fetchColumn();
        
        $total['fo_video_yesterday'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `fo_video` WHERE (date_upload >= '".(time() - 86400 * 2)."' && date_upload <= '".(time() - 86400)."')")
        ->fetchColumn();
        
        $total['fo_video_moderation'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `fo_video` WHERE moderation = '1'")
        ->fetchColumn();
        
        $total['fo_comments_total'] = Flight::db()
        ->query("SELECT COUNT(*) FROM `fo_comments`")
        ->fetchColumn();
        
        $total['fo_video_size'] = Flight::db()
        ->query("SELECT SUM(size) FROM `fo_video`")
        ->fetchColumn();
        
        $total['size_total'] = $total['fo_video_size'] + $total['video_size_count'];
          
        
     parent::view('home/statistics', [
        'total' => $total,
        'stat' => $stat,
        'online' => $online,
        'video_upload_yesterday' => $video_upload_yesterday,
        'video_upload_today' => $video_upload_today,
        'votes' => $votes,
        'title'       => 'Статистика сайта',
        'description' => '',
        'keywords'    => ''
     ]);
}

public static function search($page) {

    $result = array();
    $pages = null;

    if (isset($_POST['q'], $_POST['type'])) {
        $type = ($_POST['type'] == 'name' ? 'name' : 'description');
        $query = htmlspecialchars(trim($_POST['q']));
        
        $_SESSION['s_type'] = $type;
        $_SESSION['s_query'] = $query;   
    } else if (isset($_SESSION['s_type'], $_SESSION['s_query'])) {
        $type = $_SESSION['s_type'];
        $query = $_SESSION['s_query'];        
    }
    
    if (!empty($type) && !empty($query)) {
        
        $p = Flight::page();
        $pages = $p->menu('video', '/search', $page, 0, PAGES, 0, 0, 'search'); 
             
        $v = Flight::db()->prepare("SELECT video.*, category.*, category.url AS categoryURL, video.url AS videoURL, video.name AS videoNAME FROM `video` LEFT JOIN category ON category.id = video.catid WHERE video.{$type} LIKE CONCAT('%', :search, '%')".$p->limit());
        $v->execute(array(':search' => $query));
        
        $result = $v->fetchAll();
    
     }   
     if (!count($result)) {
        $pages = null;
     }
          
     parent::view('home/search', [
        'video'       => $result,
        's_query'     => (!empty($query) ? $query : NULL),
        's_type'      => (!empty($type) ? $type : NULL),
        'title'       => (!empty($query) ? 'Поиск по запросу: ' . $query : 'Поиск ххх видео'),
        'description' => 'Поиск порно видео, бесплатный поиск секс видео и скачать на телефон, порно архив mp4 и 3gp, смотреть качественное порно ролики',
        'keywords'    => 'поиск , секс, ххх, видео, смотреть, трах, порнуха, трахаются, искать, секс, ищу, видео, секс, скачать, порно, видео, из, я, архив, ххх, секс, голые, горячее, секс, девушки на, телефон, смартфон, голые',
        'pagination'  => $pages,
        'top_type'    => 'search',
        'nav'         => null
     ]);
}


public static function top($sort, $page) {
    
    switch ($sort) {
        
        case 'new':
            $p = Flight::page();
            
            $pages = $p->menu('video', '/top/new', $page);
            
            $v = Flight::db()
            ->query("SELECT video.*, category.*, category.url AS categoryURL, video.url AS videoURL, video.name AS videoNAME FROM `video` LEFT JOIN category ON category.id = video.catid ORDER BY video.id DESC ".$p->limit())
            ->fetchAll();
            
            parent::view('home/category', [
            'video'       => $v,
            'title'       => 'Новые новинки порно видео только лучшее ххх видео',
            'description' => 'Свежие новые порно ролики, смотреть новейшие секс видео, новые порно видео из всех категории, Новинки эротика, скачать и смотреть порно mp4 и 3gp,',
            'keywords'    => 'свежие, новые, видео, секс, новинки, трах, порнуха, новейшие, Все, порно, видео, сайта, скачать, порно, видео, архив, mp4, 3gp, ххх, секс, голые, горячее, секс, на, телефон, смартфон, порнушка, для, мобилки',
            'pagination'  => $pages,
            'top_type'    => 'new',
            'nav'         => '<div class="new"><b>Показать самые:</b> <a href="/top/views/">Просматриваемые</a> / <a href="/top/down/">Скачиваемые</a> / <a href="/top/rating/">Популярные</a> / Новые</div>'
            ]);        
            break;
        
        case 'views':
            $p = Flight::page();
            
            $pages = $p->menu('video', '/top/views', $page);
            
            $v = Flight::db()
            ->query("SELECT video.*, category.*, category.url AS categoryURL, video.url AS videoURL, video.name AS videoNAME FROM `video` LEFT JOIN category ON category.id = video.catid ORDER BY video.view_count DESC ".$p->limit())
            ->fetchAll();
            
            parent::view('home/category', [
            'video'       => $v,
            'title'       => 'Просматриваемые порно видео',
            'description' => 'Самые просматриваемые порно видео, порно видео которые больше всего просмотривают онлайн, огромное количество ххх файлов, порно архив mp4 и 3gp,',
            'keywords'    => 'просматриваемые порно видео, популярные онлайн видео, порно, видео, ххх, сайта,  скачать, порно, видео, из, сайта, порнотвточкасу, архив, ххх, секс, голые, горячее, секс',
            'pagination'  => $pages,
            'top_type'    => 'views',
            'nav'         => '<div class="new"><b>Показать самые:</b> Просматриваемые / <a href="/top/down/">Скачиваемые</a> / <a href="/top/rating/">Популярные</a> / <a href="/top/new/">Новые</a></div>'
            ]);
            break;
            
        case 'down':
            $p = Flight::page();
            
            $pages = $p->menu('video', '/top/down', $page);
            
            $v = Flight::db()
            ->query("SELECT video.*, category.*, category.url AS categoryURL, video.url AS videoURL, video.name AS videoNAME FROM `video` LEFT JOIN category ON category.id = video.catid ORDER BY video.load_count DESC ".$p->limit())
            ->fetchAll();
            
            parent::view('home/category', [
            'video'       => $v,
            'title'       => 'Скачиваемые ххх видео',
            'description' => 'Самые скачиваемые порно видео, самые лучшие видео которое скачивают на pornotv.su скачать порно архив mp4 и 3gp,',
            'keywords'    => 'Все, скачиваемые, скачали, порно, видео, сайта, pornotv, su, скачать, порно, видео, из, сайта, порнотвточкасу, архив, ххх, секс, голые, горячее, секс, смартфон,',
            'pagination'  => $pages,
            'top_type'    => 'down',
            'nav'         => '<div class="new"><b>Показать самые:</b> <a href="/top/views/">Просматриваемые</a> / Скачиваемые / <a href="/top/rating/">Популярные</a> / <a href="/top/new/">Новые</a></div>'
            ]);
            break;
            
        default:
            $p = Flight::page();
            
            $pages = $p->menu('video', '/top/rating', $page);
            
            $v = Flight::db()
            ->query("SELECT video.*, category.*, category.url AS categoryURL, video.url AS videoURL, video.name AS videoNAME FROM `video` LEFT JOIN category ON category.id = video.catid ORDER BY video.rating DESC ".$p->limit())
            ->fetchAll();
            
            parent::view('home/category', [
            'video'       => $v,
            'title'       => 'Самые популярные порно видео лучшее ххх',
            'description' => 'ТОП рейтинговые порно видео сайта pornotv, все порно видео из всех категории, отборные рейтинговые порно видео на PornoTV.su огромное количество ххх файлов, порно архив',
            'keywords'    => 'все,порно, видео, сайта, топ, отборные, качественные, рейтинговые, рейтинг, класс, супер, pornotv, su, скачать, порно, видео, из, сайта, порнотвточкасу, архив, ххх',
            'pagination'  => $pages,
            'top_type'    => 'rating',
            'nav'         => '<div class="new"><b>Показать самые:</b> <a href="/top/views/">Просматриваемые</a> / <a href="/top/down/">Скачиваемые</a> / Популярные / <a href="/top/new/">Новые</a></div>'
            ]);
            break;
        
    }
    
}

public static function downmp4($id) {

$result = Flight::db()->prepare("SELECT * FROM `video` WHERE id = :id");
$result->bindValue(":id", $id, PDO::PARAM_INT);
$result->execute(); 
$q = $result->fetch(PDO::FETCH_ASSOC);        

if ($q) {
    
    /* Статистика скачиваний */
    $stat = Flight::db()
            ->query("SELECT * FROM `statistics`")
            ->fetch();
            
    $todate = date("Y-m-d"); // Текущая дата
    
    if ($stat['date'] != $todate) {
        // Записываем на ВЧЕРА
        Flight::db()
            ->query("UPDATE `statistics` SET 
            
            `views_yesterday` = '{$stat['views_today']}', 
            `views_today` = 0, 
            
            `loads_yesterday` = '{$stat['loads_today']}', 
            `loads_today` = 0, 
            
            `online_yesterday` = '{$stat['online_today']}', 
            `online_today` = 0, 
            
             date = NOW()
            
            ");
    }
    
    //Скачиваний за сегодня
    Flight::db()
        ->query("UPDATE `statistics` SET `loads_today` = loads_today + 1"); 
    
Flight::db()
->query("UPDATE `video` SET `last_load` = UNIX_TIMESTAMP(), `load_count` = `load_count` + 1 WHERE `id` = {$q['id']}");

Flight::redirect('/public/video/'.$q['filename'].'.mp4');

} else Flight::redirect('/');

}

public static function down3gp($id) {

$result = Flight::db()->prepare("SELECT * FROM `video` WHERE id = :id");
$result->bindValue(":id", $id, PDO::PARAM_INT);
$result->execute(); 
$q = $result->fetch(PDO::FETCH_ASSOC);  

if ($q) {

    /* Статистика скачиваний */
    $stat = Flight::db()
            ->query("SELECT * FROM `statistics`")
            ->fetch();
            
    $todate = date("Y-m-d"); // Текущая дата
    
    if ($stat['date'] != $todate) {
        // Записываем на ВЧЕРА
        Flight::db()
            ->query("UPDATE `statistics` SET 
            
            `views_yesterday` = '{$stat['views_today']}', 
            `views_today` = 0, 
            
            `loads_yesterday` = '{$stat['loads_today']}', 
            `loads_today` = 0, 
            
            `online_yesterday` = '{$stat['online_today']}', 
            `online_today` = 0, 
            
             date = NOW()
            
            ");
    }
    
    //Скачиваний за сегодня
    Flight::db()
        ->query("UPDATE `statistics` SET `loads_today` = loads_today + 1"); 
    
Flight::db()
->query("UPDATE `video` SET `last_load` = UNIX_TIMESTAMP(), `load_count` = `load_count` + 1 WHERE `id` = {$q['id']}");
Flight::redirect('/public/video/'.$q['filename'].'.3gp');

} else Flight::redirect('/');

}

public static function views($id) {

$result = Flight::db()->prepare("SELECT * FROM `video` WHERE id = :id");
$result->bindValue(":id", $id, PDO::PARAM_INT);
$result->execute(); 
$q = $result->fetch(PDO::FETCH_ASSOC);  

if ($q) {

parent::view('home/view', [
'title'       => $q['name'],
'description' => $q['description'],
'keywords'    => $q['keywords'],
'video'       => $q
]);

} else Flight::redirect('/');

}

}

