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

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

///////////////////////////////////
///Test if the cookie is alloweb by the user
//////////////////////////////////

function is_allowed_cookie($cookiename) {
	$result = false;
	if(isset($_COOKIE['valid_cookies'])) {
		$spcookies = unserialize($_COOKIE['valid_cookies']);
		if($spcookies == 'all') {
			$result = true;
		} else if(isset($spcookies[$cookiename])) {
			$result = $spcookies[$cookiename] == 1 ? true : false;
		}
	}
	return $result;
}

///////////////////////////////////
///Redirection function
//////////////////////////////////

function redirect($location)
{
	header('location: '. $location);
	exit();
}

///////////////////////////////////
///Get slug
//////////////////////////////////

function slug()
{
	$uri = get_uri();
	$uri = strpos($uri, '?') > -1 ? substr($uri, 0, stripos($uri, '?')) : ($uri === '' ? 'index.php' : $uri);
	$uri = $uri === '' ? 'index.php' : $uri;
	$slug = explode('/', $uri);
	if(preg_match('#cron_(.*)+\\.php#ui', $uri)) {
		$result = $uri;
	} else $result = $slug[0] == 'includes' && sizeof($slug) > 2 ? implode('/', $slug) : $slug[0];
	return $result;
}

///////////////////////////////////
///Email verification function
//////////////////////////////////

function valid_email($address)
{
	$str = "#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,10}$#";
	$result = preg_match($str, $address);
	
	if($result)
	return true;
	
	else return false;
}

///////////////////////////////////
///Replace accents
//////////////////////////////////

function replace_accents($value)
{
	$accent = array('à', 'á', 'â', 'ã', 'ä', 'å', 'ă', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'ç', 'Ç', 'é', 'è', 'ê', 'ë', 'È', 'É', 'Ê', 'Ë', 'ì', 'í', 'î', 'ï', 'Ì', 'Í', 'Î', 'Ï', 'ò', 'ó', 'ô', 'õ', 'ö', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'ù', 'ú', 'û', 'ü', 'Ú', 'Ù', 'Û', 'Ü', 'Ý', 'ý', 'ÿ', 'ñ', 'Ñ');
	$without_accent = array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'A', 'c', 'C', 'e', 'e', 'e', 'e', 'E', 'E', 'E', 'E', 'i', 'i', 'i', 'i', 'I', 'I', 'I', 'I', 'o', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'O', 'u', 'u', 'u', 'u', 'U', 'U', 'U', 'U', 'y', 'y', 'y', 'n', 'N');      
	
	$value = str_replace($accent, $without_accent, $value);

	return $value;
}

///////////////////////////////////
///Url rewriting
//////////////////////////////////

function rewriting($value)
{
	$accent = array('à', 'á', 'â', 'ã', 'ä', 'å', 'ă', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'ç', 'Ç', 'é', 'è', 'ê', 'ë', 'È', 'É', 'Ê', 'Ë', 'ì', 'í', 'î', 'ï', 'Ì', 'Í', 'Î', 'Ï', 'ò', 'ó', 'ô', 'õ', 'ö', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'ù', 'ú', 'û', 'ü', 'Ú', 'Ù', 'Û', 'Ü', 'Ý', 'ý', 'ÿ', 'ñ', 'Ñ');
	$without_accent = array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'A', 'c', 'C', 'e', 'e', 'e', 'e', 'E', 'E', 'E', 'E', 'i', 'i', 'i', 'i', 'I', 'I', 'I', 'I', 'o', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'O', 'u', 'u', 'u', 'u', 'U', 'U', 'U', 'U', 'y', 'y', 'y', 'n', 'N');      
	
	$value = str_replace('&amp;', '-', $value);
	
	$value_url =  htmlspecialchars($value);
	$value_url = str_replace($accent, $without_accent, $value_url);

	$url_display = preg_replace('#[^\p{L}\p{N}]#u', '-', $value_url);

	$url_display = preg_replace('/-{2,}/', '-', $url_display);
	
	return preg_replace('#(-)$#', '', $url_display);
}

///////////////////////////////////
///Resize text
//////////////////////////////////

function resize_text($text, $size_value)
{
	if(mb_strlen($text) > $size_value)
	{
		$text = mb_substr($text, 0, $size_value);
					
		$pos_text = strrpos($text, ' ');
		
		if($pos_text)
		$text = mb_substr($text, 0, $pos_text);
		
		$text .= "...";
	}
		
	return $text;
}

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

function get_urgent_opt()
{
	global $cache_visual_opts;
	
	$display_urgent = 0;
	
	foreach($cache_visual_opts as $v)
	{
		if($v['type'] == 3)
		{
			$display_urgent = 1;
			break;
		}
	}
	
	return $display_urgent;
}

///////////////////////////////////
///Get disclaimer
//////////////////////////////////

function get_disc($id_cat)
{
	global $cache_cat;
	
	$disc = '';
	
	foreach($cache_cat as $v)
	{
		if($id_cat == $v['id_cat'])
			$disc = (int) $v['disc'];
	}
		
	return $disc;
}

///////////////////////////////////
///Get comments
//////////////////////////////////

function get_comments($id_cat)
{
	global $cache_cat;
	
	$comments = '';
	
	foreach($cache_cat as $v)
	{
		if($id_cat == $v['id_cat'])
			$comments = (int) $v['comments'];
	}
		
	return $comments;
}

///////////////////////////////////
///Category name
//////////////////////////////////

function name_cat($id_cat, $code_lang = null)
{
	global $cache_cat, $language;
	$cat_name = null;
	$code_lang = $code_lang ? $code_lang : $_SESSION['code_lang'];
	if(!is_numeric($id_cat)) {
		foreach($cache_cat as $cat) {
			if(isset($cat['name_cat_'.$code_lang]) && strtolower(rewriting($id_cat)) == strtolower(rewriting($cat['name_cat_'.$_SESSION['code_lang']]))) {
				$cat_name = $cat['name_cat_'.$code_lang];
				break;
			}
		}
	} elseif(!empty($id_cat) && isset($cache_cat[$id_cat]))
		$cat_name = isset($cache_cat[$id_cat]['name_cat_'.$code_lang]) ? $cache_cat[$id_cat]['name_cat_'.$code_lang] : (defined('DEFAULT_LANG') ? $cache_cat[$id_cat]['name_cat_'.DEFAULT_LANG] : '');
	
	return stripcslashes($cat_name);
}

///////////////////////////////////
///Category ID
//////////////////////////////////

function get_category_id($name) {
	global $cache_cat, $language;
	$id_cat = 0;
	foreach($cache_cat as $cat) {
		if(strtolower(rewriting($name)) == strtolower(rewriting($cat['name_cat_'. $_SESSION['code_lang']]))) {
			$id_cat = $cat['id_cat'];
			break;
		}
	}
	return $id_cat;
}

///////////////////////////////////
///Region name
//////////////////////////////////

function name_region($id_reg, $code_lang = null)
{
	global $cache_regions, $language;
	$reg_name = null;
	$code_lang = $code_lang ? $code_lang : $_SESSION['code_lang'];
	if(!is_numeric($id_reg)) {
		if($id_reg == 'geoloc_search')
			$reg_name = $language['around_me'];
		else {
			foreach($cache_regions as $reg) {
				if(isset($reg['name_reg_'.$code_lang]) && strtolower(rewriting($id_reg)) == strtolower(rewriting($reg['name_reg_'.$_SESSION['code_lang']]))) {
					$reg_name = $reg['name_reg_'.$code_lang];
					break;
				}
			}
		}
	} elseif(!empty($id_reg) && isset($cache_regions[$id_reg]))
		$reg_name = isset($cache_regions[$id_reg]['name_reg_'.$code_lang]) ? $cache_regions[$id_reg]['name_reg_'.$code_lang] : (defined('DEFAULT_LANG') ? $cache_regions[$id_reg]['name_reg_'.DEFAULT_LANG] : '');
		
	return $reg_name;
}

///////////////////////////////////
///Region ID
//////////////////////////////////

function get_region_id($name) {
	global $cache_regions, $language;
	$id_reg = 0;
	foreach($cache_regions as $reg) {
		if(strtolower(rewriting($name)) == strtolower(rewriting($reg['name_reg_'. $_SESSION['code_lang']]))) {
			$id_reg = $reg['id_reg'];
			break;
		}
	}
	return $id_reg;
}

///////////////////////////////////
///County name
//////////////////////////////////

function name_county($id_county, $code_lang = null)
{
	global $cache_counties, $language;
	$county_name = null;
	$code_lang = $code_lang ? $code_lang : $_SESSION['code_lang'];
	if(!is_numeric($id_county)) {
		foreach($cache_counties as $county) {
			if(isset($county['name_county_'.$code_lang]) && strtolower(rewriting($id_county)) == strtolower(rewriting($county['name_county_'.$_SESSION['code_lang']]))) {
				$county_name = $county['name_county_'.$code_lang];
				break;
			}
		}
	} elseif(!empty($id_county) && isset($cache_counties[$id_county]))
		$county_name = isset($cache_counties[$id_county]['name_county_'.$code_lang]) ? $cache_counties[$id_county]['name_county_'.$code_lang] : (defined('DEFAULT_LANG') ? $cache_counties[$id_county]['name_county_'.DEFAULT_LANG] : '');
		
	return $county_name;
}

///////////////////////////////////
///County ID
//////////////////////////////////

function get_county_id($name) {
	global $cache_counties, $language;
	$id_county = 0;
	foreach($cache_counties as $county) {
		if(strtolower(rewriting($name)) == strtolower(rewriting($county['name_county_'. $_SESSION['code_lang']]))) {
			$id_county = $county['id_county'];
			break;
		}
	}
	return $id_county;
}

///////////////////////////////////
///Page name
//////////////////////////////////

function name_page($id_page, $code_lang = null) {
	global $cache_pages, $language;
	$page_name = null;
	$code_lang = $code_lang ? $code_lang : $_SESSION['code_lang'];
	if(!is_numeric($id_page)) {
		foreach($cache_pages as $page) {
			if(strtolower(rewriting($id_page)) == strtolower(rewriting($page['name_page_'.$_SESSION['code_lang']]))) {
				$page_name = $page['name_page_'.$code_lang];
				break;
			}
		}
	} else
		$page_name = !empty($id_page) ? $cache_pages[$id_page]['name_page_'.$code_lang] : '';
	return $page_name;
}

///////////////////
//Get the number of ads selected
///////////////////

function get_selected_number()
{
	global $_COOKIE;
	
	$num = 0;
	
	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) continue;
		if($k == 'display') continue;

		$row = get_ad($v, 0);
		
		if(is_array($row))
		$num++;
	}	
	
	return $num;
}

///////////////////
//Format string to have title for account search
///////////////////

function acc_search_to_string_title($data, $lang = null) {
	global $param_gen, $language;
	if($lang) require __DIR__.'/language/'. mail_language($lang) .'.php';
	$string = $language['page_acc_search_title'].' '.strtolower(get_search_type_to_string($data['type'], $lang));
	$string .= isset($data['cat']) && ($data['cat'] > 0 || !is_numeric($data['cat'])) ? ' '.name_cat($data['cat'], $lang) : '';
	$string .= isset($data['keywords']) && strlen($data['keywords']) > 0 ? ' - "'.$data['keywords'].'"' : ''; 
	return $string;
}

///////////////////
//Return search type name
///////////////////

function get_search_type_to_string($type, $lang) {
	global $param_gen, $language;
	if($lang) require __DIR__.'/language/'. mail_language($lang) .'.php';
	$type_string = '';
	switch($type) {
		case 1:
			$type_string = $language['link_offers'];
			break;
		case 2:
			$type_string = $language['link_wanted'];
			break;
		case 3:
			$type_string = $language['link_swaps'];
			break;
		case 4:
			$type_string = $language['link_donation'];
			break;
		case 5:
			$type_string = $language['link_shops'];
			break;
	}
	return $type_string;
}

///////////////////
//Return search filters to string
///////////////////

function acc_search_filters_to_string($data) {
	$string = '';
	$no_filters = array('type', 'keywords', 'postcode', 'reg', 'county', 'cat', 'sort', 'status', 'geoloc_search', 'distance', 'value_around', 'page');
	$array_filters = array();
	foreach($data as $filter => $value) {
		if(!in_array($filter, $no_filters) && !preg_match('/checkbox_/', $filter)) {
			$string .= format_fitler_to_string($filter, $value, $data);
		}
	}
	$string .= format_checkbox_filter_to_string($data);
	return strlen($string) > 0 ? substr($string, 0, -2) : '';
}

///////////////////
//Format checkboxes filters to string
///////////////////

function format_checkbox_filter_to_string($data) {
	global $param_gen, $language, $cache_cat_opts, $cache_val_check;
	$array_filter = array();
	foreach($data as $filter => $value) {
		if(preg_match('/checkbox_/', $filter)) {
			$checkbox_filter = isset($cache_val_check[$value]) ? $cache_val_check[$value] : null;
			if($checkbox_filter) {
				$cat_opt = isset($cache_cat_opts[$checkbox_filter['id_cat_opt']]) ? $cache_cat_opts[$checkbox_filter['id_cat_opt']] : null;
			if(!isset($array_filter[$cat_opt['name_cat_opt_'.$_SESSION['code_lang']]])) $array_filter[$cat_opt['name_cat_opt_'.$_SESSION['code_lang']]] = array();
				if($cat_opt) $array_filter[$cat_opt['name_cat_opt_'.$_SESSION['code_lang']]][]  = $checkbox_filter['val_check_'.$_SESSION['code_lang']];
			}
		}
	}
	$string = '';
	if(sizeof($array_filter)) {
		foreach($array_filter as $key => $elt) {
			$string .= strtolower($key.' : '.implode(', ', $elt)).', ';
		}
	}
	return $string;
}

///////////////////
//Format filters to string
///////////////////

function format_fitler_to_string($filter, $value, $data) {
	global $param_gen, $language, $cache_cat_opts, $cache_val_digital, $cache_val_data, $cache_val_check;
	$string = '';
	if($filter == 'price_min' && $value > 0) $string .= $language['filter_price'].' : '.$value.($value != $data['price_max'] ? ' - '.$data['price_max'] : '').' '.$param_gen['currency'].', ';
	if(strpos($filter, 'checkbox_') > -1 && $value > 0) {
		$checkbox_filter = isset($cache_val_check[$value]) ? $cache_val_check[$value] : null;
		if($checkbox_filter) {
			$cat_opt = isset($cache_cat_opts[$checkbox_filter['id_cat_opt']]) ? $cache_cat_opts[$checkbox_filter['id_cat_opt']] : null;
			if($cat_opt) $string .= strtolower($cat_opt['name_cat_opt_'.$_SESSION['code_lang']].' : '.$checkbox_filter['val_check_'.$_SESSION['code_lang']]).', ';
		}
	}
	if(strpos($filter, 'data_') > -1 && $value > 0) {
		$data_filter = isset($cache_val_data[$value]) ? $cache_val_data[$value] : null;
		if($data_filter) {
			$cat_opt = isset($cache_cat_opts[$data_filter['id_cat_opt']]) ? $cache_cat_opts[$data_filter['id_cat_opt']] : null;
			if($cat_opt) $string .= strtolower($cat_opt['name_cat_opt_'.$_SESSION['code_lang']].' : '.$data_filter['val_data_'.$_SESSION['code_lang']]).', ';
		}
	}
	if(strpos($filter, 'digital_') > -1 && strpos($filter, '_min') > -1 && ($value > 0 || $data[str_replace('_min', '_max', $filter)] > 0)) {
		$capt_opt_id = (int) str_replace('digital_', '', str_replace('_min', '', $filter));
		$cat_opt = isset($cache_cat_opts[$capt_opt_id]) ? $cache_cat_opts[$capt_opt_id] : null;
		if($cat_opt) $string .= strtolower($cat_opt['name_cat_opt_'.$_SESSION['code_lang']].' : '.$value.($value != $data[str_replace('_min', '_max', $filter)] ? ' - '.$data[str_replace('_min', '_max', $filter)] : '')).', ';
	}
	return $string;
}

///////////////////
//Return current uri without GET['lang']
///////////////////

function get_uri() {
	//echo '<pre>'; var_dump(debug_print_backtrace()); echo '</pre>';
	return str_replace(preg_replace('#(https||http)#', '', URL_DISPLAY).'/', '', '://'.$_SERVER['HTTP_HOST'].urldecode($_SERVER['REQUEST_URI']));
}

///////////////////
//Parse utl to array data
///////////////////

function parse_search_url() {
	global $language, $cache_cat;
	$all_result = array();
	$result = array();
	$complete_uri = get_uri();
	$index = !isset($_GET['search_start_date']) ? strpos($complete_uri, '/') : -1;
	$prev_index = isset($complete_uri[$index - 1]) ? $complete_uri[$index - 1] : null;
	if($index > -1 && $prev_index != '=') {
		$complete_uri = stripos($complete_uri, '?') > -1 ? substr($complete_uri, 0, stripos($complete_uri, '?')) : $complete_uri;
		$url =  explode('/', $complete_uri);
		if(sizeof($url) > 0) {
			if($url[0] == $language['router_slug_search_ads'] && isset($url[1])) {
				switch($url[1]) {
					case $language['router_slug_search_type1']:
						$result['type'] = 1;
						break;
					case $language['router_slug_search_type2']:
						$result['type'] = 2;
						break;
					case $language['router_slug_search_type3']:
						$result['type'] = 3;
						break;
					case $language['router_slug_search_type4']:
						$result['type'] = 4;
						break;
					default:
						$result['type'] = 1;
						break;
				}
			}
			if(($url[0] == $language['router_slug_search_shops']) || (strpos($url[0], '?') > -1 && substr($url[0], 0, stripos($url[0], '?')) == $language['router_slug_search_shops'])) {
				$result['type'] = 5;
			}
			if($result['type'] != 5) {
				unset($url[0]);
				unset($url[1]);
			} else {
				unset($url[0]);
			}
			$uri = implode('/', $url);
			$uri = stripos($uri, '?') > -1 ? substr($uri, (stripos($uri, '?') + 1)) : '';
			parse_str($uri, $uri_result);
			$all_result = $result + $uri_result;
				
			if(sizeof($url) > 0) {
				foreach($url as $value) {
					if(name_region($value)) {
						$all_result['reg'] = get_region_id($value);
						unset($all_result[$value]);
						continue;
					}
					if(name_county($value)) {
						$all_result['county'] = get_county_id($value);
						unset($all_result[$value]);
						continue;
					}
					if(name_cat($value)) {
						$id_cat = get_category_id($value);
						$category = $cache_cat[$id_cat]['par_cat'] == 0 && $result['type'] != 5 ? name_cat($value) : $id_cat;
						$all_result['cat'] = $category;
						unset($all_result[$value]);
						continue;
					}
				}
			}
	
		}
	} else {
		$search_type = stripos($complete_uri, '?') > -1 ? substr($complete_uri, 0, stripos($complete_uri, '?')) : $complete_uri;
		switch($search_type) {
			case $language['router_slug_search_type1']:
				$result['type'] = 1;
				break;
			case $language['router_slug_search_type2']:
				$result['type'] = 2;
				break;
			case $language['router_slug_search_type3']:
				$result['type'] = 3;
				break;
			case $language['router_slug_search_type4']:
				$result['type'] = 4;
				break;
			case $language['router_slug_search_shops']:
				$result['type'] = 5;
				break;
		}
		$uri = stripos($complete_uri, '?') > -1 ? substr($complete_uri, (stripos($complete_uri, '?') + 1)) : $complete_uri;
		parse_str($uri, $uri_result);
		$all_result = $result + $uri_result;
		if(isset($all_result['cat']) && is_string($all_result['cat']) && strlen($all_result['cat']) > 0) {
			$id_cat = get_category_id($all_result['cat']);
			if($id_cat > 0) {
				$category = $cache_cat[$id_cat]['par_cat'] == 0 && $all_result['type'] != 5 ? name_cat($id_cat) : $id_cat;
				$all_result['cat'] = $category;
			}
		}
	}
	return $all_result;
}

///////////////////
//Return current search query string without 
///////////////////

function get_search_query_string($search_data = null) {
	array_walk($search_data, function(&$value, $key) {$value = $key == 'cat' ? rewriting(htmlspecialchars(htmlspecialchars($value))) : $value;});
	return str_replace('lang='.$_SESSION['code_lang'].'&', '', ($search_data ? http_build_query($search_data) : ''));
}

///////////////////
//Return slug for the current page in all language
///////////////////

function get_page_slugs($pattern) {
	global $language, $param_gen, $cache_lang;
	$slugs = array();
	if(sizeof($cache_lang) > 1) {
		$pattern = is_array($pattern) ? $pattern : array($pattern);
		$complete_uri = stripos(get_uri(), '?')  > - 1 ? substr(get_uri(), 0, stripos(get_uri(), '?')) : get_uri();
		$uri = explode('/', $complete_uri);
		$current_pattern = array();
		foreach($pattern as $key => $slug_name) {
			if(is_array($slug_name)) {
				foreach($slug_name as $slug) {
					if(isset($uri[$key]) && $language[$slug] == $uri[$key]) $current_pattern[] = $slug;			
				}
			} else 
				$current_pattern[] = $slug_name;
		}
		$data_uri = sizeof($current_pattern) != sizeof($uri) ? array_slice($uri, sizeof($current_pattern)) : array();
		$new_pattern = array_merge($current_pattern, $data_uri);
		foreach($cache_lang as $language) {
			if($language['code_lang'] != $_SESSION['code_lang'] && $language['active'] == 1) $slugs[$language['code_lang']] = translate_uri($new_pattern, $language['name_lang'], $language['code_lang']);
		}
	}
	require(__DIR__.'/language/'.$_SESSION['name_lang'].'.php');
	return $slugs;
}

///////////////////
//Return uri translated for requested language
///////////////////

function translate_uri($pattern, $filename, $code_lang) {
	global $param_gen;
	
	$translated_uri = '';
	if(file_exists(__DIR__.'/language/'.$filename.'.php')) {
		require(__DIR__.'/language/'.$filename.'.php');
		foreach($pattern as $elt) {
			if(isset($language[$elt])) $translated_uri .= '/'.$language[$elt];
			else if($name_region = name_region($elt, $code_lang))
				$translated_uri .= '/'.rewriting($name_region);
			else if($name_county = name_county($elt, $code_lang))
				$translated_uri .= '/'.rewriting($name_county);
			else if($name_category = name_cat($elt, $code_lang))
				$translated_uri .= '/'.rewriting($name_category);
			else if($name_page = name_page(substr($elt, 0, strrpos($elt, '-')), $code_lang))
				$translated_uri .= '/'.rewriting($name_page).substr($elt, strrpos($elt, '-'));		
			else
				$translated_uri .= '/'.$elt;
		}
	}
	return substr($translated_uri, 1);
}

///////////////////
//Return cat name translated for requested language
///////////////////

function translate_cat_name($cat, $filename, $code_lang) {
	$result = $cat;
	if(file_exists(__DIR__.'/language/'.$filename.'.php') && !is_numeric($cat)) {
		require_once(__DIR__.'/language/'.$filename.'.php');
		if($name_category = name_cat($cat, $code_lang))
			$result = $name_category;
	}
	return $result;
}

///////////////////////////////////
///Admin connection (level 1)
//////////////////////////////////

function check_super_admin()
{
	global $valid_admin;
	
	if(isset($_SESSION['valid_admin']) && $valid_admin == 1) return true;
	
	else return false;
}
	
///////////////////////////////////
///Admin connection (level 2)
//////////////////////////////////

function check_admin()
{
	global $valid_admin;
	
	if(isset($_SESSION['valid_admin']) && $valid_admin == 2) return true;
	
	else return false;
}

///////////////////////////////////
///Admin connection (level 3)
//////////////////////////////////

function check_valid_all()
{
	global $valid_admin;
	
	if(isset($_SESSION['valid_admin'])) return true;

	else return false;
}

///////////////////////////////////
///Admin get js elements
//////////////////////////////////

function safe($var)
{
	$var = addcslashes($var, '%_');
	$var = trim($var);
	$var = htmlspecialchars($var);
	
	return $var;
}

///////////////////////////////////
///Mail language
//////////////////////////////////

function mail_language($lang)
{
	global $cache_lang;
	
	$default_language = $cache_lang[key($cache_lang)]['name_lang'];
	$request_language = NULL;
	
	foreach($cache_lang as $v)
	{
		if($lang == $v['code_lang'])
		{
			$request_language = $v['name_lang'];
			break;
		}
	}
	
	return $request_language ? $request_language : $default_language;
}

///////////////////
//Test if more than one language is active
///////////////////
function has_multi_languages() {
	global $cache_lang;
	$count_lang = 0;			
	foreach($cache_lang as $v) {
		if($v['active'] == 1) $count_lang++;
	}
	return $count_lang > 1 ? true : false;
}

///////////////////////////////////
///Ad link
//////////////////////////////////

function get_ad_shop_link($array, $lang, $type, $language)
{
	$id = ($type == 'ad') ? $array['id_ad'] : $array['id_shop'];
	$cat_name = name_cat($array['id_cat'], $lang);
	$reg_name = name_region($array['id_reg'], $lang);
	$county_name = name_county($array['id_county'], $lang);
	
	$url_rewrite = '';
	$url_rewrite .= (!empty($reg_name)) ? $reg_name .' ' : '';
	$url_rewrite .= (!empty($county_name)) ? $county_name .' ' : '';
	$url_rewrite .= (!empty($cat_name)) ? $cat_name .' ' : '';
		
	$url_display = rewriting($url_rewrite . $array['title']);
	
	$slug_lang = (has_multi_languages()) ? '/'. $lang : '';
							  
	if(isset($_SESSION['code_lang']) && defined('URL_DISPLAY') && $lang != $_SESSION['code_lang']) {
		$slug = get_page_slugs(($type == 'ad' ? 'router_slug_ad' : 'router_slug_shop'));
		$router_slug_lang = isset($slug[$lang]) ? $slug[$lang] : ($type == 'ad' ? $language['router_slug_ad'] : $language['router_slug_shop']);
	} else $router_slug_lang = ($type == 'ad') ? $language['router_slug_ad'] : $language['router_slug_shop'];
	
	$url = URL . $slug_lang .'/'. $router_slug_lang .'/'. $url_display .'-'. $id;
	
	return $url;
}

///////////////////////////////////
///Get date
//////////////////////////////////

function get_date($datetime, $language, $code_lang)
{
	$now = time();
	
	$day = $code_lang != 'en' ? date('d/m/Y', $datetime) : date('m/d/Y', $datetime);
	$display_day = date('Y-m-d', $datetime) == date('Y-m-d', $now) ? $language['today_ad'] : (date('Y-m-d', $datetime) == date('Y-m-d', strtotime('-1 day')) ? $language['yesterday_ad'] : $day);
	
	return $display_day;
}

///////////////////////////////////
///Get hour
//////////////////////////////////

function get_hour($datetime, $code_lang)
{
	$hour = $code_lang != 'en' ? date('G\hi', $datetime) : date('\:i a', $datetime);
	
	return $hour;
}

///////////////////////////////////
///Display advertiser send message button on ad's page
//////////////////////////////////

function default_send_advertiser_message($id_ad) {
	global $language;
	echo '<a class="message" href="'.URL_DISPLAY.'/send_advertiser.php?id_ad='.$id_ad.'"><img src="'.URL.'/template/images/icons/icon_ad_contact_mail.png" alt="" />'.$language['page_ad_txt_menu_mail'].'</a>';
}

///////////////////////////////////
///Display premium on homepage
//////////////////////////////////

function default_display_homepage_premium() {
	global $language, $param_gen, $search_array_premium, $index, $similar, $set_nb_premium;
	
	if($param_gen['active_prem'] == 1)
	{
		$type_list = 1;
		$array_list = $search_array_premium;
		
		echo '<div class="list-premium">';
		require __DIR__.'/../template/tpl_listing_premium.php';
		echo '</div>';
	}
}

///////////////////////////////////
///Display premium on homepage
//////////////////////////////////

function default_display_listing_premium($type_search) {
	global $language, $param_gen, $search_array_premium, $index, $similar, $set_nb_premium;
	
	if(($type_search == 1 && $param_gen['active_prem'] == 1) || $type_search == 2 && $param_gen['active_prem_shops'] == 1)
	{
		$type_list = $type_search;
		$array_list = $search_array_premium;
		
		require __DIR__.'/../template/tpl_listing_premium.php';
	}
}

///////////////////////////////////
///Display premium on homepage
//////////////////////////////////

function default_display_listing_adv($type_search) {
	global $language, $index, $cache_advertisement, $search_data;
	if($index != 1 && isset($type_search) && ($type_search == 1 || $type_search == 2)) require __DIR__.'/../template/tpl_listing_advertisements.php';
}

///////////////////////////////////
///Display currencies informations for price field on deposit form
//////////////////////////////////

function default_display_field_price_curreny() {
	global $param_gen, $language;
	echo '<span>'.$param_gen['currency'].' &nbsp;'.$language['form_price_info'].'</span>';
}

///////////////////////////////////
///Display currencies informations for price field on deposit form
//////////////////////////////////
function default_display_price($id_ad, $price) {
	global $param_gen;
	$price = number_format($price, 2, ',', ' ');
	echo $price .' '. $param_gen['currency'];
}

///////////////////////////////////
///Translate Month and day
//////////////////////////////////
function translate_date($date) {
	$code_lang = codelang();
	$translate = $date;
	if($code_lang != 'en') {		
		$days_pattern = array_keys(language('days'));
		array_walk($days_pattern, function(&$value) {$value = '/'.$value.'/ui';});
		$translate = preg_replace($days_pattern, language('days'), $date);
		$months_pattern = array_keys(language('months'));
		array_walk($months_pattern, function(&$value) {$value = '/'.$value.' /ui';});
		$month_replace = language('months');
		array_walk($month_replace, function(&$value) {$value = $value.' ';});
		$translate = preg_replace($months_pattern, $month_replace, $translate);
		if($date == $translate) {
			$days = language('days');
			$months = language('months');
			if(isset($days[strtolower($date)])) $translate = $days[strtolower($date)];
			if(isset($months[strtolower($date)])) $translate = $months[strtolower($date)];
		}
	}
	return $translate;
}

///////////////////////////////////
///Display ads sharing button
//////////////////////////////////
function ad_sharing_buttons($id_ad) {
	global $language;
	$string = '<div class="ad-page-bloc-infos">';
	$string .= '<p class="title"><span>'.$language['page_ad_info_share'].'</span></p>';
	$string .= '<div class="share">';
	$link = (isset($_SERVER['REQUEST_SCHEME']) && !empty($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'] : 'https').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
	if(is_allowed_cookie('facebook_share')) $string .= '<a onclick="window.open(this.href); return false;" rel="nofollow" href="https://www.facebook.com/share.php?u='.$link.'"><img src="'.URL.'/template/images/icons/icon_ad_share_facebook.png" alt="" /></a>';
	if(is_allowed_cookie('twitter_share')) $string .= '<a onclick="window.open(this.href); return false;" rel="nofollow" href="https://twitter.com/share?url='.$link.'"><img src="'.URL.'/template/images/icons/icon_ad_share_twitter.png" alt="" /></a>';
	$string .= '<a style="cursor:pointer" onclick="window.print()"><img src="'.URL.'/template/images/icons/icon_ad_share_print.png"  alt="" /></a>';
	$string .= '<a href="'.URL_DISPLAY.'/send_friend.php?id_ad='.$id_ad.'"><img src="'.URL.'/template/images/icons/icon_ad_share_mail.png"  alt="" /></a>';
	$string .= '</div>';
	$string .= '</div>';
	echo $string;
}

///////////////////////////////////
///Display shop sharing button
//////////////////////////////////
function shop_sharing_buttons($id_shop) {
	global $language, $param_gen;
	$string = '<div class="shop-page-bloc-infos">';
	$string .= '<p class="title"><span>'.$language['page_shop_info'].'</span></p>';
	$string .= '<div class="share">';
	$link = (isset($_SERVER['REQUEST_SCHEME']) && !empty($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'] : 'https').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
	if(is_allowed_cookie('facebook_share'))
		$string .= '<a onclick="window.open(this.href); return false;" rel="nofollow" href="http://www.facebook.com/share.php?u='.$link.'"><img src="'.URL.'/template/images/icons/icon_ad_share_facebook.png" alt="" /></a>';
	if(is_allowed_cookie('twitter_share')) 
		$string .= '<a onclick="window.open(this.href); return false;" rel="nofollow" href="http://twitter.com/share?url='.$link.'"><img src="'.URL.'/template/images/icons/icon_ad_share_twitter.png"  alt="" /></a>';
	$string .= '<a style="cursor:pointer" onclick="window.print()"><img src="'.URL.'/template/images/icons/icon_ad_share_print.png"  alt="" /></a>';
	if($param_gen['flux_shops'] == 1)
		$string .= '<a href="'.URL_DISPLAY.'/'.$language['router_slug_rss'].'?shop='.$id_shop.'" target="_blank"><img src="'.URL.'/template/images/icons/icon_ad_share_rss.png"  alt="" /></a>';
	$string .= '</div>';
	$string .= '</div>';
	echo $string;
}