/*   -*- coding: utf-8 -*-  */

/*************************************************
*
*        Module   : Inra
*        Commande : InraHalCurationCountry
*        Fichier  : InraHalCurationCountry.c
*
******************************/

#include <stdio.h>     /* for printf */
#include <stdlib.h>    /* for exit */
#include <getopt.h>
#include "SxPath.h"
#include "Buffer.h"
#include "StrSearch.h"
#include "WicriPaysFromEn.h"
#include "WicriFrance.h"

extern char *optarg;
extern int   optind;

int getopt();

SxPathResult *teiPathAffiliation;

SxmlNode * affiliation;

/* StrSearchTable *tablePays; */
SxmlNode *docInput;

SxmlNode *listAffiliations;

void proceedAffiliation()
{
  SxmlNode *countryNode;
  SxmlNode *cityNode;
  SxmlNode *inraAff;
  char     *pays;
  char     *typeAff;
  char     *ville;
  inraAff=SxmlGetFirstChildByTagName(affiliation,"inra:affiliation");
  if (!inraAff)return;
  countryNode=SxmlGetFirstChildByTagName(affiliation,"country");
  if (!countryNode)return;
  cityNode=SxmlGetFirstChildByTagName(inraAff,"city");
  pays=SxmlLeafText(countryNode);
  typeAff=SxmlGetAttribute(inraAff, "type");
  if (cityNode && (strcmp(pays, "France")==0))
    {
      SxmlNode *res;
      ville=SxmlLeafText(cityNode);
      res=WicriFrancePutPlaceFromVille(affiliation, ville);
      if (!res)SxmlAppendChild(affiliation, SxmlLeafCreate("wicri:noRegion", ville));
    }
  if (strcmp(typeAff, "INRA")==0)
    {
      SxmlNode *unit;
      unit=SxmlGetFirstChildByTagName(inraAff,"unit");
      if (unit)
	{
	  ;
	}
      SxmlAppendChild(affiliation, SxmlLeafCreate("orgName", "Institut national de la recherche agronomique"));
    }
  else
    {
      ;
    }
}

int main (int argc, char **argv) {

 teiPathAffiliation=SxPathSetCompile("TEI/teiHeader/fileDesc/sourceDesc/biblStruct/analytic/author/affiliation");

 while ((docInput=SxmlInputNextDocumentElement()))
   {      
     if ((SxmlNodeHasName(docInput,"record")))
       {
	 if ((listAffiliations=SxPathSetResultListCreate(teiPathAffiliation, docInput)))
	   {
	     while((affiliation=SxmlNodeListNextNode(listAffiliations)))
	       {
		 proceedAffiliation();
	       }
	   }
       }
     SxmlPrint (SxmlInputRecord);
   }
  exit(EXIT_SUCCESS);
}
