/*   -*- 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 generAnalysisMainPage()
{
  printf("<?dilib file=\"%s/Site/%s/%s/Analysis/index.html\" ?>\n", ExplorAreaDir, ExplorSiteLang, ExplorStreamCode );
  ExplorHtmlPrefix();
  printf("<title>%s - %s - %s Analysis Main Page</title>\n", ExplorAreaCode, ExplorSiteLang, ExplorStreamCode );
  ExplorHtmlBeginBody();
  printf("<div class=\"main\">");
  ExplorSidebarTop(4);
  ExplorSidebarBottom();
  ExplorHtmlHeader(ExplorStreamCode, "Analysis", NULL, NULL, NULL);
  printf("<p>This is Exploration entry point for the NCBI/PubMed\'s stream :<br>%s</br></p>\n", StrDictSearch(ExplorTableParam, "Area/areaTitle") );
  ExplorHtmlIntroBiblio(ExplorStreamCode, "Analysis");
  printf("<h2>Indexes</h2><p>The main index is : <a href=\"indexHead.php?index=Mesh.i\">MeSH entries</a></b></p>\n");
  ExplorHtmlListIndexes(ExplorStreamCode, "Analysis",4);
  ExplorHtmlBottomDilib(0);
  printf("</div>");
  ExplorHtmlEndBody();
  return;
}

void generExplorationMainPage()
{
  printf("<?dilib file=\"%s/Site/%s/%s/Exploration/index.html\" ?>\n", ExplorAreaDir, ExplorSiteLang, ExplorStreamCode );
  ExplorHtmlPrefix();
  printf("<title>%s - %s - %s Exploration Main Page</title>\n", ExplorAreaCode, ExplorSiteLang, ExplorStreamCode );
  ExplorHtmlBeginBody();
  printf("<div class=\"main\">");
 ExplorSidebar("Main", "Exploration", 0, NULL);
 ExplorHtmlHeader(ExplorStreamCode, "Exploration", NULL, NULL, NULL);
  ExplorHtmlPrintParam4("Area", "Main", "Exploration", "stepIntroduction");
  ExplorHtmlIntroBiblio(ExplorStreamCode, "Exploration");
  printf("<h2>Indexes</h2><p>The main index is : <a href=\"indexHead.php?index=Mesh.i\">MeSH entries</a></b></p>\n");
  ExplorHtmlListIndexes(ExplorStreamCode, "Exploration",4);
  ExplorHtmlBottomDilib(0);
  printf("</div>");
  ExplorHtmlEndBody();
  return;
}

 
int main (int argc, char **argv) {
   int cOption;
   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);
       if(strcmp(step, "Exploration")==0)
	 {
	   generExplorationMainPage();
	 }
       else
	 {
	   ExplorGenerStepMainPage(ExplorStreamCode, step);
	 }
       ExplorSiteGenerImplicitPhp ("fr", ExplorStreamCode, step, 4);
     }
   ExplorSiteGenerIndexAutAff("fr", ExplorStreamCode, "Corpus", 4);
  exit(EXIT_SUCCESS);
}
