package Rose::HTML::Form::Field::Time::Seconds;
use strict;
use Rose::HTML::Object::Errors qw(:time);
use Rose::HTML::Object::Messages qw(:time);
use Rose::HTML::Form::Field::Text;
our @ISA = qw(Rose::HTML::Form::Field::Text);
our $VERSION = '0.549';
__PACKAGE__->add_required_html_attrs(
{
  size => 2,
});
sub init
{
  my($self) = shift;
  $self->label_id(FIELD_LABEL_SECOND);
  $self->SUPER::init(@_);
}
sub validate
{
  my($self) = shift;
  my $ok = $self->SUPER::validate(@_);
  return $ok  unless($ok);
  my $value = $self->internal_value;
  unless($value =~ /^\d\d?$/ && $value >= 0 && $value <= 59)
  {
    $self->add_error_id(TIME_INVALID_SECONDS);
    return 0;
  }
  return 1;
}
if(__PACKAGE__->localizer->auto_load_messages)
{
  __PACKAGE__->localizer->load_all_messages;
}
1;
__DATA__
[% LOCALE en %]
FIELD_LABEL_SECOND       = "Second"
FIELD_ERROR_LABEL_SECOND = "second"
TIME_INVALID_SECONDS     = "Invalid seconds."
[% LOCALE de %]
TIME_INVALID_SECONDS     = "Ungültige Sekunden."
FIELD_LABEL_SECOND       = "Sekunden"
FIELD_ERROR_LABEL_SECOND = "Sekunden"
[% LOCALE fr %]
TIME_INVALID_SECONDS     = "Secondes invalides."
FIELD_LABEL_SECOND       = "Second"
FIELD_ERROR_LABEL_SECOND = "Second"
[% LOCALE bg %]
FIELD_LABEL_SECOND       = "Секунда"
FIELD_ERROR_LABEL_SECOND = "секунда"
TIME_INVALID_SECONDS     = "Невалидни секунди."
__END__
=head1 NAME
Rose::HTML::Form::Field::Time::Seconds - Text field that only accepts valid seconds.
=head1 SYNOPSIS
    $field =
       Rose::HTML::Form::Field::Time::Seconds->new(
        label => 'Seconds', 
        name  => 'secs');
    $field->input_value(99);
    $field->validate; # 0
    $field->input_value(20);
    $field->validate; # 1
    print $field->html;
    ...
=head1 DESCRIPTION
L is a subclass of L that only accepts valid seconds: numbers between 0 and 59, inclusive, with or without leading zeros.
=head1 AUTHOR
John C. Siracusa (siracusa@gmail.com)
=head1 LICENSE
Copyright (c) 2009 by John C. Siracusa.  All rights reserved.  This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.