<?php
require_once 'log.php';
if ( !isset($site) )
{
    require_once( "config.inc.php" );
	header( 'Location:  ' . $accueil );
}
//	$var clef à rechercher dans $_POST, $_GET, et $_SESSION (si $session=true)
//	$default valeur retournée si aucune valeur n'est trouvée
//	$session: si true, rechercher aussi dans $_SESSION

function getpost( $var )
{
	//echo '$var =>' . $var . "<br />";
	if ( isset($_GET[$var]) )
	{
		//echo '$_get -> $var =>' . $var . "<br />";
		return $_GET[$var];
	}
	elseif ( isset($_POST[$var]) )
	{
		//echo '$_POST -> $var =>' . $var . "<br />";
		return $_POST[$var];
	}else
	{
		return;
	}
}

// MET LA PREMIÈRE LETTRE D'UN MOT EN MAJUSCULE ( utf8 compliant )

function mb_ucfirst($str)
{
	$char = mb_substr($str,0,1,"UTF8");
	$str = mb_substr( $str, 1, NULL, "UTF8");
	$char = mb_strtoupper( $char, "UTF8");
	return $char . $str;
}

function getLang( $lang, $gestion=false )
{
	$dico = array();
	if ( empty($lang) )
	{
		$lang="en";
	}
	$langPath ='lang/'.$lang;
	if ($gestion)
		$langPath = "../" . $langPath;
	if (($fh = fopen($langPath, 'r') ))
	{
		$str = fgets($fh);
		fclose($fh);
		$dico = json_decode($str, true);
		return $dico;
	}else
	{
		return false;
	}
}

function formatteDate($locale, $date, $tz)
{
    $formatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL, $tz, IntlDateFormatter::GREGORIAN );
    if ($formatter == null)
    {
       log_write(__FILE__ . EOLH . __LINE__ .  EOLH . "Formatter error : locale = " . $locale . "tz = " . $tz . "Formatter = " . print_r($formatter, true) . InvalidConfigException(intl_get_error_message()),ERROR);
	}
    return $formatter->format($date);
}

/*  Remplace les variables dans les textes

*/
function replaceVariables($db, $text, $dico) :array
{
	$variables = array( 'expediteur' => 'expeMail', 'destinataire' => 'destMail', 'date_depart' => 'startTimeRFC822', 'date_arrivee' => 'deliveryTimeRFC822', 'new_date_arrivee' => 'datePeripetie', 'message' => 'message', 'onglet_apropos' => 'onglet_apropos', 'NB_avion_poeme' => 'avionJournalier', "url_avion" => "urlAvion");
	$posVar = 0 ;
	$x =0;
	$result = array();
	//   si contient la variable '$message' alors le text est en html
	if (strpos($text, '$message') === false)
	{
		$html = false;
	}else
	{
		$html = true;
	}

	while( 1 )
	{
		// Recherche les variables dans le texte
		if ($x++ >10 ) break;   // empêche une boucle sans fin, il n'y a pas plus de 10 variables par texte
		$posVar = strpos( $text, "$", $posVar);
		if ($posVar !== false)
		{
			// une variable a été trouvée
			$posEsp = strpos( $text, " ", $posVar);
			if ($posEsp === false)
			{
				$var = substr($text, $posVar+1, strlen($text)-$posVar);
			}else
			{
				if ($posEsp == $posVar+1)
				{
					$var = "";
				}else
				{
					$var = substr($text, $posVar+1, $posEsp-$posVar-1);
				}
			}
			$posVar = $posEsp+1;
			if ($var != "")
			{
				$var = trim($var, " .\n\r)");
				$varReplace = "$" . $var;
				if (  isset ($variables[$var]) )
				{
					$dbVar = $variables[$var];
					$varText = $db->$dbVar;
					//$text = str_replace($varReplace, $db->$dbVar, $text);
				}elseif ( isset ($dico[$var]) )
				{
					$varText = $dico[$var];
					//$text = str_replace($varReplace, $dico[$var], $text);
				}else
				{
					log_error( "La variable => " . $var . "n'est pas reconnue<br />" . __file__ . ' ligne ' . __line__ . "\n" , true, false);
				}
				if ($html and (strpos($var, "url") !== false))
				{
					$varText = '<a href="' . $varText .'">' . $varText . "</a>";
				}
				$text = str_replace($varReplace, $varText, $text);   //remplace la variable dans le texte
			}
		}else {
			break;
		}
	}
	$result['html'] = $html;
	$result['text'] = $text;
	return $result;
}
