#!/usr/bin/perl

use strict;
use CGI qw/:standard/;
use CGI::Pretty qw(:html3);
use CGI::Carp qw(fatalsToBrowser);
use GD::Barcode::QRcode;

my $code = param('code');

if($code eq '')
{
    print
	header,
	start_html(-title=>'qrcode.cgi'),
	start_form(-method=>'get'),
	'Code: ', textfield(-name=>'code',
			    -value=>'',
			    -override=>1,
			    -accesskey=>'c',
			    -tabindex=>'1'),
	submit(-accesskey=>'s',
	       -tabindex=>'2'),
	end_form,
	end_html;
    exit;
}

my $qrcode;
my $version = 1;
while(1) {
  eval {
    $qrcode =
      GD::Barcode::QRcode->new("$code",
			       { Ecc => 'M',
				 Version => $version,
				 ModuleSize => 3});
  };
  if($@) {
    ++$version;
    next;
  }

  last;
}

binmode(STDOUT);
print
  header(-type=>'image/jpeg'),
  $qrcode->plot->jpeg;
exit;
