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

     Fichier : WicriEspagneTools.c

 *******************************************************************/
#include <stdlib.h> 
#include <string.h>
#include <ctype.h>
#include "Buffer.h"
#include "RegExp.h"
#include "StrDict.h"
#include "Wicri.h"

static Buffer *bufName=NULL;
StrDict *WicriEspagneCode2ToNuts2=NULL;

StrDict *WicriEspagneGetCode2ToNuts2()
{
  char *wicriDataRoot;
  if(WicriEspagneCode2ToNuts2) return WicriEspagneCode2ToNuts2;
  if (!bufName)  bufName=NewBuffer();
  wicriDataRoot=WicriGetDataRoot();
  BufferStrcpy(bufName,wicriDataRoot);
  BufferStrcat(bufName,"/Espagne/codePostalToNuts2.wiki");
  WicriEspagneCode2ToNuts2=StrDictFromFile(BufferString(bufName));
  return WicriEspagneCode2ToNuts2;
}

SxmlNode *WicriEspagneGetRegionFromField(SxmlNode *affiliation, char *strRegion, char *regionArea)
{
  char *beginZip;
  SxmlNode *retNode;

  beginZip=WicriFindZip5(strRegion);
  if (beginZip)
    {
      static char* c3=NULL;
      char *region;
      if(!c3)c3=malloc(3);
      strncpy(c3,beginZip,2);
      region=StrDictSearch(WicriEspagneGetCode2ToNuts2(), c3);
      if (!region) return NULL;
      retNode=WicriAffiliationPutRegion(affiliation, region);
      if (!retNode) return NULL;
      SxmlSetAttribute(retNode, "nuts", "2");
      SxmlSetAttribute(retNode, "type", "communauté");
      return retNode;
    }
  return NULL;
}
