<?php
///////////////////////////////////////////////////////////////////////////////////////////
///Script PHP/MYSQL of management of classifieds ads developed by Script PAG
///Script PAG all rights reserved. Use under license. http://www.script-pag.com
///////////////////////////////////////////////////////////////////////////////////////////

############################################################

require_once __DIR__.'/includes/all_fns.php';
require_once __DIR__.'/template/settings/set_nb_premium.php';

///////////////////////////////////
//Datas search engine
//////////////////////////////////

$search_data = parse_search_url() + $_GET;
unset($search_data['lang']);

if(!empty($search_data['keywords']) && !is_array($search_data['keywords']))
{
	$keywords = trim(htmlspecialchars($search_data['keywords'], ENT_QUOTES));
	$str = array('+', '&#039;', '(', ')', '*');
	$str_replace = array(' ', ' ', ' ', ' ', ' ');
	$keywords_replace = str_replace($str, $str_replace, $keywords);
	$array_keywords = explode(' ', $keywords_replace);
	$array_keywords = replace_accents($array_keywords);
}
else
{
	$keywords = '';
	$array_keywords = '';
}
	
$postcode = !empty($search_data['postcode']) ? trim(htmlspecialchars($search_data['postcode'], ENT_QUOTES)) : 0;
$cat = isset($search_data['cat']) ? htmlspecialchars($search_data['cat']) : 0;
$reg = isset($search_data['reg']) && $search_data['reg'] != 'geoloc_search' ? (int) $search_data['reg'] : (!empty($search_data['reg']) ? $search_data['reg'] : 0);
$county = isset($search_data['county']) ? (int) $search_data['county'] : 0;
$page_number = isset($_GET['page']) && $_GET['page'] <= 0 ? 1 : (isset($_GET['page']) ? (int) $_GET['page'] : 1);
$distance = isset($search_data['distance']) ? (int) $search_data['distance'] : 0;
$status = isset($search_data['status']) && $search_data['status'] != 1 && $search_data['status'] != 2 ? 0 : (isset($search_data['status']) ? (int) $search_data['status'] : 0);
$sort = isset($search_data['sort']) && $search_data['sort'] < 0 && $search_data['sort'] > 4 ? 1 : (isset($search_data['sort']) ? (int) $search_data['sort'] : 1);

///////////////////////////////////
//Type checking
//////////////////////////////////

if(isset($search_data['type']) && $search_data['type'] > 0 && $search_data['type'] <= 5)
{
	$type = (int) $search_data['type'];
	
	if($type == 3 && $param_gen['active_swap'] == 0)
	$type = 1;
	
	if($type == 4 && $param_gen['active_don'] == 0)
	$type = 1;
}
else $type = 1;

///////////////////////////////////
//Get lat and lng saved search
//////////////////////////////////
$search_query_string = get_search_query_string($search_data);
$is_search_account = isset($_SESSION['connect_id']) ? is_acc_search($_SESSION['connect_id'], $search_query_string) : false;
if($is_search_account == true) {
	$search = get_acc_search($search_query_string);
	$visit_latitude = isset($search) && isset($search['visit_latitude']) ? $search['visit_latitude'] : 0;
	$visit_longitude = isset($search) && isset($search['visit_longitude']) ? $search['visit_longitude'] : 0;
}
	
///////////////////////////////////
//Search
//////////////////////////////////

if($type > 0 && $type <= 4)
{
	$type_search = 1;
	
	$sql = make_sql($search_data, $array_keywords, $visit_latitude, $visit_longitude, $distance);
	$options = make_options($search_data);
	
	$nb_ads = get_nb_ads_search($sql['sql_count'], $options);

	$nb_ads['par'] = $nb_ads['count_par'];
	$nb_ads['pro'] = $nb_ads['count_pro'];
	$total = $nb_ads['count_par'] + $nb_ads['count_pro'];
	
	$limit = (int) $param_gen['nb_ads'];

	if($status == 1)
	$limit_page = ceil($nb_ads['par']/$limit);
	
	elseif($status == 2)
	$limit_page = ceil($nb_ads['pro']/$limit);
	
	else $limit_page = ceil($total/$limit);
	
	if($limit_page > 0 && $page_number > $limit_page)
	$page_number = $limit_page;
	
	$offset = ($page_number - 1) * $limit;
	
	$search_array = get_ads_search($sql['sql'], $options, $status, $offset, $limit, $sort, 0);

	//Get premium ads
	if($param_gen['active_prem'] == 1)
	{
		redirect(URL .'/premium-activated');
	}
}
else redirect(URL);

///////////////////////////////////
//Get all page slug language
//////////////////////////////////

$lang_slug = get_page_slugs(array(array('router_slug_search_ads', 'router_slug_search_shops'), array('router_slug_search_type1', 'router_slug_search_type2', 'router_slug_search_type3', 'router_slug_search_type4')));

///////////////////////////////////
//Urls listing infos
//////////////////////////////////

$url_sort = URL_DISPLAY.'/search.php?'.$search_query_string;
$url_status = URL_DISPLAY.'/search.php?'.$search_query_string;

if(preg_match('#&sort='. $sort .'#', $url_sort))
$url_sort = str_replace('&sort='. $sort, '', $url_sort);

if(preg_match('#&status='. $status .'#', $url_status))
$url_status = str_replace('&status='. $status, '', $url_status);

$start_ads = ($page_number * $limit) - $limit + 1;
$end_ads = $limit * $page_number;

///////////////////////////////////
//Urls pagination infos
//////////////////////////////////

$url_pagination = URL_DISPLAY.'/search.php?'.$search_query_string;
	    
if(preg_match('#&page='. $page_number .'#', $url_pagination))
$url_pagination = str_replace('&page='. $page_number, '', $url_pagination);

$max_page_view = 9;
$max_page_limit_view = floor($max_page_view/2);

///////////////////////////////////
//Session for advertisement
//////////////////////////////////

$count_adv = 1;
	
if(!isset($_SESSION['count_adv']))
$_SESSION['count_adv'] = 1;

///////////////////////////////////
//Get selected ad
//////////////////////////////////

$ad_selected = [];
	
foreach($_COOKIE as $k => $v)
{
	if(preg_match("#Script_PAG#", $v) == true)
	{
		$v = str_replace('Script_PAG', '', $v);
		$v = (int) $v;
	}
	else $v = 0;
	
	if($v != 0)
	$ad_selected[$v] = 1;
}

///////////////////////////////////
//Variables of search engine
//////////////////////////////////

$action_search = URL_DISPLAY.'/search.php';
$value_search = $type_search == 1 ? $language['value_search'] : $language['value_search_shop'];
$listing_search = $type_search;

///////////////////////////////////
//Get if exist urgent option
//////////////////////////////////

$display_urgent = get_urgent_opt();

///////////////////////////////////
//Variables of elements
//////////////////////////////////

$account = 0;
$index = 0;
$similar = 0;

///////////////////////////////////
//Title, Meta and text
//////////////////////////////////

$cat_name = name_cat(htmlspecialchars($cat));
$reg_name = $reg != 'geoloc_search' ? name_region($reg) : '';
$county_name = name_county($county);
$cat_name_title = !empty($cat_name) ? ' - '. $cat_name : '';
$reg_name_title = !empty($reg_name) ? ' - '. $reg_name : '';
$county_name_title = !empty($county_name) ? ' - '. $county_name : ''; 
$description = $language['description_page_search'];
$words = $language['keywords_page_search'];
$title_listing = $type_search == 1 ? $language['title_page_search'] : $language['search_shop_title'];
$title_listing_infos = $title_listing . $cat_name_title . $reg_name_title . $county_name_title;
$title = $title_listing . $cat_name_title . $reg_name_title . $county_name_title .' - '. $param_gen['name'];
$text = $type_search == 1 ? $language['not_ad'] : $language['not_shop'];

///////////////////////////////////
//Mention enable
//////////////////////////////////

if($param_gen['active_mention'])
redirect(URL .'/mention-enabled');

if($param_api_gg['activ_gg_map'])
redirect(URL .'/gg-map-enabled');

///////////////////////////////////
//Display view
//////////////////////////////////

pool::execute('beforestart');

$view = array();
$view[] = 'template/tpl_search_results.php';
$view[] = 'template/tpl_categories.php';

require_once __DIR__.'/template/tpl_layout.php';