/Vector/Auth.pm
package Vector::Auth;
use Exporter 'import';
our @EXPORT_OK = qw/authbox/;

use CGI::Fast qw/:standard/;
use Vector::Config qw/$webroot/;
use strict;

my $auth_uri = "${webroot}auth";

sub authbox {
	my ($session) = @_;

	print qq{<script type="text/javascript" src="${webroot}static/popup.js"></script>};
	print '<div class="authbox">';
	if ($session->param('id')) {
		my $id = $session->param('id');
		my $username = $session->param('username');
		my $displayname = $session->param('displayname');
		print qq{Logged in as <a href="$username"><img src="${webroot}static/openid-16x16.gif">$displayname</a> - <a href="$auth_uri?logout=1">logout</a>};
	} else {
		print start_form(-method => 'POST', -action => $auth_uri, -class => 'openid'),
		      'login: ',
		      textfield(-name => 'login', -class => 'openid', -onfocus => "popup('openid')", -onblur => "popout('openid')"),
		      div({-class => 'popup', -id => 'popup_openid'}, 'Input your OpenID to log in.  As a special shortcut, a single word will be expanded to http://id.dominionofawesome.com/{user}. If you do not have an OpenID, you can create one at the <a href="http://id.dominionofawesome.com/">Dominion of Awesome ID Services</a>.'),
		      end_form;
	}
	print '</div>';
}

1;