%%CVS-tietoja:
%%$Author: $
%%$Date: $
%%$Revision: $

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ohjptdoku}[2004/03/23 Projektidokumentti]

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions

% Fontti-koko oltava ensimmäisenä.
\LoadClass[12pt, a4paper, finnish]{report}
%\LoadClass{report}

\usepackage{hyperref}
\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black,
    bookmarksnumbered=true
}


\RequirePackage[finnish]{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8x]{inputenc}
\RequirePackage[dvips]{graphicx}
\RequirePackage{lastpage}
\RequirePackage{times}

%%secnumdepth:llä määritellään montako otsikkotasoa numeroidaan
%%käytettäessä report-luokkaa, käytössä arvot -1..5
\setcounter{secnumdepth}{5}
%%tocdepth määrittelee montako otsikkotasoa näkyy sisällysluettelossa
\setcounter{tocdepth}{5}


%%Tästä alkavat tekstin asettelua koskevat komennot

% tämä on kappaleen alun sisennys
\setlength{\parindent}{0pt}
% tämä on kappalevälijuttu
\setlength{\parskip}{1.2ex plus .1ex minus .1ex}

\pagestyle{empty}

\def\vckey$#1${\texttt{\small #1}}

%%HYTT:n dokumentoinnin tyylioppaan ohjeiden mukaisesti palstan yläreuna 
%%on 3.5 cm sivun yläreunan alapuolella
\setlength{\voffset}{-1in}
\setlength{\topmargin}{15mm}
\setlength{\headheight}{5mm}
\setlength{\headsep}{15mm}

%%...palstan korkeus on 21.7cm
\setlength{\textheight}{217mm}

%%sivun korkeus (A4) = 297mm -> 297mm-35mm-217mm=45mm
%%palstan alareunasta on siis 45mm sivun alareunaan,
%%ja alatunnisteen yläreunan tulisi olla 2cm sivun alareunasta 
%%45mm-20mm=25mm, palstan alareunasta on siis 25mm alatunnisteen 
%%yläreunaan, josta on (sovitaan tunnisteen kooksi 5mm) 5mm 
%%alatunnisteen alareunaan
\setlength{\footskip}{30mm}



%%palstan vasen marginaali on 4.5cm sivun vasemmasta reunasta
\setlength{\hoffset}{-1in}
\setlength{\oddsidemargin}{45mm}
%%tekstipalsta alkaa 2.5cm marginaalista
%\addtolength{\oddsidemargin}{25mm}
\setlength{\textwidth}{145mm}


%%seuraavan komennon avulla saadaan taulukoiden yläpuolisten otsikoiden
%%jälkeen tulemaan väli
\addtolength{\belowcaptionskip}{+3mm}




%% Dokumentin alkusivulta löydyttävät tiedot
\global\let\doku@koulu\empty
\global\let\doku@laitos\empty
\global\let\doku@kurssi\empty
\global\let\doku@projekti\empty
\global\let\doku@projektinimi\empty
\global\let\doku@projektiNro\empty

%%seuraavia tarvitaan etusivun tietojen kuvaukseen
\global\let\doku@preJakelu\empty
\global\let\doku@preVastuu\empty
\global\let\doku@preVersio\empty
\global\let\doku@preMuokattu\empty
\global\let\doku@postNro\empty
\global\let\doku@ryhmaNimi\empty
\global\let\doku@jakelu\empty

\global\let\doku@vastuuhenkilo\empty
\renewcommand{\author}[1]{\renewcommand{\doku@vastuuhenkilo}{#1}}
\global\let\doku@projektiryhma\empty
\global\let\doku@dokumentti\empty
\renewcommand{\title}[1]{\renewcommand{\doku@dokumentti}{#1}}
\global\let\doku@versio\empty
\newcommand{\versio}[1]{\renewcommand{\doku@versio}{#1}}
\global\let\doku@paiva\empty
\renewcommand{\date}[1]{\renewcommand{\doku@paiva}{#1}}
\def\today{\number\day.\number\month.\number\year}

%%Seuraavat komennot liitteiden nimen saamiseksi ylätunnisteeseen
%%ennenkuin siihen löytyy järkevämpi tapa
\global\let\doku@liiteNimi\empty
\newcommand{\liiteNimi}[1]{\renewcommand{\doku@liiteNimi}{#1}}



\renewcommand{\maketitle}{\begin{titlepage}%
\vspace*{-2\headsep}
%\hspace*{-1.5\oddsidemargin}%
\begin{minipage}[b]{\textwidth}
  \textbf{\Large\doku@koulu}\\
  \textbf{\large\doku@laitos}\\
  \textbf{\normalsize\doku@kurssi}
\end{minipage}
\par
\vspace*{4cm}
\begin{center}
  \doku@projekti \\[2ex]
  \vrule width 0.7\textwidth height 1ex depth 0pt \\[6ex]
  {\Huge \doku@dokumentti}  %%\\[2ex]
  %%{\LARGE \doku@vastuuhenkilo}
\end{center}
\vspace*{\stretch{1}}

%%Kansilehden alareunan tiedot
\begin{tabular}[b]{|@{}p{0.5\textwidth}|@{}p{0.5\textwidth}|}

  \hline
  \begin{tabular}[t]{p{0.485\textwidth}}

    \textbf{\doku@preJakelu} \\ \doku@jakelu \\ \\
    \hline

    \textbf{\doku@preVastuu} \doku@vastuuhenkilo\\
    \textbf{\doku@preVersio} \doku@versio\\
    \textbf{\doku@preMuokattu} \doku@paiva \\
  \end{tabular} & \doku@projektiryhma \\
  \hline

\end{tabular}

%%Vanha tapa tehdä  kansilehden alareunan tiedot
%%\begin{minipage}[b]{0.5\textwidth}
%%\doku@preJakelu \doku@jakelu\\
%%\doku@preVastuu \doku@vastuuhenkilo\\
%%\doku@preVersio \doku@versio\\
%%\doku@preMuokattu \doku@paiva\\
%%\end{minipage}
%%\hspace{\stretch{1}}
%%\doku@projektiryhma

\end{titlepage}}




%%sivutyylin määrittely
\def\ps@prjdoku{%

  %%Luodaan muoto ylätunnisteelle
  \def\@oddhead{
    \begin{itshape}\begin{sffamily}
      {\scriptsize

        \begin{tabular*}{\textwidth}[t]{@{}l@{\extracolsep\fill} c r@{}}

          \doku@projektiNro \doku@postNro \doku@projektinimi &
          \doku@dokumentti & \doku@preVersio \doku@versio\\
	  \hline
        \end{tabular*}

      }
    \end{sffamily}\end{itshape}
  }

  %%Luodaan muoto alatunnisteelle
  \def\@oddfoot{      
    \begin{itshape}\begin{sffamily}
      {\scriptsize

        \begin{tabular*}{\textwidth}[t]{@{}l@{\extracolsep\fill}r@{}}
          \hline
          \doku@preMuokattu \doku@paiva & \thepage/\pageref{LastPage}
        \end{tabular*}

      }
    \end{sffamily}\end{itshape}
  }

  %%Kun dokumenttiluokkana on raportti, ei evenfoot/head:lla ole käyttöä
  %%ja siksi niitä ei ole päivitetty vastaamaan viimeisintä mallia
  \def\@evenfoot{\thepage/\pageref{LastPage}\hfil\textrm{\doku@paiva}\hfil\textrm{\doku@versio}}
  \def\@evenhead{\textrm{\doku@dokumentti}\hfil\textsc{{\large \doku@projektinimi}}}%

   \let\@mkboth\@gobbletwo
   \let\chaptermark\@gobble
   \let\sectionmark\@gobble
}
\let\ps@plain\ps@prjdoku



%%Määritellään liitteiden sivumuoto
\def\ps@liitteet{%

  %%Luodaan muoto ylätunnisteelle
  \def\@oddhead{
    \begin{itshape}\begin{sffamily}
      {\scriptsize

        \begin{tabular*}{\textwidth}[t]{@{}l@{\extracolsep\fill} c r@{}}
          \doku@projektiNro \doku@postNro \doku@projektinimi &
          \doku@liiteNimi & \\
          \hline
        \end{tabular*}

      }
    \end{sffamily}\end{itshape}
  }


  %%Luodaan muoto alatunnisteelle
  \def\@oddfoot{
    \begin{itshape}\begin{sffamily}
      {\scriptsize

        \begin{tabular*}{\textwidth}[t]{@{}l@{\extracolsep\fill}r@{}}
          \hline
           & \thepage/\pageref{LastPage}
        \end{tabular*}

      }
    \end{sffamily}\end{itshape}
  }

  \def\@evenfoot{\thepage/\pageref{LastPage}\hfil\textrm{\doku@paiva}\hfil\textrm{\doku@versio}}
  \def\@evenhead{\textrm{\doku@dokumentti}\hfil\textsc{\doku@projektinimi}}%
% \def\@oddhead{\textsc{\doku@projektinimi}\hfil\textrm{\doku@dokumentti}}%
  \let\@mkboth\@gobbletwo
  \let\chaptermark\@gobble
  \let\sectionmark\@gobble
}




\newcommand\sisallys{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
       %%\pagestyle{sisalto}
       %%\thispagestyle{sisalto}
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
 }

\newenvironment{tulosteet}[1]
     {\section{Tulosteet ja virheilmoitukset}%
      \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `riskilista' environment}}%
      \endlist}

\input{dokudef.clo}

\ps@prjdoku

%% Makroja
%%%%%%%%%%%%%%%%%%%%

%% Päivämäärän muotoilu kauniimmaksi
\def\versiopaiva #1,#2:#3:#4|{#2:#3}

% TIME OF DAY
\newcount\hh
\newcount\mm
\mm=\time
\hh=\time
\divide\hh by 60
\divide\mm by 60
\multiply\mm by 60
\mm=-\mm
\advance\mm by \time
\def\hhmm{\number\hh:\ifnum\mm<10{}0\fi\number\mm}
