/*****************************************************************************
 *
 * FILE:	cookies.c
 * DESCRIPTION:	operate cookies
 * DATE:	Tue, Apr  2 2002
 * UPDATE:	Sun, Aug 19 2007
 * AUTHOR:	Kouichi ABE (WALL) / °¤Éô¹¯°ì
 * E-MAIL:	kouichi@MysticWALL.COM
 * URL:		http://www.MysticWALL.COM/
 * COPYRIGHT:	(c) 2002-2007 °¤Éô¹¯°ì¡¿Kouichi ABE (WALL), All rights reserved.
 * COMPILE:	gcc -export-dynamic cookies.c -o cookies.cgi
 *		-I/usr/local/include -L/usr/local/lib
 *		-lcockatrice -lcatoblepas -lwkf -lmd
 * $Id: cookies.c,v 1.2 2007/08/19 16:50:38 kouichi Exp $
 *
 *****************************************************************************/

#include <stdio.h>
#include <string.h>
#include <cockatrice.h>
#include <catoblepas.h>

static void	post(CGI *);
static void	view(CGI *);

void
post(cgi)
	register CGI *	cgi;
{
  HTML *	html;

  cgi->header("text/html");

  html = newHTML401(HTML4);
  if (html) {
    html->html.attr.lang = "ja";
    html->html.begin();
    html->head.begin();
    html->title("Let's eat Cookies!");
    html->head.end();
    html->body.begin();
    html->div.begin();
      html->form.begin(cgi->script_name, METHOD_POST);
	html->div.begin();
	html->input.hidden("action", "view");
	html->div.end();
	html->table.attr.border = 0;
	html->table.begin();
	  html->tr.begin();
	    html->td.begin();
	      html->print("Name:");
	    html->td.end();
	    html->td.begin();
	      if (cgi->cookie->get("NAME") == NULL) {
		html->input.text("name", "", 20, 20);
	      }
	      else {
		html->input.text("name", cgi->cookie->get("NAME"), 20, 20);
	      }
	    html->td.end();
	  html->tr.end();
	  html->tr.begin();
	    html->td.begin();
	      html->print("E-Mail:");
	    html->td.end();
	    html->td.begin();
	      if (cgi->cookie->get("EMAIL") == NULL) {
		html->input.text("email", "", 20, 20);
	      }
	      else {
		html->input.text("email", cgi->cookie->get("EMAIL"), 20, 20);
	      }
	    html->td.end();
	  html->tr.end();
	html->table.end();
	html->div.begin();
	html->input.submit("ok", "Send");
	html->input.reset("ng", "Cancel");
	html->div.end();
      html->form.end();
    html->div.end();
    html->body.end();
    html->html.end();
    html->done();
  }
}

void
view(cgi)
	register CGI *	cgi;
{
  HTML *	html;

  cgi->cookie->setName("NAME", cgi->param("name"));
  cgi->cookie->setMaxAge("NAME", 600);
  cgi->cookie->setName("EMAIL", cgi->param("email"));
  cgi->cookie->setMaxAge("EMAIL", 600);
  cgi->cookie->setPath("EMAIL", "/");

  cgi->header("text/html");

  html = newHTML401(HTML4);
  if (html) {
    html->html.attr.lang = "ja";
    html->head.begin();
    html->title("Let's eat Cookies!");
    html->head.end();
    html->body.begin();
      html->table.begin();
	html->tr.begin();
	  html->td.begin();
	    html->print("Name:");
	  html->td.end();
	  html->td.begin();
	    html->printe(cgi->param("name"));
	  html->td.end();
	html->tr.end();
	html->tr.begin();
	  html->td.begin();
	    html->print("E-Mail:");
	  html->td.end();
	  html->td.begin();
	    html->printe(cgi->param("email"));
	  html->td.end();
	html->tr.end();
      html->table.end();
    html->body.end();
    html->html.end();
    html->done();
  }
}


int
main(argc, argv)
	int	argc;
	char	**argv;
{
  CGI *	cgi;

  cgi = newCGI(CC_MODULE_STANDARD);
  if (cgi == NULL) {
    fprintf(stderr, "Error: %d\n", cgi_errno);
    return -1;
  }

  if (cgi->param("action") == NULL) {
    post(cgi);
  }
  else if (strcmp(cgi->param("action"), "view") == 0) {
    view(cgi);
  }
  else {
    post(cgi);
  }
  cgi->done();

  return 0;
}
