use utf8;
use warnings; no warnings "redefine";
use strict;
use Cf qw($URL4LANDKARTE);
use Dbase::Help qw(DoFn qquote);
use Fehler qw(problem);
use Loader qw(process_template);

# Liefert eine ausgebbare Adresse.
# Im Listenkontext: erster Wert ist die Kurzbezeichnung (oder undef).

sub print_adresse($) {
	my ($adr) = @_;
	my $adrstr;
	my ( $iso2, $iso3, $landname, $kfz, $strasse, $plz, $ort ) = DoFn(<<_)
	SELECT land.iso2, land.iso3, land.name, land.kfz,
	       adresse.strasse, adresse.plz, adresse.ort
	FROM   adresse, land
	WHERE  adresse.id = $adr AND land.id = adresse.land
_
	  or return problem("Adresse #$adr nicht gefunden!");

	$strasse =~ s/\|/\n/g;
	my $inhalt = DoFn "select inhalt from adress_vorlage where name=${\qquote $iso2}";
	$inhalt = DoFn "select inhalt from adress_vorlage where name='*'"
		unless defined $inhalt;

	$inhalt = <<'_' unless defined $inhalt;
[% strasse %]
[% plz %] [% ort %]
[% land.name %]
_
	$inhalt =~ s/\n+\z//;

	my $data = "";
	process_template({
		strasse=>$strasse,
		land=>{kfz=>$kfz,iso2=>$iso2,iso3=>$iso3,name=>$landname},
		plz=>$plz,
		ort=>$ort,
	}, \$inhalt, \$data);

	return $data unless wantarray;

	( my $q = $data ) =~ s/\n/, /g;
	require URI::Escape and URI::Escape->import('uri_escape_utf8')
	  unless defined &uri_escape_utf8;
	$data, $URL4LANDKARTE . uri_escape_utf8($q)
}

1;
