# -*- tcl -*-
# $Id: script,v 1.11 2003/07/11 13:40:33 tobotras Exp $

require TEItools.tcl
require textutil.tcl
require Simple.tcl
TEItoolsSetup "tex"
require TEItoolsTeX.tcl

set courseNo 0
set institutionNo 0

specification translate {
    {element RESUME} {
	prefix	{
	    \\documentclass\[12pt\]{article}
	    [locale "\\usepackage\[koi8-r\]{inputenc}\\usepackage\[english,russian\]{babel}" ""]
	    \\usepackage{geometry,textcomp}
	    \\begin{document}
	    \\geometry{a4paper,top=1cm,left=1.5cm,right=1cm,bottom=1.5cm}
	    \\raggedright
	    \\thispagestyle{empty}
	}
	suffix	{
	    \\end{document}
	}
    }
    {element HEADER} {
	prefix	{}
	cdataFilter	null
	sdataFilter	null
    }
    {element NAME} {
	prefix	{
	    \\begin{center}
	    \\huge \\bf \\sffamily
	}
	suffix	{
	    \\end{center}
	}
    }
    {elements "FIRSTNAME MIDDLENAME LASTNAME"} {
	prefix	" "
    }
    {element EMAIL} {
	prefix	{
	    \\begin{center}
	    \\ttfamily 
	}
	suffix	{
	    \\end{center}
	}
    }
    {element SUMMARY} {
	prefix	{
	    \\begin{center}
	    \\Large \\sffamily 
	    [locale " " "Summary"]
	    \\end{center}

	    \\begin{itemize}
	}
	suffix	{
	    \\end{itemize}
	}
    }
    {element PARA in SUMMARY} {
	prefix	{\\item {} }
	suffix	{

	}
    }
    {element QUOTE} {
	prefix	{[locale "<<" "``"]}
	suffix	{[locale ">>" "''"]}
    }
    {element EMPLOYMENT} {
	prefix	{
	    \\begin{center}
	    \\Large \\sffamily
	    [locale " " "Employment history"]
	    \\end{center}

	    \\begin{description}

	}
	suffix	{
	    \\end{description}
	}
    }
    {element DATE} {
	prefix	{\\item\[}
	suffix	{\]: }
    }
    {elements "COMPANY INSTNAME"} {
	prefix	{\\textbf\{}
	suffix	{\}\\\\
	}
    }
    {element POSITION in ITEM} {
	prefix	{
	    
	    [locale "" "Position"]: }
	suffix	{.\\par{}}
    }
    {element DESCRIPTION} {
	prefix	{}
    }
    {element KW} {
	prefix {\\textbf\{}
	suffix {\}}
    }
    {element AGE} {
	prefix [age]
    }
    {element ITEM} {
	prefix	{}
	suffix	{

	}
    }
    {element INSTITUTION} {
	prefix	{
	    \\begin{description}
	}
	suffix	{
	    \\end{description}
	}
    }
    {element COURSE} {
	startAction {
	    global courseNo
	    incr courseNo
	}
	prefix	{[course]
	    \\begin{description}
	}
	suffix	{
	    \\end{description}
	}
    }
    {elements "PARA SPECIALITY CERTIFICATE AUTHORITY"} {
	prefix	{}
	suffix	{\\par{}}
    }
    {element LIST} {
	prefix	{
	    \\begin{itemize}
	}
	suffix	{
	    \\end{itemize}
	}
    }
    {element LISTITEM in LIST} {
	prefix	{\\item {} }
	suffix	{

	}
    }
    {element EDUCATION} {
	prefix	{
	    \\begin{center}
	    \\Large \\sffamily
	    [locale "" "Education"]
	    \\end{center}
	}
    }
    {element PERSONALINFO} {
	prefix	{
	    \\begin{center}
	    \\Large \\sffamily
	    [locale " " "Personal information"]
	    \\end{center}
	}
    }
    {element KW} {
	prefix	{}
    }
    {el} {
	prefix	{[openUnknown]}
	sdataFilter	sFilter
    }
}

substitution sFilter {
    {[amp   ]} {\&}
    {[nbsp  ]} {~}
    {[mdash ]} {~--- }
}

proc course {} {
    global courseNo
    if { $courseNo == 1 } {
	return "\{\\Large\\sffamily [locale  Courses\ and\ trainings]\}"
    } else {
	return
    }
}


proc engAge { age } {
    return $age
}

proc rusAge { age } {
    set lastDigit [string index $age [expr [string length $age] - 1]]
    switch -regexp $lastDigit {
	"1" { set s "" }
	"2|3|4" { set s "" }
	"5|6|7|8|9|0" { set s "" }
    }
    return "$age $s"
}

proc age {} {
    set born [query attval "BORN"]
    set age 0
    catch {
	set age [expr [clock format [clock seconds] -format %Y] - $born]
    }
    if { $age < 10 || $age > 100 } {
	error "Bad age: $age"
    }
    return [eval [locale rusAge engAge] $age]
}

proc locale { rus eng } {
    global env
    set lang $env(LANG)
    withNode docroot descendant element "RESUME" {
	set langAttr [query attval "lang"]
	if { "$langAttr" != "" } {
	    set lang $langAttr
	}
    }
    set lang [string tolower $lang]
    if { $lang == "koi8-r" } {
	return $rus
    } else {
	return $eng
    }
}
    
