# **********************************************************************
#
# In textclass.cfg
#
# **********************************************************************

# Package is a place where one might keep routines that are very
# specific to a local implementation. Then follow one or more routines
# in that package that might be needed.

$gLocalPackageFile = 'DlpsLocalUtils.pm';
$gIdResolverTrap   = 'DlpsIdResolver';


# **********************************************************************
#
# In text-idx
#
# **********************************************************************

# import any routines in the Local Utils file( mostly traps)
# this must be after requiring of 'textclass.cfg' so as to set
#   the value of $gLocalPackageFile
$gLocalPackageFile = $ENV{'DLXSROOT'} . $gScriptDir . $gLocalPackageFile;
ASSERT( ( -e $gLocalPackageFile ),
        qq{File does not exist: $gLocalPackageFile} );
require $gLocalPackageFile;

# **********************************************************************
#
# In DlpsUtils.pm
#
# **********************************************************************

sub RunTrap
{
    my ( $routineCodeRef, @params ) = @_;
    {
        if ( ref( $routineCodeRef ) eq 'CODE' )
        {
            &{$routineCodeRef}( @params );
        }
    }

}

# **********************************************************************
#
# Trap subroutine in DlpsLocalUtils.pm
#
# **********************************************************************

$DlpsIdResolver = sub
{
    my ( $cgi, $cio, $docroot, $dso, $htmlPageRef ) = @_;

    [ etc.]


# **********************************************************************
#
# Called in pageviewer-idx
#
# **********************************************************************

sub CheckIdMatches
{
    my ( $cgi, $cio, $docroot, $dso ) = @_;

    # check for multiple matches of idno
    if ( $cgi->param( 'idno' ) )
    {
        # no strict is needed to invoke the subroutine reference.
        # This in turn is needed to be able to pass by reference the code
        # to the generic RunTrap in DlpsUtils
        no strict 'refs';

        my $htmlPage = &GetHtmlTemplateText( 
                         &CgiToHtmlTemplate( $cgi, 'picklist', %gPVHtmlTemplates ) );

        &DlpsUtils::RunTrap( $$gIdResolverTrap, $cgi, $cio, $docroot, $dso, \$htmlPage );
    }
}