
use EPrints;

use strict;

my $session = EPrints::Session->new();

# security?

my $content = "text/xml";
$session->send_http_header( content_type=>$content );
my $family = $session->param( "_name_family" );
my $given = $session->param( "_name_given" );
my $id = $session->param( "_id" );

my $sql = "
	select
		au.name_family,
		au.name_given,
		au.id,
		au.name_honourific,
		au.name_lineage,
		max(au.user) as user
	from
		(select distinct
			IFNULL(u.name_family,'') as name_family,
			IFNULL(u.name_given,'') as name_given,
			IFNULL(u.email,'') as id,
			IFNULL(u.name_honourific,'') as name_honourific,
			IFNULL(u.name_lineage,'') as name_lineage,
			u.userid as user
		from
			user u
		where
			u.name_family like '$family\%'
		and
			u.name_given like '$given\%'
		and
			u.email like '$id\%'
		union select
            IFNULL(ecn.creators_name_family,'') as name_family,
            IFNULL(ecn.creators_name_given,'') as name_given,
            IFNULL(eci.creators_id,'') as id,
            IFNULL(ecn.creators_name_honourific,'') as name_honourific,
            IFNULL(ecn.creators_name_lineage,'') as name_lineage,
			0 as user
        from
            eprint_creators_name ecn
        left join
            eprint_creators_id eci on (ecn.pos = eci.pos and ecn.eprintid = eci.eprintid)
		where
			ecn.creators_name_family like '$family\%'
		and
			ecn.creators_name_given like '$given\%'
		and
			eci.creators_id like '$id\%'
        union select
            IFNULL(een.editors_name_family,'') as name_family,
            IFNULL(een.editors_name_given,'') as name_given,
            IFNULL(eei.editors_id,'') as id,
            IFNULL(een.editors_name_honourific,'') as name_honourific,
            IFNULL(een.editors_name_lineage,'') as name_lineage,
			0 as user
        from
            eprint_editors_name een
        left join
            eprint_editors_id eei on (een.pos = eei.pos and een.eprintid = eei.eprintid)
		where
			een.editors_name_family like '$family\%'
		and
			een.editors_name_given like '$given\%'
		and
			eei.editors_id like '$id\%') au
		group by
			name_family,
			name_given,
			id,
			name_honourific,
			name_lineage
		order by
			name_family,
			name_given,
			id,
			name_honourific,
			name_lineage
		limit
			40";

print <<END;
<?xml version="1.0" encoding="UTF-8" ?>

<ul>
END

my $sth = $session->get_database->prepare( $sql );
$session->get_database->execute( $sth , $sql );
my $first = 1;
while( my( $f,$g,$id,$h,$l,$s ) = $sth->fetchrow_array )
{
	if( $first )
	{
		print "<li class='ep_first'>";
		$first = 0;
	}
	else
	{
		print "<li>";
	}
	print "$h $g $f $l"; 
	if( $id ) { print " ($id)"; }
	if( $s ) { print ' <span class="ep_name_recommended">- recommended</span>'; }
#	print " <small>(author of ".$cnt." item".($cnt>1?"s":"")." in this repository)</small>";
	print "<ul>";
	print "<li id='for:value:relative:_name_family'>$f</li>";
	print "<li id='for:value:relative:_name_given'>$g</li>";
	print "<li id='for:value:relative:_name_honourific'>$h</li>";
	print "<li id='for:value:relative:_name_lineage'>$l</li>";
	print "<li id='for:value:relative:_id'>$id</li>";
	print "</ul></li>\n";
}
print "</ul>";

$session->terminate;

