#!/usr/bin/env perl

# Copyright (c) 2015 Christian Jaeger, copying@christianjaeger.ch
# This is free software. See the file COPYING.md that came bundled
# with this file.

use strict; use warnings; use warnings FATAL => 'uninitialized';

use Cwd 'abs_path';
our ($mydir, $myname); BEGIN {
    my $location= (-l $0) ? abs_path ($0) : $0;
    $location=~ /(.*?)([^\/]+?)_?\z/s or die "?";
    ($mydir, $myname)=($1,$2);
}
use lib "$mydir/../lib";


use PXML::XHTML ':all';
use FP::Lazy;
use FP::List;
use PXML::Serialize;

use utf8;

$|=1;

sub countdown {
    my ($i)=@_;
    lazyLight {
	#sleep 1;
	if ($i >= 0) {
	    cons (P($i),
		  countdown ($i-1));
	} else {
	    null
	      # XX should test undef here, too
	}
    }
}

sub page {
    my ($title,$mtime,$main)= @_;
    HTML(
	HEAD(
	    TITLE($title)),
	BODY(
	    $main,
	    HR(),
	    P(
		"By ", A({href=> "http://christianjaeger.ch"},
			 "Christian Jaeger"),
		", last modified at ", localtime($mtime)."", " (or something).")))
}

our $numbers= {
	       1=> "one",
	       2=> "two",
	       3=> "three"};

sub examplepage {
    my ($title)= @_;
    page("example page - $title",
	 $ENV{T} // time,
	 [
	  H1($title),
	  P("Garçon méchanique, \"1 < 2\" is true. ",
	    A({href=> "\"1 < 2\""},
	      "this will be 404")),
	  TABLE({border=>1},
		map {
		    TR(TD($_), TD($$numbers{$_}))
		} (1..3)),
	  countdown ($ENV{N} || 1e9),
	 ])
}

pxml_xhtml_print examplepage ("Hello World"), *STDOUT{IO}, "en";

