<?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
///////////////////////////////////////////////////////////////////////////////////////////

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

///////////////////////////////////
///Opening session
//////////////////////////////////

ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '1');
ini_set('session.use_trans_sid', '0');
ini_set('url_rewriter.tags', ''); 
ini_set('display_errors', '1');

session_start();

///////////////////////////////////
///Delete ScriptPAG V10 valid_cookies values
//////////////////////////////////

if(isset($_COOKIE['valid_cookies']) && $_COOKIE['valid_cookies'] == 1) {
	setcookie('valid_cookies');
	unset($_COOKIE['valid_cookies']);
}

///////////////////////////////////
///Include function files
//////////////////////////////////

require_once __DIR__.'/functions/fns_security/fns_sc.php';
require_once __DIR__.'/configuration.php';
require_once __DIR__.'/cache/all_cache.php';
require_once __DIR__.'/fns_modules.php';
require_once __DIR__.'/fns_data.php'; 
require_once __DIR__.'/fns_form.php';
require_once __DIR__.'/fns_mail.php';
require_once __DIR__.'/fns_search.php';
require_once __DIR__.'/fns_sql.php';
require_once __DIR__.'/fns_sql_global.php';

///////////////////////////////////
///URL language
//////////////////////////////////

$url_lang = (!empty($_GET['lang'])) ? '/'. $_GET['lang'] : '';
@define('URL_DISPLAY', URL . $url_lang);

///////////////////////////////////
///Retrieving the current url
//////////////////////////////////

$file_ex = str_replace(preg_replace('#(https||http)#', '', URL).'/', '', get_uri());

///////////////////////////////////
///Do not redirect if we are on sitemap
//////////////////////////////////

if(isset($_GET['lang']) && strpos($_SERVER['REQUEST_URI'], 'sitemap'))
redirect(URL .'/'.  $file_ex);

///////////////////////////////////
///Detect browser language
//////////////////////////////////

if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

else $language = '';

if(!isset($_POST['code_lang']) && !isset($_SESSION['code_lang']) && !isset($_GET['lang']) && !empty($language))
{
	$i = 0;
	
	$default_name = '';
	$default_code = '';
	
	foreach($cache_lang as $v)
	{
		$name_lang = stripslashes(htmlspecialchars($v['name_lang'], ENT_QUOTES));
		$code_lang = stripslashes(htmlspecialchars($v['code_lang'], ENT_QUOTES));
		$position = (int) $v['position'];
		$active = (int) $v['active'];
		
		if($language == $code_lang && $active == 1)
		{
			$_SESSION['name_lang'] = $name_lang;
			$_SESSION['code_lang'] = $code_lang;
		}
		
		if($position == 1)
		{
			$default_name = $name_lang;
			$default_code = $code_lang;
		}
		
		if($active == 1)
		$i++;
	}
	
	$_SESSION['name_lang'] = isset($_SESSION['name_lang']) ? $_SESSION['name_lang'] : $default_name;
	$_SESSION['code_lang'] = isset($_SESSION['code_lang']) ? $_SESSION['code_lang'] : $default_code;
	
	if($i > 1 && $language == $_SESSION['code_lang'] && !strpos($_SERVER['REQUEST_URI'], 'includes/functions/uploader'))
	redirect(URL .'/'. $language .'/'. $file_ex);
}

///////////////////////////////////
///Redirect if multiple languages or not
//////////////////////////////////

if(!isset($_POST['code_lang']) && !isset($_GET['lang'])) {
	
	$multiple_lang = 0;
	
	$default_name = '';
	$default_code = '';
	
	foreach($cache_lang as $v)
	{
		$name_lang = stripslashes(htmlspecialchars($v['name_lang'], ENT_QUOTES));
		$code_lang = stripslashes(htmlspecialchars($v['code_lang'], ENT_QUOTES));
		$position = (int) $v['position'];
		$active = (int) $v['active'];
		
		if($position == 1)
		{
			$default_name = $name_lang;
			$default_code = $code_lang;
		}
		
		if($active == 1)
		$multiple_lang++;
	}
	
	if(!isset($_SESSION['code_lang'])) {
		$_SESSION['name_lang'] = isset($_SESSION['name_lang']) ? $_SESSION['name_lang'] : $default_name;
		$_SESSION['code_lang'] = isset($_SESSION['code_lang']) ? $_SESSION['code_lang'] : $default_code;
	}
	
	if($multiple_lang > 1 && $_SESSION['code_lang'] && !strpos($_SERVER['REQUEST_URI'], 'sitemap') && !strpos($_SERVER['REQUEST_URI'], 'invoice') && !strpos($_SERVER['REQUEST_URI'], 'sitemap') && !strpos($_SERVER['REQUEST_URI'], 'includes/functions/uploader'))
	redirect(URL .'/'. $_SESSION['code_lang'] .'/'. $file_ex);
}
else {
	
	$multiple_lang = 0;
	
	$default_name = '';
	$default_code = '';
	
	foreach($cache_lang as $v)
	{
		$name_lang = stripslashes(htmlspecialchars($v['name_lang'], ENT_QUOTES));
		$code_lang = stripslashes(htmlspecialchars($v['code_lang'], ENT_QUOTES));
		$position = (int) $v['position'];
		$active = (int) $v['active'];
		
		if($language == $code_lang && $active == 1)
		{
			$_SESSION['name_lang'] = $name_lang;
			$_SESSION['code_lang'] = $code_lang;
		}
		
		if($position == 1)
		{
			$default_name = $name_lang;
			$default_code = $code_lang;
		}
		
		if($active == 1)
		$multiple_lang++;
	}
	
	$_SESSION['name_lang'] = isset($_SESSION['name_lang']) ? $_SESSION['name_lang'] : $default_name;
	$_SESSION['code_lang'] = isset($_SESSION['code_lang']) ? $_SESSION['code_lang'] : $default_code;
	
	if($multiple_lang == 1 && !strpos($_SERVER['REQUEST_URI'], 'includes/functions/uploader'))
	redirect(URL  .'/'. $file_ex);
}

///////////////////////////////////
///Managing the language call
//////////////////////////////////

if(isset($_POST['code_lang']))
{
	foreach($cache_lang as $v)
	{
		$name_lang = stripslashes(htmlspecialchars($v['name_lang'], ENT_QUOTES));
		$code_lang = stripslashes(htmlspecialchars($v['code_lang'], ENT_QUOTES));
		$position = (int) $v['position'];
		$active = (int) $v['active'];
		
		if($_POST['code_lang'] == $code_lang && $active == 1)
		{
			require_once('language/'. $name_lang .'.php');
	
			$_SESSION['name_lang'] =  $name_lang;
			$_SESSION['code_lang'] =  $code_lang;
		}
		elseif($_GET['lang'] == $code_lang && $active == 0)
		{
			if($position == 1)
			{
				require_once('language/'. $name_lang .'.php');
		
				$_SESSION['name_lang'] =  $name_lang;
				$_SESSION['code_lang'] =  $code_lang;
			}
			
			redirect(URL .'/');
		}
	}
}
elseif(isset($_GET['lang']))
{
	foreach($cache_lang as $v)
	{
		$name_lang = stripslashes(htmlspecialchars($v['name_lang'], ENT_QUOTES));
		$code_lang = stripslashes(htmlspecialchars($v['code_lang'], ENT_QUOTES));
		$position = (int) $v['position'];
		$active = (int) $v['active'];
	
		if($_GET['lang'] == $code_lang && $active == 1)
		{
			require_once('language/'. $name_lang .'.php');
	
			$_SESSION['name_lang'] =  $name_lang;
			$_SESSION['code_lang'] =  $code_lang;
		}
		elseif($_GET['lang'] == $code_lang && $active == 0)
		{
			if($position == 1)
			{
				require_once('language/'. $name_lang .'.php');
		
				$_SESSION['name_lang'] =  $name_lang;
				$_SESSION['code_lang'] =  $code_lang;
			}
			
			redirect(URL .'/');
		}
	}
}
elseif(isset($_SESSION['code_lang']))
{
	require_once('language/'. $_SESSION['name_lang'] .'.php');
}
else
{
	foreach($cache_lang as $v)
	{
		$name_lang = stripslashes(htmlspecialchars($v['name_lang'], ENT_QUOTES));
		$code_lang = stripslashes(htmlspecialchars($v['code_lang'], ENT_QUOTES));
		$position = (int) $v['position'];
	
		if($position == 1)
		{
			require_once('language/'. $name_lang .'.php');
			
			$_SESSION['name_lang'] =  $name_lang;
			$_SESSION['code_lang'] =  $code_lang;
		}
	}
}
	
///////////////////////////////////
///Connect to the database
//////////////////////////////////

$conn = db_connect();

///////////////////////////////////
///Retrieving the number of ads in the selection
//////////////////////////////////

if(!isset($_SESSION['nb_ad_selection']))
$_SESSION['nb_ad_selection'] = get_selected_number();

///////////////////////////////////
///Disclaimer session
//////////////////////////////////

if(isset($_POST['disc']) && $_POST['disc'] == '1')
$_SESSION['disc'] = 1;

///////////////////////////////////
///Trim on POST data
//////////////////////////////////

function array_trim($array) {
	$trimed = array();
	foreach($array as $key => $elt) $trimed[$key] = is_array($elt) ? array_trim($elt) : trim($elt); 
	return $trimed;
}
if(count($_POST) > 0) {
	$_POST = array_trim($_POST);
}

///////////////////////////////////
///Site under maintenance
//////////////////////////////////

if($cache_maintenance['active'] == 1 && slug() != 'maintenance.php')
{
	$authorized = false;
	
	if(isset($_SESSION['valid_admin']))
	$authorized = true;
	
	else { 
		$ip_authorized = explode(',', $cache_maintenance['ip']);

		foreach($ip_authorized as $ip_authorized)
		{
			$ip_authorized = trim($ip_authorized);
			
			if($_SERVER['REMOTE_ADDR'] == $ip_authorized)
			{
				$authorized = true;
				break;
			}
			
		}
	}
	
	if(!$authorized)
	redirect('maintenance.php');
}

///////////////////////////////////
///Geolocation check
//////////////////////////////////

$visit_latitude = 0;
$visit_longitude = 0;

if(isset($_SESSION["pag_latitude"]))
$visit_latitude = $_SESSION["pag_latitude"];
	
if(isset($_SESSION["pag_longitude"]))
$visit_longitude = $_SESSION["pag_longitude"];

///////////////////////////////////
//Get the infos of the connected member
//////////////////////////////////

$member = (isset($_SESSION['connect_id'])) ? get_info_member($_SESSION['connect_id']) : '';