%# BEGIN BPS TAGGED BLOCK {{{
%# 
%# COPYRIGHT:
%# 
%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
%#                                          <jesse@bestpractical.com>
%# 
%# (Except where explicitly superseded by other copyright notices)
%# 
%# 
%# LICENSE:
%# 
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
%# 
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%# 
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%# 02110-1301 or visit their web page on the internet at
%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
%# 
%# 
%# CONTRIBUTION SUBMISSION POLICY:
%# 
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
%# 
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
%# you are the copyright holder for those contributions and you grant
%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
%# 
%# END BPS TAGGED BLOCK }}}
<ul>
% while( my $value = $values->Next ) {
% my $desc = $value->Description || '';
% $desc = '<span class="informal"> ('. $m->interp->apply_escapes( $desc,  'h' ) .')</span>' if $desc;
<li><% $value->Name %><% $desc |n %></li>
% }
</ul>
% $m->abort;
<%INIT>
use RTx::Tags;
{
  package FakeClass::Entry;
  sub Name{ $_[0]->[0] }
  sub Description { $_[0]->[1] }
  
  package FakeClass;
  sub Next { my @t; (@t = each%{$_[0]}) ? bless(\@t, 'FakeClass::Entry') : 0 }
}

my ($CustomField, $Value);
while( my($k, $v) = each %ARGS ) {
    next unless $k =~ /^Object-.*?-\d*-CustomField-(\d+)-Values?$/;
    ($CustomField, $Value) = ($1, $v);
    last;
}
$m->abort unless $CustomField;
my $CustomFieldObj = RT::CustomField->new( $session{'CurrentUser'} );
$CustomFieldObj->Load( $CustomField );

my $values;

#if( uc($CustomFieldObj->Name) eq 'TAGS' ){
  if( length($Value) >= RT->Config->Get('tagsComplete') ){
    my %tags;
    my $cloud = RTx::Tags->new(tagStem=>$Value, tagsRaw_=>1);
    
    my $r = $RT::Handle->SimpleQuery($cloud->{_query});
    while( my $row = $r->fetchrow_arrayref ) {
      foreach my $k ( split/[,;\s]+/, $row->[1] ){
	$tags{$k} += $row->[0] if $k =~ /$Value/; }
    }
    
    #sort alphabetic or frequency? is currently random, but simple code...
    $values = bless \%tags, 'FakeClass';
  }
  else{
    $values = bless {}, 'FakeClass';
  }
#}
#else{ #Generic freeform autocompletion support }
</%INIT>
