# This is -*- tcl -*- right?
# $Id: official_title,v 1.4 2003/08/22 08:25:00 tobotras Exp $

rename TitlePage {}

proc TitlePage {} {
    set ultitle {}
    set ulname {}
    set lltitle {}
    set llname {}
    set urtitle {}
    set urname {}
    set lrtitle {}
    set lrname {}
    set theTitle {}

    withNode doctree element "TITLEPAGE" child element "DOCTITLE" {
	foreachNode child element "TITLEPART" {
	    set nVal [attVal "N"]
	    set nCont [textCdataFilter [textSdataFilter [content]]]
	    switch $nVal \
		"ultitle" { append ultitle $nCont } \
		"ulname" { append ulname [nameSpace $nCont] } \
		"urtitle" { append urtitle $nCont } \
		"urname" { append urname [nameSpace $nCont] } \
		"lltitle" { append lltitle $nCont } \
		"llname" { append llname [nameSpace $nCont] } \
		"lrtitle" { append lrtitle $nCont } \
		"lrname" { append lrname [nameSpace $nCont] } \
		default { append theTitle $nCont }
	}
    }

    foreach var "ultitle ulname urtitle urname lltitle llname lrtitle lrname" {
	if { "[set $var]" == "" } {
	    puts stderr "ERROR: All parts of official title page should be defined,
$var not found."
	    return "ERROR: All parts of official title page should be defined
\\clearpage"
	}
    }
		    
    return "
% Official title page
\{
\\hyphenpenalty=10000
\\newlength\{\\BoxW\}
\\setlength\{\\BoxW\}\{0.4\\textwidth\}
\\setlength\{\\baselineskip\}\{2\\baselineskip\}
\\parbox\[t\]\{\\BoxW\}\{
  \\begin\{raggedright\}
    \\Large\\textsf\{\\textbf\{\}\}\\\\\[\\bigskipamount\]
    \\large $ultitle \\\\\[\\bigskipamount\]
    \\underline\{\\hspace\{3cm\}\}~$ulname\\\\\[\\bigskipamount\]
    <<\\underline\{\\hspace\{8mm\}\}>>~\\underline\{\\hspace\{2cm\}\}~%
    200\\underline\{\\hspace\{6mm\}\}~.%
  \\end\{raggedright\}
  \}\\hfil\\parbox\[t\]\{\\BoxW\}\{
  \\begin\{raggedright\}
    \\Large\\textsf\{\\textbf\{\}\}\\\\\[\\bigskipamount\]
      \\large $urtitle \\\\\[\\bigskipamount\]
      \\underline\{\\hspace\{3cm\}\}~$urname\\\\\[\\bigskipamount\]
    <<\\underline\{\\hspace\{8mm\}\}>>~\\underline\{\\hspace\{2cm\}\}~%
    200\\underline\{\\hspace\{6mm\}\}~.%
  \\end\{raggedright\}
  \}
\\vfill
\\begin\{center\}
    \\Huge\{\\textbf\{\\textit\{$theTitle\}\}\}
\\end\{center\}
\\vfill
\\parbox\[t\]\{\\BoxW\}\{
    \\begin\{raggedright\}
    \\large $lltitle \\\\\[\\bigskipamount\]
      \\underline\{\\hspace\{3cm\}\}~$llname\\\\\[\\bigskipamount\]
    <<\\underline\{\\hspace\{8mm\}\}>>~\\underline\{\\hspace\{2cm\}\}~%
    200\\underline\{\\hspace\{6mm\}\}~.%      
    \\end\{raggedright\}
    \}\\hfil\\parbox\[t\]\{\\BoxW\}\{
    \\begin\{raggedright\}
      \\large $lrtitle \\\\\[\\bigskipamount\]
      \\underline\{\\hspace\{3cm\}\}~$lrname\\\\\[\\bigskipamount\]
      <<\\underline\{\\hspace\{8mm\}\}>>~\\underline\{\\hspace\{2cm\}\}~%
      200\\underline\{\\hspace\{6mm\}\}~.%         
    \\end\{raggedright\}
    \}
\\thispagestyle\{empty\}\\clearpage
\}
"
}

proc nameSpace { text } {
    regsub -all " " $text "~" var
    return $var
}
