<?php
/*******************************************************************************
* GENEALOGIE ASCENDANTE EN PHP
* Fonctions diverses
* Copyright (c) 2003-2005 Christian BACHELET
*******************************************************************************/

/***************************************
* langue préférée
***************************************/
function langue($sPref)
	{
   global $LanguesScript;
	$LanguePref="en";
	$LangueNav=explode(",",$sPref);
		
	for ($i=0;$i<count($LangueNav);$i++)
		{
		$Item=explode(";",$LangueNav[$i]);
		$Langue[$i]=$Item[0];
		}
					
	for ($i=0;$i<count($Langue);$i++)
		{
		$Langue[$i]=strtolower(substr($Langue[$i],0,2));
		}
			
	for ($i=0;$i<count($Langue);$i++)
		{
		if (in_array($Langue[$i],$LanguesScript))
			{
			$LanguePref=$Langue[$i];
			break;
			}
		}
				
	return($LanguePref);
	}
	
/***************************************
* formatage des dates
***************************************/
function format1($sDate)
	{
   global $sFormatDate;
	$resultat="";
	$jour=substr($sDate,8,2);
   $mois=substr($sDate,5,2);
   $annee=substr($sDate,0,4);
  	$separateur=substr($sFormatDate,4,1);

   if ($annee<>"0000") $resultat=$annee;
         	
   if ($mois<>"00")
   	{
      if (strlen($resultat)>0) $resultat=$resultat.$separateur;
      $resultat=$resultat.$mois;
      }

   if ($jour<>"00")
   	{
      if (strlen($resultat)>0) $resultat=$resultat.$separateur;
      $resultat=$resultat.$jour;
      }

	return($resultat);
	}

function format2($sDate)
	{
   global $sFormatDate;
	$resultat="";
	$jour=substr($sDate,8,2);
   $mois=substr($sDate,5,2);
   $annee=substr($sDate,0,4);
  	$separateur=substr($sFormatDate,2,1);

   if ($jour<>"00") $resultat=$jour;

   if ($mois<>"00")
   	{
      if (strlen($resultat)>0) $resultat=$resultat.$separateur;
      $resultat=$resultat.$mois;
      }

   if ($annee<>"0000")
      {
      if (strlen($resultat)>0) $resultat=$resultat.$separateur;
      $resultat=$resultat.$annee;
      }

	return($resultat);      
	}
	
function format_date($sDate)
   {
   global $sFormatDate;
   $resultat="";
   
   if ($sDate<>"")
      {
      switch ($sFormatDate)
			{
         case "YYYY/MM/DD":
         	$resultat=format1($sDate);
         	break;
         
         case "YYYY-MM-DD":
         	$resultat=format1($sDate);
         	break;
         	
         case "AAAA/MM/JJ":
         	$resultat=format1($sDate);
         	break;
         	
         case "AAAA-MM-JJ":
         	$resultat=format1($sDate);
            break;
            
         case "DD/MM/YYYY":
         	$resultat=format2($sDate);
            break;
         
         case "DD-MM-YYYY":
          	$resultat=format2($sDate);
            break;
        
         case "JJ/MM/AAAA":
         	$resultat=format2($sDate);
            break;
         
         case "JJ-MM-AAAA":
          	$resultat=format2($sDate);
            break;
			}
		}

   return($resultat);
   }

/*****************************************
* champ année d'une date
*****************************************/
function year($date)
   {
   return(($date<>"")?substr($date,0,4):"");
   }

/*****************************************
* sexe correspondant à un numéro sosa
*****************************************/
function sexe($Sosa)
   {
   global $sMasculin, $sFeminin;
	global $nSexeDeCujus;

   $Test=$Sosa;
   if ($Sosa==1) $Test=$nSexeDeCujus;
   return(($Test%2) ? $sFeminin : $sMasculin);
   }

/***************************************
* Recherche du numéro sosa équivalent
***************************************/
function sosa_equivalent($s)
	{
	global $sTbEquivalences;
	
	$ret=0;
	$requete=mysql_query("select sosa2 from $sTbEquivalences where sosa1=$s");
	$resultat=mysql_fetch_object($requete);	
	if ($resultat) $ret=$resultat->sosa2;		
	return($ret);
	}

/*****************************************
* numéro sosa du père
*****************************************/
function pere($Sosa)
   {
   return($Sosa*2);
   }

/*****************************************
* numéro sosa de la mère
*****************************************/
function mere($Sosa)
   {
   return($Sosa*2+1);
   }

/******************************************
* numéro sosa de l'enfant
******************************************/
function enfant($Sosa)
   {
   return(floor($Sosa/2));
   }

/******************************************
* numéro sosa du conjoint
******************************************/
function conjoint($Sosa)
   {
   global $sTbEquivalences;
   
   $SosaConjoint=$Sosa;
   $SosaConjoint+=($Sosa%2) ? -1 : 1;
   $requete=mysql_query("select min(sosa2) as minimum from $sTbEquivalences where sosa1=$SosaConjoint");
   $resultat=mysql_fetch_object($requete);
	if ($resultat->minimum>0) $SosaConjoint=$resultat->minimum;
   return($SosaConjoint);
   }

/******************************************
* recherche d'un individu
******************************************/
function chercher_individu($Sosa)
   {
   global $sTbIndividus;
   
   $equivalent=sosa_equivalent($Sosa);
   $requete=mysql_query("select * from $sTbIndividus where sosa=$equivalent");
   $resultat=mysql_fetch_object($requete);
   return($resultat);
   }

/*****************************************
* recherche d'une union
*****************************************/
function chercher_union($Sosa)
   {
   global $sTbUnions;
   
   $equivalent=sosa_equivalent($Sosa);   
   $requete=mysql_query("select * from $sTbUnions where sosa1=$equivalent or sosa2=$equivalent");
   $resultat=mysql_fetch_object($requete);
   return($resultat);
   }
?>
