#!/usr/bin/perl -w
use Data::Dumper;

$done = 0;

open M,"<$ENV{HOME}/.mail_titles" or die $!;

my %types;
while(<M>){
	chomp;
	@_ = split/\s+/,$_,2;
	$types{$_[0]} = $_[1];
}

my %titles = (
	'hprof' => "Herr Prof.",
	'fprof' => "Frau Prof.",
	'hdr'   => "Herr Dr.",
	'fdr'   => "Frau Dr.",
	'herr'  => "Herr",
	'frau'  => "Frau",
	'mr'    => "Mr.",
	'mrs'   => "Mrs."
		  );

my ($fn,$ln);
while(<STDIN>){

	# remove titles
	s/\bdipl\.\s*[\w+\-.]+\s+//i;
	s/\bprof.\s+//i;
	s/\bdr.\s+//i;

	if(0){}
	elsif(m/^To:\s*"?\s*([\w\-]+),\s*([\w\-]+)/){ $fn = $2; $ln = $1; }
	elsif(m/^To:\s*"?\s*([\w\-]+)\s+([\w\-]+)/){ $fn = $1; $ln = $2; }
	elsif(m/^To:\s*"?\s*([\w\-]+)/){ $fn = $1; $ln = ""; }

	if(m/^$/ && !$done){
		my ($match) = grep{ "$fn $ln" =~ m/$_/i } keys %types;
		my $namestr="";
		if($match and $titles{$types{$match}}){
			$namestr = $titles{$types{$match}} . " $ln";
		}
		elsif($match){
			$namestr = $types{$match};
		}else{
			$fn = ucfirst($fn);
			$namestr = $fn;
		}
		print "\nHallo $namestr<++>,\n";
		$done = 1;
	}
	print
}

