% $Id: fiwi-yearbeginning.bbx, v 1.3 2015/06/30 Simon Spiegel
% Stil mit Jahrestahl nach Autor

\ProvidesFile{fiwi-yearbeginning.bbx}[v 1.3 2015/06/30 film studies bibliography style Author (Year)]

\RequireBibliographyStyle{fiwi}

\DeclareFieldFormat{yearparens}{%
\iffieldundef{year}
{\mkbibbrackets{#1}\ifentrytype{collection}{}{\addcolon\addspace}}
{\mkbibparens{#1}\ifentrytype{collection}{}{\addcolon\addspace}}}
\DeclareFieldFormat{pubstate}%
{\ifbibstring{#1}{\mkbibbrackets{\midsentence\bibstring{#1}}}{#1}}


\renewcommand{\ppspace}{}

\DeclareBibliographyOption{mergedate}[true]{%
  \ifcsdef{bbx@opt@mergedate@#1}
    {\csuse{bbx@opt@mergedate@#1}}
    {\PackageError{biblatex}
       {Invalid option 'mergedate=#1'}
       {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak
        'true' (=compact), and 'false'.}}}

\providebibmacro*{date+extrayear}{}


\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@basic}

\def\bbx@opt@mergedate@maximum{%
  \renewbibmacro*{date+extrayear}{%
      \printtext[yearparens]{%
         \iftoggle{isreview}{\printfield{year}}%
         {\printfield{issue}%
	 {\setunit*{\addspace}%
	 \printdateextralabel%
	 \usebibmacro{date:origyear}}%
	 }}}%
  \renewbibmacro*{date}{}%
  \renewbibmacro*{issue+date}{}%
}

\def\bbx@opt@mergedate@compact{%
  \renewbibmacro*{date+extrayear}{%
  \printtext[yearparens]{%
       \iftoggle{isreview}{\printfield{year}}%
       {\iffieldundef{day}
       {\printdateextralabel}
       {\printfield{year}\printfield{extrayear}}}%
       \usebibmacro{date:origyear}}%      
  \renewbibmacro*{date}{}%
  \renewbibmacro*{issue+date}{%
    \iffieldundef{pages}
  {}
  {\ifterm{}{\setunit{\addcomma\addspace}}}
\iffieldundef{issuetitle}{\setunit*{\addcomma}}{\addcolon\addthinspace}\printtext{%
  \iffieldundef{issue}%
  {\iffieldundef{month}%
  {}%
  {\iffieldundef{day}%
  {\ifpunctmark{*}%
  {\addspace}{}%
  \setunit{\addspace}}%
  {\printdate\ifpunctmark{*}{\addspace}{}}}}%
  {\printfield{issue}}}%
}}}%

\def\bbx@opt@mergedate@basic{%
  \renewbibmacro*{date+extrayear}{%
  \printtext[yearparens]{%
	 \iftoggle{isreview}{\printfield{year}}%
	 {\printfield{labelyear}%
	 \printfield{extrayear}%
	 \usebibmacro{date:origyear}}}}%
  \renewbibmacro*{date}{%
    \iffieldundef{month}
      {}
      {\printdate}}%
  \renewbibmacro*{issue+date}{%
    \iffieldundef{pages}
  {}
  {\ifterm{}{\setunit{\addcomma\addspace}}}
  \iffieldundef{issuetitle}{\setunit*{\addcomma}}{\addthinspace}\printtext{%
  \iffieldundef{issue}%
  {\iffieldundef{month}%
  {}%
  {\iffieldundef{day}%
  {\ifpunctmark{*}%
  {\addspace}{}\printfield{month}%
  \iffieldundef{endmonth}%
  {}%
  {\printtext[endyear]{\mkbibmonth{\thefield{endmonth}}}}%
  \setunit{\addspace}}%
  {\ifpunctmark{*}{\addspace}{}\printdate}}}%
  {\printfield{issue}}}}%
}

\def\bbx@opt@mergedate@minimum{%
  \renewbibmacro*{date+extrayear}{%
  \printtext[yearparens]{%
	 \iftoggle{isreview}{\printfield{year}}%
	 {\printfield{labelyear}%
	 \printfield{extrayear}%
	 \usebibmacro{date:origyear}}}}}%
  \renewbibmacro*{date}{%
    \ifboolexpr{
      test {\iffieldundef{month}}
      and
      test {\iffieldundef{extrayear}}
    }
      {}
      {\printdate}}%
  \renewbibmacro*{issue+date}{%
    \iffieldundef{pages}
  {}
  {\ifterm{}{\setunit{\addcomma\addspace}}}
  \iffieldundef{issuetitle}{\setunit*{\addcomma}}{\addthinspace}\printtext{%
  \iffieldundef{issue}%
  {\iffieldundef{month}%
  {}%
  {\iffieldundef{day}%
  {\ifpunctmark{*}%
  {\addspace}{}%
  \setunit{\addspace}}%
  {\ifpunctmark{*}{\addspace}{}}}}%
  {\printfield{issue}}%
      \addspace\printdate}%
    \newunit}%
%

\def\bbx@opt@mergedate@false{%
  \renewbibmacro*{date+extrayear}{%
  \printtext[yearparens]{%
	 \iftoggle{isreview}{\printfield{year}}%
	 {\printfield{labelyear}%
	 \printfield{extrayear}%
	 \usebibmacro{date:origyear}}}}%
  \renewbibmacro*{date}{\printdate}%
  \renewbibmacro*{issue+date}{%
    \iffieldundef{pages}
  {}
  {\ifterm{}{\setunit{\addcomma\addspace}}}
  \iffieldundef{issuetitle}{\setunit*{\addcomma}}{\addthinspace}\printtext{%
  \iffieldundef{issue}%
  {\iffieldundef{month}%
  {}%
  {\iffieldundef{day}%
  {\ifpunctmark{*}%
  {\addspace}{}%
  \setunit{\addspace}}%
  {\ifpunctmark{*}{\addspace}{}}}}%
  {\printfield{issue}\addspace}%
  \printdate}%
  \newunit}%
}

\ExecuteBibliographyOptions{indexing=cite,useprefix=true,sorting=nyt,date=long,urldate=long,hyperref=auto,pagetracker=true,ibidtracker=context,citetracker=true,labeldate=true,mergedate=true}

\newbibmacro{date:origyear}{%
\ifboolexpr{ ( (not test {\iffieldundef{origyear}} 
       or test {\iffieldequalstr{relatedtype}{origpubin}})
       and test {\iftoggle{origyearwithyear}} 
       and  test {\iffieldundef{origtitle}} ) }%
       {\iftoggle{origyearbrackets}
       {\addthinspace\mkbibbrackets{%
       \iffieldequalstr{relatedtype}{origpubin}
       {\entrydata*{\thefield{related}}{%
       \printfield[origyear]{year}%
       }}
       {\printfield{origyear}}}}%
       {\addslash%
       \iffieldequalstr{relatedtype}{origpubin}
       {\entrydata*{\thefield{related}}{%
       \printfield[origyear]{year}%
       }}
       {\printfield{origyear}}}}%
       {}}

\renewbibmacro*{incollectioneditor}{%
  \ifnameundef{editor}
    {}
    {{\ifnamesequal{author}{editor}{%
    \ifthenelse{\value{author}>1}%
    {\bibstring{idempp}}%
    {\bibstring{idem\thefield{gender}}}}{%
    \printnames{editor}}\addspace}%
     \ifentrytype{book}{}{\usebibmacro{editorstrg}}}}  
       
\renewbibmacro*{editorstrg}{%
  \printtext{\mkbibparens{\unspace
  \ifnum\theeditor>1
  \bibstring{editors}%
  \else
    \bibstring{editor}%
  \fi}}%
    \ifthenelse{\(
  \ifentrytype{book}%
  \and \ifnameundef{author}%
  \and \not \ifnameundef{editor}%
  \)%
  }%
  {\addspace}%
  {\addcolon}}

       
  
  \renewbibmacro*{journal+issuetitle}{%
  \ifentrytype{periodical}
  {\usebibmacro{periodical}}
  {\usebibmacro{journal}}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
\iffieldundef{volume}{}{%
\iftoggle{bbx:volumeinparens}
{\addspace\mkbibparens{\printfield{volume}\unspace}}
{\newunit\printfield{volume}}%
\iffieldundef{number}%
	{\ifboolexpr{%
( test {\iffieldundef{number}} and not test {\iffieldundef{issuetitle}})
}
	{\addcolon}%
	{\iffieldundef{pages}{\addperiod}{\addcomma}}}
	{\iftoggle{bbx:volumeinparens}{}{\addcomma}}}%
\iffieldundef{number}
	{}{\printtext{\addspace\printfield{number}}\addspace}%
\ifentrytype{periodical}{\usebibmacro{date+extrayear}}{}
\printfield{eid}%%
\ifentrytype{periodical}{}
{\usebibmacro{issue+date}}%
\iffieldundef{issuetitle}{}{\addcolon\addspace\printtext{\usebibmacro{issue}}}
\ifnameundef{editor}{}{\addperiod\addspace\usebibmacro{byeditor}\setunit{\addcomma\space}}%%
}

\renewbibmacro*{org+publ+loc+year}{%
\iftoggle{printaddress}{}{\clearlist{location}}
  \iffieldundef{organization}
    {}
    {\printfield{organization}%
     \newunit}%
  \iflistundef{publisher}
    {\iflistundef{location}
       {}
       {\printlist{location}\addspace\usebibmacro{date}%
        \setunit{\addspace}}}
    {\iflistundef{location}
       {}
       {\printlist{location}}%
        \iftoggle{printpublisher}
     {\setunit{\isdot\addcolon\addspace}%
     \printlist{publisher}\addspace%
     \usebibmacro{date}%
     \setunit{\addcomma\space}}%
     {\addspace\usebibmacro{date}}
     \iftoggle{dontprintorig}{\printfield{year}}{}}}

\renewbibmacro*{addendum+pubstate}{%
	\ifboolexpr{%
( test {\iftoggle{ignoreaddendum}} and test {\ifbibliography})
or ( test {\iftoggle{ignoreaddendumcit}} and test {\ifcitation} )
}
{\clearfield{addendum}}{}%
	\printfield{pubstate}%
	\newunit\newblock%
	\printfield{addendum}}
  
\renewbibmacro*{doi+eprint+url}{%
  \iftoggle{bbx:doi}
    {\printfield{doi}}
    {}%
  \newblock
  \iftoggle{bbx:eprint}
    {\usebibmacro{eprint}}
    {}%
  \newblock
  \iftoggle{bbx:url}
    {\usebibmacro{url+urldate}}
    {}} 

\newbibmacro*{publ+loc+origyear}{%
\iftoggle{printaddress}{}{\clearlist{location}}
\printlist{location}%
\iftoggle{printpublisher}%
    {\iflistundef{publisher}%
        {\iftoggle{markmissingpublisher}
			{\addcolon\addspace\textbf{???}\setunit{\addcomma\space}}
			{\setunit*{\space}}}%
        {\setunit{\isdot\addcolon\space}\printlist{publisher}}}%
        {\setunit*{\space}}%        
	\iftoggle{dontprintorig}
		{\iftoggle{printpublisher}%
			{\addspace}{}%
			\ifboolexpr{(
			test {\iftoggle{isreview}} 
			or test {\iftoggle{dontprintorig}} )}
				{\printfield{year}}
				{\printfield{labelyear}}}
			{\usebibmacro{date}}%
		\usebibmacro{origyear}%
}%     



\newbibmacro*{inst+loc}{%
\iftoggle{printaddress}{}{\clearlist{location}}
  \iflistundef{institution}
    {\iflistundef{location}
       {}
       {\printlist{location}%
        \setunit{\addspace}}}
    {\iflistundef{location}
       {}
       {\printlist{location}%
        \setunit{\isdot\addcolon\space}}%
     \printlist{institution}}}

\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\iftoggle{isreview}{}{\usebibmacro{bbx:savehash}}%
        \printnames{author}%
        \iffieldundef{nameaddon}{}
  {\printfield{nameaddon}}%
	\iffieldundef{authortype}
	  {\setunit{\addspace}}
	  {\setunit{\addcomma\space}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
	\setunit{\addspace}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}}
\renewbibmacro*{labeltitle}{%
  \iffieldundef{label}
    {\iffieldundef{shorttitle}
       {\printfield{title}%
        \clearfield{title}}
       {\printfield[title]{shorttitle}}}
    {\printfield{label}}}

\DeclareBibliographyDriver{review}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator}%
  \usebibmacro{date+extrayear}%
  \newblock\toggletrue{isreview}%
  \usebibmacro{review}{\thefield{related}}%
  \togglefalse{isreview}\newunit\newblock
  \usebibmacro{bytranslator}%
  \newunit\newblock
  \usebibmacro{in:}%
  %\newblock%
  \ifboolexpr {
  not test {\iflistundef{location}}
  and not test {\ifnameundef{editor}}
  }
  {\iftoggle{partofcited}
  {\iffieldundef{xref}
  {\mancite\textcite{\thefield{crossref}}}
  {\mancite\textcite{\thefield{xref}}}
  \usebibmacro{chap+pag}}
  {\newblock%
  \ifnameundef{bookauthor}%
  {\ifnameundef{editor}
  {}
  {\usebibmacro{incollectioneditor}}}
  {\usebibmacro{bybookauthor}}
  %\newunit
  \newblock%
  \usebibmacro{mtitle+vol+btitle+bstitle}%
  \ifnamesequal{author}{editor}
  {\ifnameundef{bookauthor}
  {}
  {\usebibmacro{byeditor}}}
  {}
  \ifnamesequal{author}{bookauthor}
  {\ifnameundef{editor}
  {}
  {\usebibmacro{byeditor}\newunit}%
  {}
  }%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{ser+num}%
  \newunit\newblock
    \printfield{edition}%
  \printfield{note}%
  \newunit
  \usebibmacro{org+publ+loc+year}
  \newblock%
  \usebibmacro{chap+pag}%
  \newblock}}
  {\usebibmacro{journal+issuetitle}%
  \iffieldundef{pages}
  	{\setunit{\addperiod}}
  	{\addcomma\addspace\printfield{pages}}}%
  \newunit\newblock%
  \bibsentence\printfield{note}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock%
  \usebibmacro{doi+eprint+url}%
  %\setunit{.}\newblock
  \addspace\usebibmacro{origyear+location+title}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \finentry}

\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator}%
  \usebibmacro{date+extrayear}%
  \newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{bytranslator}%
  \newunit\newblock
  \usebibmacro{in:}%
  %\newblock%
  \usebibmacro{journal+issuetitle}%
  \iffieldundef{pages}
	{\setunit{\addperiod}}
	{\addcomma\addspace\printfield{pages}}%
  \newunit\newblock%
  \iffieldundef{note}
	{}
	{\bibsentence\printfield{note}}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock%
  \usebibmacro{doi+eprint+url}%
  %\setunit{.}\newblock
  %\addspace\usebibmacro{origyear+location+title}%
  %\newblock
  \addspace\usebibmacro{related:translatedas}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \finentry}

\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{test:partofcited}%
  \iftoggle{dontprintorig}{}%
  {\usebibmacro{author/translator}%
  \usebibmacro{date+extrayear}}%
  %\newunit\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{bytranslator}%
  \newunit\newblock
  \usebibmacro{in:}%
  %\newunit%
  \iftoggle{partofcited}
  {\iffieldundef{xref}
  {\mancite\textcite{\thefield{crossref}}}
  {\mancite\textcite{\thefield{xref}}}
  \usebibmacro{chap+pag}}
  {\newblock%
  \ifnameundef{bookauthor}%
  {\ifnameundef{editor}
  {}
  {\usebibmacro{incollectioneditor}}}
  {\usebibmacro{bybookauthor}}
  %\newunit
  \newblock%
  \usebibmacro{mtitle+vol+btitle+bstitle}%
  \ifnamesequal{author}{editor}
  {\ifnameundef{bookauthor}
  {}
  {\usebibmacro{byeditor}}}
  {}
  \ifnamesequal{author}{bookauthor}
  {\ifnameundef{editor}
  {}
  {\usebibmacro{byeditor}\newunit}%
  {}
  }%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{ser+num}%
  \newunit\newblock
    \printfield{edition}%
  \printfield{note}%
  \newunit
  \usebibmacro{org+publ+loc+year}
  \newblock%
  \usebibmacro{chap+pag}%
  \newblock%
  \addspace\usebibmacro{related:translatedas}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newblock%
  \usebibmacro{doi+eprint+url}%
  \newblock%
  \usebibmacro{addendum+pubstate}%
  \newblock}
  \usebibmacro{pageref}%  
  \finentry}
  
  \DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \iftoggle{dontprintorig}
  {}
  {\ifnameundef{author}%
  {\ifnameundef{editor}%
  {}
  {\usebibmacro{editor}\addspace}}%
  {\usebibmacro{author/translator+others}}%
  \usebibmacro{date+extrayear}}%
  \newblock
  \usebibmacro{mtitle+mstitle+vol+part+title+stitle}%
  \newunit\newblock
  \ifnameundef{author}
  	{}
	{\usebibmacro{byeditor+others}}%
  \newunit\newblock
  \printfield{note}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{ser+num}%
  \newunit\newblock
  \printfield{edition}%
  \newunit\newblock%
  \usebibmacro{publ+loc+origyear}%
  \usebibmacro{chap+pag}%
  \newblock%
  \ifthenelse{\iffieldundef{doi} \and \iffieldundef{url} \and \iffieldundef{eprint}}
	{}
	{\newunit\usebibmacro{doi+eprint+url}}%
  \addspace\usebibmacro{related}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \finentry}

  
\DeclareBibliographyDriver{collection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  %\usebibmacro{mtitle+vol+title+stitle}%
  \usebibmacro{mtitle+mstitle+vol+part+title+stitle}%
  \newunit\newblock%
  \usebibmacro{collby}%
  \newunit\newblock
  \usebibmacro{bytranslator}%
  \newunit\newblock%
  \iffieldundef{edition}%
  {}%
  {\printfield{edition}}%
  \iffieldundef{note}%
  {}%
  {\printfield{note}}%
  %\newunit
  %\iffieldundef{maintitle}
  %{\printfield{volume}}
  %{}%
  %\newunit
  %\printfield{volumes}%
  \newunit\newblock
  \usebibmacro{ser+num}%
  \newunit\newblock
  \usebibmacro{publ+loc+year}%
  \newblock
  \addspace\usebibmacro{related:translatedas}%
  \newunit\newblock
  \usebibmacro{chap+pag}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  %\setunit{\par}\newblock
  \usebibmacro{doi+eprint+url}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%  
  \finentry}

\DeclareBibliographyDriver{online}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor/translator}%
  \usebibmacro{date+extrayear}%
  \newunit\newblock
  \usebibmacro{title}%
    \newunit\newblock
  \usebibmacro{bytranslator}%
  \newunit\newblock
  \printlist{organization}%
  \newunit\newblock
  \iffieldundef{month}{}{\usebibmacro{date}}%
  \newunit\newblock
  \addspace\usebibmacro{related}%
  \newblock
  \printfield{note}%
  %\newunit\newblock
  \addspace\usebibmacro{doi+eprint+url}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \finentry}
  
\DeclareBibliographyDriver{thesis}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator}%
  \usebibmacro{date+extrayear}%
  \newunit\newblock
  \usebibmacro{mtitle+mstitle+vol+part+title+stitle}%
  \newunit\newblock
  \printfield{type}%
  \newunit
  \usebibmacro{inst+loc}%
  \newunit\newblock
  \usebibmacro{chap+pag}%
  \newunit\newblock
  \printfield{note}%
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}
  
  \DeclareBibliographyDriver{unpublished}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator}%
  \usebibmacro{date+extrayear}%  
  \newunit\newblock
  \usebibmacro{mtitle+mstitle+vol+part+title+stitle}%
  \newunit\newblock
  \printfield{type}%
  \iffieldundef{issue}
  {}{\newunit\printfield{issue}}
  \newunit\newblock
  \printfield{howpublished}%
  \newunit\newblock
  \usebibmacro{inst+loc}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}
  \newunit\newblock  
  \printfield{note}%
  \newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}
  
\endinput
