\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{craftlaw}[CraftLaw for the CraftFuze Legal Project, EU Look]

\LoadClass[a4paper,8pt,oneside]{article}
\RequirePackage[left=1cm, right=1cm, top=2cm]{geometry}
\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
\RequirePackage{blindtext}
\RequirePackage{fancyhdr}
\RequirePackage{titling}
\RequirePackage[shortlabels]{enumitem}
\RequirePackage{needspace}
\usepackage[document]{ragged2e}

% Indent
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt}
\setlist[enumerate,1]{leftmargin=1.5em,topsep=-1ex,itemsep=-1ex,partopsep=1ex,parsep=1ex,style=sameline}
\setlist[enumerate,2]{leftmargin=1.5em,topsep=-1ex,itemsep=-1ex,partopsep=1ex,parsep=1ex,style=sameline}
\setenumerate[0]{label=\textbf{\arabic*.}}

% Header and footer
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}

% New title layout
\newcommand{\settitle}[1]{\def\@lawtitle{#1}}
\newcommand{\setdate}[1]{\def\@date{#1}}

% General Data
\newcommand{\setheader}[1]{}

% Generate header and title
\newcommand{\generateHeader}{
	% Header
	\fancyhead[LE,LO]{\@date}
	\fancyhead[CE,CO]{Official Journal of the Crafty Table}
	\fancyhead[RE,RO]{\@lawtitle}

	% Title
	\noindent%
	\textbf{\large\fontfamily{phv}\fontseries{b}%
	\selectfont \@lawtitle}%
	\medskip%

}


% Introduction
\newcommand{\introduction}[1]{%
	\bigskip%
	\vbox{%
		Preamble:\medskip%
		
		\noindent{#1}%
	}%
}

% About Articles
\newcounter{TitleCounter}
\newcounter{TitleSubCounter}[TitleCounter]
\newcounter{ChapterCounter}[TitleCounter]
\newcounter{ChapterSubCounter}[ChapterCounter]
\newcounter{SectionCounter}[ChapterCounter]
\newcounter{SectionSubCounter}[SectionCounter]
\newcounter{ParagraphCounter}[SectionCounter]
\newcounter{SubParagraphCounter}[ParagraphCounter]
\newcounter{ArticleCounter}[TitleSubCounter]
\newcounter{ArticleSubCounter}[ArticleCounter]
\renewcommand{\title}[1]{%
	\stepcounter{TitleCounter}%
	
	\newpage%
	\bigskip%
	
	\centering%
	\noindent{TITLE \Roman{TitleCounter}}%
	
	\textbf{#1}%
}
\newcommand{\subtitle}[1]{%
	\stepcounter{TitleSubCounter}%
	
	\newpage%
	\bigskip%
	
	\centering%
	\noindent{TITLE \Roman{TitleCounter} \Alph{TitleSubCounter}}%
	
	\textbf{#1}%
}
\newcommand{\chapter}[1]{
	\stepcounter{ChapterCounter}%
	
	\needspace{20\baselineskip}%
	\bigskip%
	
	\centering%
	\noindent{CHAPTER \Roman{ChapterCounter}}%
	
	\textbf{#1}%
}
\newcommand{\subchapter}[1]{
	\stepcounter{ChapterSubCounter}%
	
	\needspace{20\baselineskip}%
	\bigskip%
	
	\centering%
	\noindent{CHAPTER \Roman{ChapterCounter} \Alph{ChapterSubCounter}}%
	
	\textbf{#1}%
}
\renewcommand{\section}[1]{%
	\stepcounter{SectionCounter}%
	
	\needspace{20\baselineskip}%
	\bigskip%
	
	\centering%
	\noindent{SECTION \Roman{SectionCounter}}%
	
	\textbf{#1}%
}
\renewcommand{\subsection}[1]{%
	\stepcounter{SectionSubCounter}%
	
	\needspace{20\baselineskip}%
	\bigskip%
	
	\centering%
	\noindent{SECTION \Roman{SectionCounter} \Alph{SectionSubCounter}}%
	
	\textbf{#1}%
}
\renewcommand{\paragraph}[1]{%
	\stepcounter{ParagraphCounter}%
	
	\needspace{20\baselineskip}%
	\bigskip%
	
	\centering%	
	\noindent{Paragraph §\arabic{ParagraphCounter}.\arabic{SubParagraphCounter}}%
	
	\textbf{#1}%
}
\renewcommand{\subparagraph}[1]{%
	\stepcounter{SubParagraphCounter}%
	
	\needspace{20\baselineskip}%
	\bigskip%
	
	\centering%
	\noindent{Paragraph §\arabic{ParagraphCounter}.\arabic{SubParagraphCounter}}%
	
	\textbf{#1}%
}
\newcommand{\article}[2]{%
	% Count 1 up
	\stepcounter{ArticleCounter}%
	
	% Demand space and take space
	\needspace{5\baselineskip}%
	\bigskip%

	% Center the title and print it
	\centering%
	\ifnum\value{TitleCounter}>0
		\ifnum\value{TitleSubCounter}>0
			\textit{Article \arabic{TitleCounter}\Alph{TitleSubCounter}:\arabic{ArticleCounter}}%
		\else
			\textit{Article \arabic{TitleCounter}:\arabic{ArticleCounter}}%
		\fi
	\else
		\textit{Article \arabic{ArticleCounter}}\newline%
	\fi

	\textbf{#1}%	
	\justify
	\par{#2}
	\bigskip%
}
\newcommand{\subarticle}[2]{%
	\stepcounter{ArticleSubCounter}%
	
	\needspace{5\baselineskip}%
	\bigskip%
	
	\centering%
	\ifnum\value{TitleCounter}>0
		\ifnum\value{TitleSubCounter}>0
		 	\textit{Article \arabic{TitleCounter}\Alph{TitleSubCounter}:\arabic{ArticleCounter}\alph{ArticleSubCounter}}%
		\else
			\textit{Article \arabic{TitleCounter}:\arabic{ArticleCounter}\alph{ArticleSubCounter}}%
		\fi
		
	\else
		\textit{Article \arabic{ArticleCounter}\alph{ArticleSubCounter}}%
	\fi
	
	\textbf{#1}%
	\justify
	\par{#2}%
	\bigskip%
}