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

#include <stdio.h>     /* for printf */
#include <stdlib.h>    /* for exit */
#include "Explor.h"

extern char *optarg;
extern int   optind;
int getopt();

void generStreamRootPage()
{
  char *lastStep;
  if (strcmp(ExplorStreamCode, "Main")==0)lastStep="Exploration";
  else lastStep="Checkpoint";
  printf("<?dilib file=\"%s/Site/%s/%s/index.html\" ?>\n", ExplorAreaDir, ExplorSiteLang, ExplorStreamCode );
  ExplorHtmlPrefix();
  printf("<title>%s - %s - %s Main Page</title>\n", ExplorAreaCode, ExplorSiteLang, ExplorStreamCode );
  ExplorHtmlBeginBody();
  printf("<div class=\"main\">");
  ExplorSidebar(ExplorStreamCode, NULL , 0, NULL);
  ExplorHtmlHeader(ExplorStreamCode, NULL, NULL, NULL, NULL);
  ExplorHeaderStream(ExplorStreamTreeNode, NULL);

  if (strcmp(ExplorStreamCode,"Main")==0)
    {
      ExplorHtmlPrintParam3("Area", ExplorStreamCode, "streamIntroduction");
      ExplorHtmlPrintParam3("Area", ExplorStreamCode, "streamMainAccess");
    }
  else
    {
      ExplorHtmlPrintParam3("Area", ExplorStreamCode, "upStreamIntroduction");
      ExplorHtmlPrintParam3("Area", ExplorStreamCode, "upStreamMainAccess");
    }

  ExplorHtmlPrintParam3("Area", ExplorStreamCode, "streamCurationEntries");
  ExplorHtmlListOtherSteps(ExplorStreamCode, lastStep);
  ExplorHtmlBottomDilib(0);
  printf("</div>");
  ExplorHtmlEndBody();
  return;
}

void NlmPmcSiteGenerCorpusBibRecord()
   {
     ExplorSiteGenerBibRecordBegin ("fr",  ExplorStreamCode, "Corpus", 4);
     ExplorSiteGenerBibRecordAffiliationSection ("fr", ExplorStreamCode, "Corpus");
     ExplorSiteGenerBibRecordLinkSection ("fr", ExplorStreamCode, "Corpus");
     /*         XmlSection */
     printf(" $domRepositoryRecord=ExplorGetRepositoryBiblioFromHfdKey($ExplorParamTable, \"%s\", \"Corpus\", $ExplorParamRecordNumber);\n", ExplorStreamCode);
     printf(" if (!$domRepositoryRecord) echo \"*****  Acces problem to record *****\\\n\";");
     printf ("        echo \"<hr/>\";");
     ExplorPhpPrintParam5("Area", ExplorStreamCode, "Corpus", "bibRecord","titleRecordXml");
     printf ("        SxmlNodePrintIndent($domRepositoryRecord->documentElement);\n" );
     ExplorSiteGenerBibRecordShellSection ("fr", ExplorStreamCode, "Corpus");
     ExplorSitePhpProcEnd();
   }

int main (int argc, char **argv) {
   int cOption;
   char *tabList;
   char *pathParamFile;
   SxmlNode *stepNode;

   while((cOption=getopt(argc,argv,"s:t:"))!=EOF)
     {switch (cOption)
	 {
	 case 't':
	   pathParamFile=optarg;
	   break;
	 case 's':
	   ExplorStreamCode=optarg;
	   break;
	 }
     }

   ExplorParamInitForStream(pathParamFile, ExplorStreamCode);

   generStreamRootPage();

   while ((stepNode=SxmlNextNode(ExplorListSteps)))
     {
       char *step;
       step=SxmlLeafText(stepNode);
       ExplorGenerStepMainPage(ExplorStreamCode, step);
       ExplorSiteGenerImplicitPhp ("fr", ExplorStreamCode, step, 4);
     }
   ExplorSiteGenerIndexAutAff("fr", ExplorStreamCode, "Corpus", 4);
   NlmPmcSiteGenerCorpusBibRecord();

   exit(EXIT_SUCCESS);
}
