#include <stdio.h>
#include <string.h>

#include "csvparser.h"

int main() {
    int i =  0;
    //                                   file, delimiter, first_line_is_header?
    CsvParser *csvparser = CsvParser_new("vec.csv", ",", 1);
    CsvRow *row;
    const CsvRow *header = CsvParser_getHeader(csvparser);

    if (header == NULL) {
        printf("%s\n", CsvParser_getErrorMessage(csvparser));
        return 1;
    }
    const char **headerFields = CsvParser_getFields(header);

    printf("<HTML>\n");
    printf("  <HEAD>\n");
    printf("  </HEAD>\n");
    printf("  <BODY>\n");
    (void)CsvParser_getNumFields(header);
    while ((row = CsvParser_getRow(csvparser)) ) {
        const char **rowFields = CsvParser_getFields(row);
        int fields = CsvParser_getNumFields(row);
        if ((fields >= 1) && (strcmp(rowFields[0], "y") == 0 || strcmp(rowFields[0], "n") == 0)) {
          printf("<HR>\n");
          printf("<H2>%s</H2>\n", rowFields[1]);
          printf("<UL>\n");
          for (i = 0 ; i < fields; i++) {
            if (i == 1) continue;
            if (*headerFields[i] == '\0') {
              if (*rowFields[i] != '\0') {
                printf("<LI>See also: ");
                printf("<A HREF=\"%s%s\">%s%s</A>",
                       strncmp(rowFields[i], "http", 4) != 0 ? "http://" : "", rowFields[i],
                       strncmp(rowFields[i], "http", 4) != 0 ? "http://" : "", rowFields[i]);
                printf("\n");
              }
            } else {
              if (*rowFields[i] != '\0') {
                if (strncmp(rowFields[i], "http", 4) == 0) {
                  printf("<LI>%s: ", headerFields[i]);
                  printf("<A HREF=\"%s\">%s</A>", rowFields[i], rowFields[i]);
                  printf("\n");
                } else {
                  printf("<LI>%s: ", headerFields[i]);
                  printf("%s", rowFields[i]);
                  printf("\n");
                }
              }
            }
          }
          printf("</UL>\n");
	  printf("\n");
        }
        CsvParser_destroy_row(row);
    }
    CsvParser_destroy(csvparser);
    printf("    <ADDRESS>\n");
    printf("    </ADDRESS>\n");
    printf("  </BODY>\n");
    printf("</HTML>\n");
	
    return 0;
}
