#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::AlphabeticalPagination;

use strict;
use warnings;

use lib '/app/tools/common/lib';
use Common::FormObject;
use base 'Common::FormObject';

use constant kOtherPage => '0';

sub _init
{
	my ($self, %args) = @_;

	$self->SUPER::_init(%args);

	return $self->_initWithArgs(%args);
}


sub _initWithArgs
{
	my ($self, %args) = @_;



    # All we really need to know is the current page.
    # The rest is essentially canned.
    #
    my $currentPage = $args{currentPage};

    # Remember, '0' is a valid page number (means 'Other')
    #
    $currentPage = 'A' unless defined $currentPage;

    $currentPage = uc($currentPage);

    my $next = _getNext($currentPage);
    my $prev = _getPrev($currentPage);

	$self->{Current}	= Common::FormObject::Scalar::String->new(value => $currentPage);
	$self->{Next}		= Common::FormObject::Scalar::String->new(value => $next);
	$self->{Previous}	= Common::FormObject::Scalar::String->new(value => $prev);

	return $self;
}

sub _getNext
{
    my ($page) = @_;


    return undef if 'ALL' eq uc($page);
    return undef if kOtherPage eq $page;
    return chr( ord($page) + 1);
}

sub _getPrev
{
    my ($page) = @_;


    return undef if 'ALL' eq uc($page);
    return undef if 'A' eq $page;
    return 'Z' if kOtherPage eq $page;
    return chr( ord($page) - 1);
}

###
1;#
###
