F:\WEBSITES\testbed\zipped\yabb_svn_new\branches\2.5.2\cgi-bin\yabb2\Admin\ViewMembers.pl F:\WEBSITES\testbed\zipped\yabb_svn_new\trunk\cgi-bin\yabb2\Admin\ViewMembers.pm
############################################################################### ###############################################################################
# ViewMembers.pl                                                              # # ViewMembers.pm                                                              #
  # $Date: 01.05.16 $                                                           #
############################################################################### ###############################################################################
# YaBB: Yet another Bulletin Board                                            # # YaBB: Yet another Bulletin Board                                            #
# Open-Source Community Software for Webmasters                               # # Open-Source Community Software for Webmasters                               #
# Version:        YaBB 2.5.2                                                  # # Version:        YaBB 2.6.12                                                 #
# Packaged:       October 21, 2012                                            # # Packaged:       January 5, 2016                                             #
# Distributed by: http://www.yabbforum.com                                    # # Distributed by: http://www.yabbforum.com                                    #
# =========================================================================== # # =========================================================================== #
# Copyright (c) 2000-2012 YaBB (www.yabbforum.com) - All Rights Reserved.     # # Copyright (c) 2000-2016 YaBB (www.yabbforum.com) - All Rights Reserved.     #
# Software by:  The YaBB Development Team                                     # # Software by:  The YaBB Development Team                                     #
#               with assistance from the YaBB community.                      # #               with assistance from the YaBB community.                      #
############################################################################### ###############################################################################
  # use strict;
  our $VERSION = '2.6.12';
   
$viewmembersplver = 'YaBB 2.5.2 $Revision: 1.0 $'; $viewmemberspmver = 'YaBB 2.6.12 $Revision: 1674 $';
if ($action eq 'detailedversion') { return 1; } if ( $action eq 'detailedversion' ) { return 1; }
   
&LoadLanguage('MemberList');  LoadLanguage('MemberList'); 
  is_admin_or_gmod();
&is_admin_or_gmod;  my ( $sortmode, $sortorder, $spages ); 
   
my ($sortmode, $sortorder, $spages);  
   
$MembersPerPage = $TopAmmount; $MembersPerPage = $TopAmmount;
$maxbar         = 100; $maxbar         = 100;
   
sub Ml { sub Ml {
# Decides how to sort memberlist, and gives default sort order  
   if (!$barmaxnumb) { $barmaxnumb = 500; }     # Decides how to sort memberlist, and gives default sort order 
   if ($barmaxdepend == 1) {     if ( !$barmaxnumb ) { $barmaxnumb = 500; } 
       $barmax = 1;     if ( $barmaxdepend == 1 ) { 
       &ManageMemberinfo("load");         $barmax = 1; 
       while (($key, $value) = each(%memberinf)) {         ManageMemberinfo('load'); 
           (undef, undef, undef, $memposts) = split(/\|/, $value);         while ( ( $key, $value ) = each %memberinf ) { 
           if ($memposts > $barmax) { $barmax = $memposts; }             ( undef, undef, undef, $memposts ) = split /\|/xsm, $value; 
       }            if ( $memposts > $barmax ) { $barmax = $memposts; }
       undef %memberinf;         } 
   } else {         undef %memberinf; 
       $barmax = $barmaxnumb;     } 
   }     else { 
         $barmax = $barmaxnumb;
   $FORM{'sortform'} ||= $INFO{'sortform'};     } 
   if (!$INFO{'sort'} && !$FORM{'sortform'}) { $INFO{'sort'} = $defaultml; $FORM{'sortform'} = $defaultml }  
     $FORM{'sortform'} ||= $INFO{'sortform'};
   if ($FORM{'sortform'} eq "username" || $INFO{'sort'} eq "mlletter" || $INFO{'sort'} eq "username") {    if ( !$INFO{'sort'} && !$FORM{'sortform'} ) {
       $page     = "a";         $INFO{'sort'}     = $defaultml; 
       $showpage = "A";         $FORM{'sortform'} = $defaultml; 
       while ($page ne "z") {     } 
           $LetterLinks .= qq(<a href="$adminurl?action=ml;sort=mlletter;letter=$page" class="catbg a"><b>$showpage&nbsp;</b></a> );  
           $page++;     if (   $FORM{'sortform'} eq 'username' 
           $showpage++;         || $INFO{'sort'} eq 'mlletter' 
       }         || $INFO{'sort'} eq 'username' ) 
       $LetterLinks .= qq(<a href="$adminurl?action=ml;sort=mlletter;letter=z" class="catbg a"><b>Z</b></a>  <a href="$adminurl?action=ml;sort=mlletter;letter=other" class="catbg a"><b>$ml_txt{'800'}</b></a> );     { 
   }         $page     = 'a'; 
         $showpage = 'A';
   if ($INFO{'start'} eq '') { $start = 0; }         while ( $page ne 'z' ) { 
   else { $start = $INFO{'start'}; $spages = ";start=$start"; }             $LetterLinks .= 
  qq(<a href="$adminurl?action=ml;sort=mlletter;letter=$page" class="catbg a"><b>$showpage&nbsp;</b></a> );
   if ($INFO{'sort'} ne '') { $sortmode = ";sort=" . $INFO{'sort'}; }             $page++; 
   elsif ($FORM{'sortform'} ne '') { $sortmode = ";sort=" . $FORM{'sortform'}; }             $showpage++; 
   if ($INFO{'reversed'} || $FORM{'reversed'}) { $selReversed = qq~ checked='checked'~; $sortorder = ";reversed=1"; }        }
         $LetterLinks .=
   $actualnum = 0;  qq(<a href="$adminurl?action=ml;sort=mlletter;letter=z" class="catbg a"><b>Z</b></a>  <a href="$adminurl?action=ml;sort=mlletter;letter=other" class="catbg a"><b>$ml_txt{'800'}</b></a> ); 
   $numshown = 0;     } 
   if ($FORM{'sortform'} eq 'posts' || $INFO{'sort'} eq 'posts') { $selPost .= qq~ selected="selected"~; &MLTop; }  
   if ($FORM{'sortform'} eq 'regdate' || $INFO{'sort'} eq 'regdate') { $selReg .= qq~ selected="selected"~; &MLDate; }    if ( $INFO{'start'} eq q{} ) { $start = 0; }
   if ($FORM{'sortform'} eq 'position' || $INFO{'sort'} eq 'position') { $selPos .= qq~ selected="selected"~; &MLPosition; }    else { $start = $INFO{'start'}; $spages = ";start=$start"; }
   if ($FORM{'sortform'} eq 'lastonline' || $INFO{'sort'} eq 'lastonline') { $selLastOn .= qq~ selected="selected"~; &MLLastOnline; }  
   if ($FORM{'sortform'} eq 'lastpost' || $INFO{'sort'} eq 'lastpost') { $selLastPost .= qq~ selected="selected"~; &MLLastPost; }    if ( $INFO{'sort'} ne q{} ) { $sortmode = ';sort=' . $INFO{'sort'}; }
   if ($FORM{'sortform'} eq 'lastim' || $INFO{'sort'} eq 'lastim') { $selLastIm .= qq~ selected="selected"~; &MLLastIm; }     elsif ( $FORM{'sortform'} ne q{} ) { 
   if ($INFO{'sort'} eq '' || $INFO{'sort'} eq 'mlletter' || $INFO{'sort'} eq 'username') { $selUser .= qq~ selected="selected"~; &MLByLetter; }         $sortmode = ';sort=' . $FORM{'sortform'}; 
     }
     if ( $INFO{'reversed'} || $FORM{'reversed'} ) {
         $selReversed = q~ checked="checked"~;
         $sortorder   = ';reversed=1';
     }
   
     $actualnum = 0;
     $numshown  = 0;
     $selPost_a = q~windowbg2~;
     $selReg_a = q~windowbg2~;
     $selPos_a = q~windowbg2~;
     $selLastOn_a = q~windowbg2~;
     $selLastPost_a = q~windowbg2~;
     $selLastIM_a = q~windowbg2~;
     $selUser_a = q~windowbg2~;
     if ( $FORM{'sortform'} eq 'posts' || $INFO{'sort'} eq 'posts' ) {
         $selPost_a = q~windowbg~;
         $selPost .= q~ selected="selected"~;
         MLTop();
     }
     if ( $FORM{'sortform'} eq 'regdate' || $INFO{'sort'} eq 'regdate' ) {
         $selReg .= q~ selected="selected"~;
         $selReg_a = q~windowbg~;
         MLDate();
     }
     if ( $FORM{'sortform'} eq 'position' || $INFO{'sort'} eq 'position' ) {
         $selPos .= q~ selected="selected"~;
         $selPos_a = q~windowbg~;
         MLPosition();
     }
     if ( $FORM{'sortform'} eq 'lastonline' || $INFO{'sort'} eq 'lastonline' ) {
         $selLastOn .= q~ selected="selected"~;
         $selLastOn_a = q~windowbg~;
         MLLastOnline();
     }
     if ( $FORM{'sortform'} eq 'lastpost' || $INFO{'sort'} eq 'lastpost' ) {
         $selLastPost .= q~ selected="selected"~;
         $selLastPost_a = q~windowbg~;
         MLLastPost();
     }
     if ( $FORM{'sortform'} eq 'lastim' || $INFO{'sort'} eq 'lastim' ) {
         $selLastIm .= q~ selected="selected"~;
         $selLastIM_a = q~windowbg~;
         MLLastIm();
     }
     if ( $FORM{'sortform'} eq 'memsearch' || $INFO{'sort'} eq 'memsearch' ) {
         FindMembers();
     }
     if (   $INFO{'sort'} eq q{}
         || $INFO{'sort'} eq 'mlletter' 
         || $INFO{'sort'} eq 'username' )
     {
         $selUser .= q~ selected="selected"~;
         $selUser_a = q~windowbg~;
         MLByLetter();
     }
     return;
} }
   
sub MLByLetter { sub MLByLetter {
   $letter = lc($INFO{'letter'});     $letter = lc $INFO{'letter'}; 
   $i      = 0;    $i      = 0;
   &ManageMemberinfo("load");     ManageMemberinfo('load'); 
   foreach $membername (sort { lc $memberinf{$a} cmp lc $memberinf{$b} } keys %memberinf) {     foreach my $membername ( 
       ($memrealname, $mememail, undef, undef) = split(/\|/, $memberinf{$membername});         sort { lc $memberinf{$a} cmp lc $memberinf{$b} } 
       if ($letter) {         keys %memberinf 
           $SearchName = lc(substr($memrealname, 0, 1));       ) 
           if ($SearchName eq $letter) { $ToShow[$i] = $membername; $i++; }     { 
           elsif ($letter eq "other" && (($SearchName lt "a") || ($SearchName gt "z"))) { $ToShow[$i] = $membername; $i++; }         ( $memrealname, $mememail, undef, undef ) = 
       } else {           split /\|/xsm, $memberinf{$membername}; 
           $ToShow[$i] = $membername;         if ($letter) { 
           $i++;             $SearchName = lc( substr $memrealname, 0, 1 ); 
       }            if ( $SearchName eq $letter ) { $ToShow[$i] = $membername; $i++; }
   }             elsif ( $letter eq 'other' 
   undef %memberinf;                 && ( ( $SearchName lt 'a' ) || ( $SearchName gt 'z' ) ) ) 
             {
   $memcount = @ToShow;                 $ToShow[$i] = $membername; 
   if (!$memcount && $letter) {                 $i++; 
       $pageindex1 = qq~<span class="small" style="float: left; height: 21px; margin: 0px; margin-top: 2px;"><img src="$imagesdir/index_togl.gif" border="0" alt="" style="vertical-align: middle;" /></span>~;             } 
       $pageindex2 = qq~<span class="small" style="float: left; height: 21px; margin: 0px; margin-top: 2px;"><img src="$imagesdir/index_togl.gif" border="0" alt="" style="vertical-align: middle;" /></span>~;         } 
   } else {        else {
       &buildIndex;             $ToShow[$i] = $membername; 
   }             $i++; 
   &buildPages(1);         } 
   $b = $start;     } 
     undef %memberinf;
   if ($memcount) {  
       while ($numshown < $MembersPerPage) {     $memcount = @ToShow; 
           &showRows($ToShow[$b]);     if ( !$memcount && $letter ) { 
           $numshown++;         $pageindex1 = 
           $b++;  qq~<span class="index-togl small">$admin_img{'index_togl'}</span>~; 
       }         $pageindex2 = 
   } else {  qq~<span class="index-togl small">$admin_img{'index_togl'}</span>~; 
       if ($letter) { $yymain .= qq~<tr><td class="windowbg" colspan="7" align="center"><br /><b>$ml_txt{'760'}</b><br /><br /></td></tr>~; }    }
   }     else { 
         buildIndex();
   undef @ToShow;     } 
   &buildPages(0);     buildPages(1); 
   $yytitle = "$ml_txt{'312'} $numshow";     $bb = $start; 
   $action_area = 'viewmembers';  
   &AdminTemplate;     if ($memcount) { 
         while ( $numshown < $MembersPerPage ) {
             showRows( $ToShow[$bb] );
             $numshown++;
             $bb++;
         }
     }
     else {
         if ($letter) {
             $yymain .= qq~<tr>
     <td class="windowbg center" colspan="7">
         <div class="pad-more"><b>$ml_txt{'760'}</b></div>
     </td>
  </tr>~;
         }
     }
   
     undef @ToShow;
     buildPages(0);
     $yytitle     = "$ml_txt{'312'} $numshow";
     $action_area = 'viewmembers';
     AdminTemplate();
     return;
} }
   
sub MLTop { sub MLTop {
   %top_list = ();    %top_list = ();
   
   &ManageMemberinfo("load");     ManageMemberinfo('load'); 
   while (($membername, $value) = each(%memberinf)) {    while ( ( $membername, $value ) = each %memberinf ) {
       ($memrealname, undef, undef, $memposts) = split(/\|/, $value);         ( $memrealname, undef, undef, $memposts ) = split /\|/xsm, $value; 
       $memposts = sprintf("%06d", (999999 - $memposts));         $memposts = sprintf '%06d', ( 999_999 - $memposts ); 
       $top_list{$membername} = qq~$memposts|$memrealname~;        $top_list{$membername} = qq~$memposts|$memrealname~;
   }    }
   undef %memberinf;    undef %memberinf;
   my @toplist = sort { lc $top_list{$a} cmp lc $top_list{$b} } keys %top_list;    my @toplist = sort { lc $top_list{$a} cmp lc $top_list{$b} } keys %top_list;
   
   if ($FORM{'reversed'} || $INFO{'reversed'}) {    if ( $FORM{'reversed'} || $INFO{'reversed'} ) {
       @toplist = reverse @toplist;        @toplist = reverse @toplist;
   }    }
   
   $memcount = @toplist;    $memcount = @toplist;
   &buildIndex;     buildIndex(); 
   &buildPages(1);     buildPages(1); 
   $b = $start;    $bb = $start;
   
   while ($numshown < $MembersPerPage) {    while ( $numshown < $MembersPerPage ) {
       &showRows($toplist[$b]);         showRows( $toplist[$bb] ); 
       $numshown++;        $numshown++;
       $b++;         $bb++; 
   }    }
   
   undef @toplist;    undef @toplist;
   &buildPages(0);     buildPages(0); 
   $yytitle = "$ml_txt{'313'} $ml_txt{'314'} $numshow";    $yytitle     = "$ml_txt{'313'} $ml_txt{'314'} $numshow";
   $action_area = 'viewmembers';    $action_area = 'viewmembers';
   &AdminTemplate;     AdminTemplate(); 
     return;
} }
   
sub MLPosition { sub MLPosition {
   %TopMembers = ();    %TopMembers = ();
   
   &ManageMemberinfo("load");     ManageMemberinfo('load'); 
   while (($membername, $value) = each(%memberinf)) {    while ( ( $membername, $value ) = each %memberinf ) {
       ($memberrealname, undef, $memposition, $memposts) = split(/\|/, $value);         ( $memberrealname, undef, $memposition, $memposts ) = 
       $pstsort    = 99999999 - $memposts;           split /\|/xsm, $value; 
       $sortgroups = "";         $pstsort    = 99_999_999 - $memposts; 
       foreach my $key (keys %Group) {         $sortgroups = q{}; 
           if ($memposition eq $key) {        foreach my $key ( keys %Group ) {
               if    ($key eq "Administrator")    { $sortgroups = "aaa.$pstsort.$memberrealname"; }             if ( $memposition eq $key ) { 
               elsif ($key eq "Global Moderator") { $sortgroups = "bbb.$pstsort.$memberrealname"; }                 if ( $key eq 'Administrator' ) { 
           }                     $sortgroups = "aaa.$pstsort.$memberrealname"; 
       }                }
       if (!$sortgroups) {                elsif ( $key eq 'Global Moderator' ) {
           foreach (sort { $a <=> $b } keys %NoPost) {                     $sortgroups = "bbb.$pstsort.$memberrealname"; 
               if ($memposition eq $_) {                 } 
                   $sortgroups = "ddd.$memposition.$pstsort.$memberrealname";                 elsif ( $key eq 'Mid Moderator' ) { 
               }                     $sortgroups = "bcc.$pstsort.$memberrealname"; 
           }                }
       }            }
       if (!$sortgroups) {         } 
           $sortgroups = "eee.$pstsort.$memposition.$memberrealname";         if ( !$sortgroups ) { 
       }             foreach ( sort { $a <=> $b } keys %NoPost ) { 
       $TopMembers{$membername} = $sortgroups;                 if ( $memposition eq $_ ) { 
   }                     $sortgroups = "ddd.$memposition.$pstsort.$memberrealname"; 
   my @toplist = sort { lc $TopMembers{$a} cmp lc $TopMembers{$b} } keys %TopMembers;                 } 
             }
   if ($FORM{'reversed'} || $INFO{'reversed'}) {         } 
       @toplist = reverse @toplist;         if ( !$sortgroups ) { 
   }             $sortgroups = "eee.$pstsort.$memposition.$memberrealname"; 
         }
   $memcount = @toplist;         $TopMembers{$membername} = $sortgroups; 
   &buildIndex;     } 
   &buildPages(1);     my @toplist = 
   $b = $start;       sort { lc $TopMembers{$a} cmp lc $TopMembers{$b} } keys %TopMembers; 
   
   while ($numshown < $MembersPerPage) {    if ( $FORM{'reversed'} || $INFO{'reversed'} ) {
       &showRows($toplist[$b]);         @toplist = reverse @toplist; 
       $numshown++;     } 
       $b++;  
   }     $memcount = @toplist; 
     buildIndex();
   undef @toplist;     buildPages(1); 
   undef %memberinf;     $bb = $start; 
   &buildPages(0);  
   $yytitle = "$ml_txt{'313'} $ml_txt{'4'} $ml_txt{'87'} $numshow";     while ( $numshown < $MembersPerPage ) { 
   $action_area = 'viewmembers';         showRows( $toplist[$bb] ); 
   &AdminTemplate;         $numshown++; 
         $bb++;
     }
   
     undef @toplist;
     undef %memberinf;
     buildPages(0);
     $yytitle     = "$ml_txt{'313'} $ml_txt{'4'} $ml_txt{'87'} $numshow";
     $action_area = 'viewmembers';
     AdminTemplate();
     return;
} }
   
sub MLDate { sub MLDate {
   fopen(MEMBERLISTREAD, "$memberdir/memberlist.txt");     fopen( MEMBERLISTREAD, "$memberdir/memberlist.txt" ); 
   @tempmemlist = <MEMBERLISTREAD>;    @tempmemlist = <MEMBERLISTREAD>;
   fclose(MEMBERLISTREAD);    fclose(MEMBERLISTREAD);
   if ($FORM{'reversed'} || $INFO{'reversed'}) {    if ( $FORM{'reversed'} || $INFO{'reversed'} ) {
       @tempmemlist = reverse @tempmemlist;        @tempmemlist = reverse @tempmemlist;
   }    }
   
   $memcount = @tempmemlist;    $memcount = @tempmemlist;
   &buildIndex;     buildIndex(); 
   &buildPages(1);     buildPages(1); 
   $b = $start;    $bb = $start;
   
   while ($numshown < $MembersPerPage) {    while ( $numshown < $MembersPerPage ) {
       ($membername, undef) = split(/\t/, $tempmemlist[$b], 2);         ( $membername, undef ) = split /\t/xsm, $tempmemlist[$bb], 2; 
       &showRows($membername);         showRows($membername); 
       $numshown++;        $numshown++;
       $b++;         $bb++; 
   }    }
   
   $yymain .= $TableFooter;    $yymain .= $TableFooter;
   &buildPages(0);     buildPages(0); 
   $yytitle = "$ml_txt{'313'} $ml_txt{'4'} $ml_txt{'233'}";    $yytitle     = "$ml_txt{'313'} $ml_txt{'4'} $ml_txt{'233'}";
   $action_area = 'viewmembers';    $action_area = 'viewmembers';
   &AdminTemplate;     AdminTemplate(); 
     return;
} }
   
sub showRows { sub showRows {
   my ($user) = $_[0];     my ($user) = @_; 
   if ($user ne "") {    if ( $user ne q{} ) {
       &LoadUser($user);         LoadUser($user); 
       $date2 = $date;        $date2 = $date;
   
       my $userlastonline = ${$uid.$user}{'lastonline'};         my $userlastonline = ${ $uid . $user }{'lastonline'}; 
       my $userlastpost   = ${$uid.$user}{'lastpost'};         my $userlastpost   = ${ $uid . $user }{'lastpost'}; 
       my $userlastim     = ${$uid.$user}{'lastim'};         my $userlastim     = ${ $uid . $user }{'lastim'}; 
   
       $date1 = &stringtotime(${$uid.$user}{'regdate'});         $date1 = stringtotime( ${ $uid . $user }{'regdate'} ); 
       &calcdifference;         calcdifference(); 
       $days_reg = $result;        $days_reg = $result;
   
       my ($tmpa,$tmpb,$tmpc);         my ( $tmpa, $tmpb, $tmpc ); 
       if ($userlastonline eq "") { $userlastonline = "-"; }         if ( $userlastonline eq q{} ) { $userlastonline = q{-}; 
       else { $date1 = $userlastonline; &calcdifference; $userlastonline = $result; $tmpa = $userlastonline; }              $date1 = stringtotime( ${ $uid . $user }{'regdate'} ); 
       if ($userlastpost eq "") { $userlastpost = "-"; }             calcdifference(); 
       else { $date1 = $userlastpost; &calcdifference; $userlastpost = $result; $tmpb = $userlastpost; }             $tmpa = $result; 
       if ($userlastim eq "") { $userlastim = "-"; }            }
       else { $date1 = $userlastim; &calcdifference; $userlastim = $result; $tmpc = $userlastim; }         else { 
       $userlastonline = &NumberFormat($userlastonline);             $date1 = $userlastonline; 
       $userlastpost = &NumberFormat($userlastpost);             calcdifference(); 
       $userlastim = &NumberFormat($userlastim);             $userlastonline = $result; 
       $userpostcount = &NumberFormat(${$uid.$user}{'postcount'});             $tmpa           = $userlastonline; 
         }
       if ($user ne "admin") {         if ( $userlastpost eq q{} ) { $userlastpost = q{-}; 
           $CheckingAll .= qq~"$days_reg|${$uid.$user}{'postcount'}|$tmpa|$tmpb|$tmpc|$user", ~;              $date1 = stringtotime( ${ $uid . $user }{'regdate'} ); 
       }             calcdifference(); 
             $tmpb = $result;
       $barchart = ${$uid.$user}{'postcount'};             } 
       $bartemp  = (${$uid.$user}{'postcount'} * $maxbar);         else { 
       $barwidth = ($bartemp / $barmax);             $date1 = $userlastpost; 
       $barwidth = ($barwidth + 0.5);             calcdifference(); 
       $barwidth = int($barwidth);             $userlastpost = $result; 
       if ($barwidth > $maxbar) { $barwidth = $maxbar }              $tmpb         = $userlastpost; 
       if ($barchart < 1) { $Bar = "&nbsp;"; }        }
       else { $Bar = qq~<img src="$imagesdir/bar.gif" width="$barwidth" height="10" alt="" border="0" />~; }         if ( $userlastim eq q{} ) { $userlastim = q{-}; 
             $date1 = stringtotime( ${ $uid . $user }{'regdate'} );
       $dr_regdate = &timeformat(${$uid.$user}{'regtime'});             calcdifference(); 
       $dr_regdate =~ s~(.*)(, 1?[0-9]):[0-9][0-9].*~$1~;             $tmpc = $result; 
             }
       my $memberinfo = "&nbsp;";         else { 
       if (${$uid.$user}{'realname'} eq "") { ${$uid.$user}{'realname'} = $user; }             $date1 = $userlastim; 
       if (${$uid.$user}{'position'} eq "" && $showallgroups) {             calcdifference(); 
           foreach $postamount (sort { $b <=> $a } keys %Post) {             $userlastim = $result; 
               if (${$uid.$user}{'postcount'} > $postamount) {             $tmpc       = $userlastim; 
                   ($memberinfo, $stars, $starpic, $color, $noshow, $viewperms, $topicperms, $replyperms, $pollperms, $attachperms) = split(/\|/, $Post{$postamount});         } 
                   last;         $userlastonline = NumberFormat($userlastonline); 
               }         $userlastpost   = NumberFormat($userlastpost); 
           }         $userlastim     = NumberFormat($userlastim); 
       } elsif (${$uid.$user}{'position'} ne "") {         $userpostcount  = NumberFormat( ${ $uid . $user }{'postcount'} ); 
           $tempgroups = 0;  
           foreach (keys %Group) {        if ( $user ne 'admin' ) {
               if (${$uid.$user}{'position'} eq $_) {             $CheckingAll .= 
                   ($memberinfo, $stars, $starpic, $color, $noshow, $viewperms, $topicperms, $replyperms, $pollperms, $attachperms) = split(/\|/, $Group{$_});  qq~"$days_reg|${$uid.$user}{'postcount'}|$tmpa|$tmpb|$tmpc|$user", ~; 
                   $tempgroups = 1;         } 
                   last;  
               }         $barchart = ${ $uid . $user }{'postcount'}; 
           }         $bartemp  = ( ${ $uid . $user }{'postcount'} * $maxbar ); 
           if (!$tempgroups) {         $barwidth = ( $bartemp / $barmax ); 
               foreach (sort { $a <=> $b } keys %NoPost) {         $barwidth = ( $barwidth + 0.5 ); 
                   if (${$uid.$user}{'position'} eq $_) {         $barwidth = int $barwidth; 
                       ($memberinfo, $stars, $starpic, $color, $noshow, $viewperms, $topicperms, $replyperms, $pollperms, $attachperms) = split(/\|/, $NoPost{$_});         if ( $barwidth > $maxbar ) { $barwidth = $maxbar } 
                       $tempgroups = 1;         if ( $barchart < 1 )       { $Bar      = '&nbsp;'; } 
                       last;         else { 
                   }             $Bar = 
               }  qq~<img src="$imagesdir/bar.gif" width="$barwidth" height="10" alt="" />~; 
           }        }
           if (!$tempgroups) {  
               $memberinfo = ${$uid.$user}{'position'};         $dr_regdate = timeformat( ${ $uid . $user }{'regtime'} ); 
           }         $dr_regdate =~ s/(.*)(, 1?[0-9]):[0-9][0-9].*/$1/sm; 
       }  
         my $memberinfo = '&nbsp;';
       $yymain .= qq~         if ( ${ $uid . $user }{'realname'} eq q{} ) { 
   <tr>             ${ $uid . $user }{'realname'} = $user; 
       <td class="windowbg" width="19%">$link{$user}</td>~;         } 
         if ( ${ $uid . $user }{'position'} eq q{} && $showallgroups ) {
       if ($user eq "admin") {             foreach my $postamount ( reverse sort { $a <=> $b } keys %Post ) { 
           $addel = qq~&nbsp;~;                 if ( ${ $uid . $user }{'postcount'} > $postamount ) { 
       } else {                     ( 
           $addel = qq~<input type="checkbox" name="member$numshown" value="$user" class="windowbg" style="border: 0; vertical-align: middle;" />~;                         $memberinfo, $stars,     $starpic,    $color, 
           $actualnum++;                         $noshow,     $viewperms, $topicperms, $replyperms, 
       }                         $pollperms,  $attachperms 
                     ) = split /\|/xsm, $Post{$postamount};
       $yymain .= qq~                     last; 
       <td class="windowbg" width="19%">$memberinfo</td>                 } 
       <td class="windowbg2" width="5%" align="center">$userpostcount</td>             } 
       <td class="windowbg" width="14%">$Bar</td>         } 
       <td class="windowbg" width="19%" >$dr_regdate &nbsp;</td>         elsif ( ${ $uid . $user }{'position'} ne q{} ) { 
       <td class="windowbg2" width="7%" align="center">$userlastonline</td>             $tempgroups = 0; 
       <td class="windowbg2" width="6%" align="center">$userlastpost</td>             foreach ( keys %Group ) { 
       <td class="windowbg2" width="6%" align="center">$userlastim</td>                 if ( ${ $uid . $user }{'position'} eq $_ ) { 
       <td class="windowbg" width="5%" align="center">$addel</td>                     ( 
   </tr>~;                         $memberinfo, $stars,     $starpic,    $color, 
   }                         $noshow,     $viewperms, $topicperms, $replyperms, 
                         $pollperms,  $attachperms
                     ) = split /\|/xsm, $Group{$_};
                     $tempgroups = 1;
                     last;
                 }
             }
             if ( !$tempgroups ) {
                 foreach ( sort { $a <=> $b } keys %NoPost ) {
                     if ( ${ $uid . $user }{'position'} eq $_ ) {
                         (
                             $memberinfo, $stars,      $starpic,
                             $color,      $noshow,     $viewperms,
                             $topicperms, $replyperms, $pollperms,
                             $attachperms
                         ) = split /\|/xsm, $NoPost{$_};
                         $tempgroups = 1;
                         last;
                     }
                 }
             }
             if ( !$tempgroups ) {
                 $memberinfo = ${ $uid . $user }{'position'};
             }
         }
   
         $yymain .= qq~<tr>
         <td class="windowbg">$link{$user}</td>~;
   
         if ( $user eq 'admin' || ( $iamgmod && ( ${ $uid . $user }{'position'} eq 'Administrator' || $gmod_access{'deletemultimembers'} ne 'on') ) ) {
             $addel = q~&nbsp;~;
         }
         else {
             $addel =
  qq~<input type="checkbox" name="member$numshown" value="$user" class="windowbg" style="border: 0; vertical-align: middle;" />~;
             $actualnum++;
         }
   
         $yymain .= qq~
         <td class="windowbg">$memberinfo</td>
         <td class="windowbg2 center">$userpostcount</td>
         <td class="windowbg">$Bar</td>
         <td class="windowbg">$dr_regdate &nbsp;</td>
         <td class="windowbg2 center">$userlastonline</td>
         <td class="windowbg2 center">$userlastpost</td>
         <td class="windowbg2 center">$userlastim</td>
         <td class="windowbg center">$addel</td>
     </tr>~;
     }
     return;
} }
   
sub buildIndex { sub buildIndex {
   unless ($memcount == 0) {    if ( $memcount != 0 ) {
   
       ($dummy, $dummy, $usermemberpage) = split(/\|/, ${$uid.$username}{'pageindex'});         ( undef, undef, $usermemberpage ) = 
           split /\|/xsm, ${ $uid . $username }{'pageindex'};
   
       # Build the page links list.        # Build the page links list.
       my ($pagetxtindex, $pagetextindex, $pagedropindex1, $pagedropindex2, $all, $allselected);         my ( $pagetxtindex, $pagedropindex1, $pagedropindex2, $all, 
       $indexdisplaynum = 3;             $allselected ); 
       $dropdisplaynum  = 10;         $indexdisplaynum = 3; 
       if ($FORM{'sortform'} eq "") { $FORM{'sortform'} = $INFO{'sort'}; }         $dropdisplaynum  = 10; 
       $postdisplaynum = 3;         if ( $FORM{'sortform'} eq q{} ) { $FORM{'sortform'} = $INFO{'sort'}; } 
       $startpage      = 0;         $postdisplaynum = 3; 
       $max            = $memcount;         $startpage      = 0; 
       if ($INFO{'start'} eq "all") { $MembersPerPage = $max; $all = 1; $allselected = qq~ selected="selected"~; $start = 0 }         $max            = $memcount; 
       else { $start = $INFO{'start'} || 0; }         if ( $INFO{'start'} eq 'all' ) { 
       $start    = $start > $memcount - 1 ? $memcount - 1 : $start;             $MembersPerPage = $max; 
       $start    = (int($start / $MembersPerPage)) * $MembersPerPage;             $all            = 1; 
       $tmpa     = 1;             $allselected    = q~ selected="selected"~; 
       $pagenumb = int(($memcount - 1) / $MembersPerPage) + 1;             $start          = 0; 
         }
       if ($start >= (($postdisplaynum - 1) * $MembersPerPage)) {         else { $start = $INFO{'start'} || 0; } 
           $startpage = $start - (($postdisplaynum - 1) * $MembersPerPage);         $start    = $start > $memcount - 1 ? $memcount - 1 : $start; 
           $tmpa = int($startpage / $MembersPerPage) + 1;         $start    = ( int( $start / $MembersPerPage ) ) * $MembersPerPage; 
       }         $tmpa     = 1; 
       if ($memcount >= $start + ($postdisplaynum * $MembersPerPage)) { $endpage = $start + ($postdisplaynum * $MembersPerPage); }         $pagenumb = int( ( $memcount - 1 ) / $MembersPerPage ) + 1; 
       else { $endpage = $memcount }  
       $lastpn     = int(($memcount - 1) / $MembersPerPage) + 1;         if ( $start >= ( ( $postdisplaynum - 1 ) * $MembersPerPage ) ) { 
       $lastptn    = ($lastpn - 1) * $MembersPerPage;             $startpage = $start - ( ( $postdisplaynum - 1 ) * $MembersPerPage ); 
       $pageindex1 = qq~<span class="small" style="float: left; height: 21px; margin: 0px; margin-top: 2px;"><img src="$imagesdir/index_togl.gif" border="0" alt="" style="vertical-align: middle;" /> $ml_txt{'139'}: $pagenumb</span>~;             $tmpa = int( $startpage / $MembersPerPage ) + 1; 
       $pageindex2 = qq~<span class="small" style="float: left; height: 21px; margin: 0px; margin-top: 2px;"><img src="$imagesdir/index_togl.gif" border="0" alt="" style="vertical-align: middle;" /> $ml_txt{'139'}: $pagenumb</span>~;         } 
       if ($pagenumb > 1 || $all) {        if ( $memcount >= $start + ( $postdisplaynum * $MembersPerPage ) ) {
             $endpage = $start + ( $postdisplaynum * $MembersPerPage );
           if ($usermemberpage == 1) {         } 
               $pagetxtindexst = qq~<span class="small" style="float: left; height: 21px; margin: 0px; margin-top: 2px;"><a href="$scripturl?action=memberpagedrop;from=admin;sort=$INFO{'sort'};letter=$INFO{'letter'};start=$INFO{'start'}$sortorder"><img src="$imagesdir/index_togl.gif" border="0" alt="$ml_txt{'19'}" title="$ml_txt{'19'}" style="vertical-align: middle;" /></a> $ml_txt{'139'}: ~;         else { $endpage = $memcount } 
               if ($startpage > 0) { $pagetxtindex = qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter$sortorder" style="font-weight: normal;">1</a>&nbsp;...&nbsp;~; }         $lastpn = int( ( $memcount - 1 ) / $MembersPerPage ) + 1; 
               if ($startpage == $MembersPerPage) { $pagetxtindex = qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter$sortorder" style="font-weight: normal;">1</a>&nbsp;~; }         $lastptn = ( $lastpn - 1 ) * $MembersPerPage; 
               for ($counter = $startpage; $counter < $endpage; $counter += $MembersPerPage) {         $pageindex1 = 
                   $pagetxtindex .= $start == $counter ? qq~<b>$tmpa</b>&nbsp;~ : qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$counter$sortorder" style="font-weight: normal;">$tmpa</a>&nbsp;~;  qq~<span class="index-togl small">$admin_img{'index_togl'} $ml_txt{'139'}: $pagenumb</span>~; 
                   $tmpa++;         $pageindex2 = 
               }  qq~<span class="index-togl small">$admin_img{'index_togl'} $ml_txt{'139'}: $pagenumb</span>~; 
               if ($endpage < $memcount - $MembersPerPage) { $pageindexadd = qq~...&nbsp;~; }         if ( $pagenumb > 1 || $all ) { 
               if ($endpage != $memcount) { $pageindexadd .= qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$lastptn$sortorder" style="font-weight: normal;">$lastpn</a>~; }  
               $pagetxtindex .= qq~$pageindexadd~;             if ( $usermemberpage == 1 ) { 
               $pageindex1 = qq~$pagetxtindexst$pagetxtindex</span>~;                 $pagetxtindexst = 
               $pageindex2 = qq~$pagetxtindexst$pagetxtindex</span>~;  qq~<span class="index-togl small"><a href="$scripturl?action=memberpagedrop;from=admin;sort=$INFO{'sort'};letter=$INFO{'letter'};start=$INFO{'start'}$sortorder"><img src="$imagesdir/index_togl.png" alt="$ml_txt{'19'}" title="$ml_txt{'19'}" /></a> $ml_txt{'139'}: ~; 
           } else {                if ( $startpage > 0 ) {
               $pagedropindex1 = qq~<span style="float: left; width: 350px; margin: 0px; margin-top: 2px; border: 0px;">~;                     $pagetxtindex = 
               $pagedropindex1 .= qq~<span style="float: left; height: 21px; margin: 0; margin-right: 4px;"><a href="$scripturl?action=memberpagetext;from=admin;sort=$INFO{'sort'};letter=$INFO{'letter'};start=$INFO{'start'}$sortorder"><img src="$imagesdir/index_togl.gif" border="0" alt="$ml_txt{'19'}" title="$ml_txt{'19'}" /></a></span>~;  qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter$sortorder" class="norm">1</a>&nbsp;...&nbsp;~; 
               $pagedropindex2 = $pagedropindex1;                 } 
               $tstart         = $start;                 if ( $startpage == $MembersPerPage ) { 
               if (substr($INFO{'start'}, 0, 3) eq "all") { ($tstart, $start) = split(/\-/, $INFO{'start'}); }                     $pagetxtindex = 
               $d_indexpages = $pagenumb / $dropdisplaynum;  qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter$sortorder" class="norm">1</a>&nbsp;~; 
               $i_indexpages = int($pagenumb / $dropdisplaynum);                 } 
               if ($d_indexpages > $i_indexpages) { $indexpages = int($pagenumb / $dropdisplaynum) + 1; }                 foreach my $counter ( $startpage .. ( $endpage - 1 ) ) { 
               else { $indexpages = int($pagenumb / $dropdisplaynum) }                     if ( $counter % $MembersPerPage == 0 ) { 
               $selectedindex = int(($start / $MembersPerPage) / $dropdisplaynum);                         $pagetxtindex .= 
                           $start == $counter
               if ($pagenumb > $dropdisplaynum) {                           ? qq~<b>[$tmpa]</b>&nbsp;~ 
                   $pagedropindex1 .= qq~<span style="float: left; height: 21px; margin: 0;"><select size="1" name="decselector1" id="decselector1" style="font-size: 9px; border: 2px inset;" onchange="if(this.options[this.selectedIndex].value) SelDec(this.options[this.selectedIndex].value, 'xx')">\n~;                           : qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$counter$sortorder" class="norm">$tmpa</a>&nbsp;~; 
                   $pagedropindex2 .= qq~<span style="float: left; height: 21px; margin: 0;"><select size="1" name="decselector2" id="decselector2" style="font-size: 9px; border: 2px inset;" onchange="if(this.options[this.selectedIndex].value) SelDec(this.options[this.selectedIndex].value, 'xx')">\n~;                         $tmpa++; 
               }                    }
               for ($i = 0; $i < $indexpages; $i++) {                 } 
                   $indexpage  = ($i * $dropdisplaynum) * $MembersPerPage;                 if ( $endpage < $memcount - $MembersPerPage ) { 
                   $indexstart = ($i * $dropdisplaynum) + 1;                     $pageindexadd = q~...&nbsp;~; 
                   $indexend   = $indexstart + ($dropdisplaynum - 1);                 } 
                   if ($indexend > $pagenumb)    { $indexend   = $pagenumb; }                 if ( $endpage != $memcount ) { 
                   if ($indexstart == $indexend) { $indxoption = qq~$indexstart~; }                     $pageindexadd .= 
                   else { $indxoption = qq~$indexstart-$indexend~; }  qq~<a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$lastptn$sortorder" class="norm">$lastpn</a>~; 
                   $selected = "";                 } 
                   if ($i == $selectedindex) {                 $pagetxtindex .= qq~$pageindexadd~; 
                       $selected    = qq~ selected="selected"~;                 $pageindex1 = qq~$pagetxtindexst$pagetxtindex</span>~; 
                       $pagejsindex = qq~$indexstart|$indexend|$MembersPerPage|$indexpage~;                 $pageindex2 = qq~$pagetxtindexst$pagetxtindex</span>~; 
                   }            }
                   if ($pagenumb > $dropdisplaynum) {            else {
                       $pagedropindex1 .= qq~<option value="$indexstart|$indexend|$MembersPerPage|$indexpage"$selected>$indxoption</option>\n~;                 $pagedropindex1 = 
                       $pagedropindex2 .= qq~<option value="$indexstart|$indexend|$MembersPerPage|$indexpage"$selected>$indxoption</option>\n~;  q~<span style="float: left; width: 350px; margin: 2px 0 0 0; border: 0;">~; 
                   }                 $pagedropindex1 .= 
               }  qq~<span style="float: left; height: 21px; margin: 0 4px 0 0;"><a href="$scripturl?action=memberpagetext;from=admin;sort=$INFO{'sort'};letter=$INFO{'letter'};start=$INFO{'start'}$sortorder"><img src="$imagesdir/index_togl.png" alt="$ml_txt{'19'}" title="$ml_txt{'19'}" /></a></span>~; 
               if ($pagenumb > $dropdisplaynum) {                 $pagedropindex2 = $pagedropindex1; 
                   $pagedropindex1 .= qq~</select>\n</span>~;                 $tstart         = $start; 
                   $pagedropindex2 .= qq~</select>\n</span>~;                 if ( substr( $INFO{'start'}, 0, 3 ) eq 'all' ) { 
               }                     ( $tstart, $start ) = split /\-/xsm, $INFO{'start'}; 
               $pagedropindex1 .= qq~<span id="ViewIndex1" class="droppageindex" style="height: 14px; visibility: hidden">&nbsp;</span>~;                 } 
               $pagedropindex2 .= qq~<span id="ViewIndex2" class="droppageindex" style="height: 14px; visibility: hidden">&nbsp;</span>~;                 $d_indexpages = $pagenumb / $dropdisplaynum; 
               $tmpMembersPerPage = $MembersPerPage;                 $i_indexpages = int( $pagenumb / $dropdisplaynum ); 
               if (substr($INFO{'start'}, 0, 3) eq "all") { $MembersPerPage = $MembersPerPage * $dropdisplaynum; }                 if ( $d_indexpages > $i_indexpages ) { 
               $prevpage          = $start - $tmpMembersPerPage;                     $indexpages = int( $pagenumb / $dropdisplaynum ) + 1; 
               $nextpage          = $start + $MembersPerPage;                 } 
               $pagedropindexpvbl = qq~<img src="$imagesdir/index_left0.gif" height="14" width="13" border="0" alt="" style="margin: 0px; display: inline; vertical-align: middle;" />~;                 else { $indexpages = int( $pagenumb / $dropdisplaynum ) } 
               $pagedropindexnxbl = qq~<img src="$imagesdir/index_right0.gif" height="14" width="13" border="0" alt="" style="margin: 0px; display: inline; vertical-align: middle;" />~;                 $selectedindex = 
               if ($start < $MembersPerPage) { $pagedropindexpv .= qq~<img src="$imagesdir/index_left0.gif" height="14" width="13" border="0" alt="" style="display: inline; vertical-align: middle;" />~; }                   int( ( $start / $MembersPerPage ) / $dropdisplaynum ); 
               else { $pagedropindexpv .= qq~<img src="$imagesdir/index_left.gif" border="0" height="14" width="13" alt="$pidtxt{'02'}" title="$pidtxt{'02'}" style="display: inline; vertical-align: middle; cursor: pointer;" onclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$prevpage$sortorder\\'" ondblclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=0$sortorder\\'" />~; }  
               if ($nextpage > $lastptn) { $pagedropindexnx .= qq~<img src="$imagesdir/index_right0.gif" border="0" height="14" width="13" alt="" style="display: inline; vertical-align: middle;" />~; }                 if ( $pagenumb > $dropdisplaynum ) { 
               else { $pagedropindexnx .= qq~<img src="$imagesdir/index_right.gif" height="14" width="13" border="0" alt="$pidtxt{'03'}" title="$pidtxt{'03'}" style="display: inline; vertical-align: middle; cursor: pointer;" onclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$nextpage$sortorder\\'" ondblclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$lastptn$sortorder\\'" />~; }                     $pagedropindex1 .= 
               $pageindex1 = qq~$pagedropindex1</span>~;  qq~<span style="float: left; height: 21px; margin: 0;"><select size="1" name="decselector1" id="decselector1" onchange="if(this.options[this.selectedIndex].value) SelDec(this.options[this.selectedIndex].value, 'xx')">\n~; 
               $pageindex2 = qq~$pagedropindex2</span>~;                     $pagedropindex2 .= 
  qq~<span style="float: left; height: 21px; margin: 0;"><select size="1" name="decselector2" id="decselector2" onchange="if(this.options[this.selectedIndex].value) SelDec(this.options[this.selectedIndex].value, 'xx')">\n~;
               $pageindexjs = qq~                 } 
<script language="JavaScript1.2" type="text/javascript">                 for my $i ( 0 .. ( $indexpages - 1 ) ) { 
<!--                     $indexpage  = ( $i * $dropdisplaynum ) * $MembersPerPage; 
   function SelDec(decparam, visel) {                     $indexstart = ( $i * $dropdisplaynum ) + 1; 
       splitparam = decparam.split("|");                     $indexend   = $indexstart + ( $dropdisplaynum - 1 ); 
       var vistart = parseInt(splitparam[0]);                     if ( $indexend > $pagenumb ) { $indexend = $pagenumb; } 
       var viend = parseInt(splitparam[1]);                     if ( $indexstart == $indexend ) { 
       var maxpag = parseInt(splitparam[2]);                         $indxoption = qq~$indexstart~; 
       var pagstart = parseInt(splitparam[3]);                     } 
       var allpagstart = parseInt(splitparam[3]);                     else { $indxoption = qq~$indexstart-$indexend~; } 
       if(visel == 'xx' && decparam == '$pagejsindex') visel = '$tstart';                     $selected = q{}; 
       var pagedropindex = '<table border="0" cellpadding="0" cellspacing="0"><tr>';                     if ( $i == $selectedindex ) { 
       for(i=vistart; i<=viend; i++) {                         $selected = q~ selected="selected"~; 
           if(visel == pagstart) pagedropindex += '<td class="titlebg" height="14" style="height: 14px; padding-left: 1px; padding-right: 1px; font-size: 9px; font-weight: bold;">' + i + '</td>';                         $pagejsindex = 
           else pagedropindex += '<td height="14" class="droppages"><a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=' + pagstart + '$sortorder">' + i + '</a></td>';                           qq~$indexstart|$indexend|$MembersPerPage|$indexpage~; 
           pagstart += maxpag;                     } 
       }                     if ( $pagenumb > $dropdisplaynum ) { 
       ~;                         $pagedropindex1 .= 
       if ($showpageall) {  qq~<option value="$indexstart|$indexend|$MembersPerPage|$indexpage"$selected>$indxoption</option>\n~; 
           $pageindexjs .= qq~                         $pagedropindex2 .= 
           if (vistart != viend) {  qq~<option value="$indexstart|$indexend|$MembersPerPage|$indexpage"$selected>$indxoption</option>\n~; 
               if(visel == 'all') pagedropindex += '<td class="titlebg" height="14" style="height: 14px; padding-left: 1px; padding-right: 1px; font-size: 9px; font-weight: normal;"><b>$pidtxt{"01"}</b></td>';                     } 
               else pagedropindex += '<td height="14" class="droppages"><a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=all-' + allpagstart + '$sortorder">$pidtxt{"01"}</a></td>';                 } 
           }                 if ( $pagenumb > $dropdisplaynum ) { 
           ~;                     $pagedropindex1 .= qq~</select>\n</span>~; 
       }                     $pagedropindex2 .= qq~</select>\n</span>~; 
       $pageindexjs .= qq~                 } 
       if(visel != 'xx') pagedropindex += '<td height="14" class="small" style="height: 14px; padding-left: 4px;">$pagedropindexpv$pagedropindexnx</td>';                 $pagedropindex1 .= 
       else pagedropindex += '<td height="14" class="small" style="height: 14px; padding-left: 4px;">$pagedropindexpvbl$pagedropindexnxbl</td>';  q~<span id="ViewIndex1" class="droppageindex" style="height: 14px; visibility: hidden">&nbsp;</span>~; 
       pagedropindex += '</tr></table>';                 $pagedropindex2 .= 
       document.getElementById("ViewIndex1").innerHTML=pagedropindex;  q~<span id="ViewIndex2" class="droppageindex" style="height: 14px; visibility: hidden">&nbsp;</span>~; 
       document.getElementById("ViewIndex1").style.visibility = "visible";                 $tmpMembersPerPage = $MembersPerPage; 
       document.getElementById("ViewIndex2").innerHTML=pagedropindex;                 if ( substr( $INFO{'start'}, 0, 3 ) eq 'all' ) { 
       document.getElementById("ViewIndex2").style.visibility = "visible";                     $MembersPerPage = $MembersPerPage * $dropdisplaynum; 
       ~;                 } 
               if ($pagenumb > $dropdisplaynum) {                 $prevpage = $start - $tmpMembersPerPage; 
                   $pageindexjs .= qq~                 $nextpage = $start + $MembersPerPage; 
       document.getElementById("decselector1").value = decparam;                 $pagedropindexpvbl = 
       document.getElementById("decselector2").value = decparam;  qq~<img src="$imagesdir/index_left0.png" height="14" width="13" alt="" style="vertical-align: top; margin-top:-1px" />~; 
       ~;                 $pagedropindexnxbl = 
               }  qq~<img src="$imagesdir/index_right0.png" height="14" width="13" alt="" style="vertical-align: top; margin-top:-1px;" />~; 
               $pageindexjs .= qq~                 if ( $start < $MembersPerPage ) { 
   }                     $pagedropindexpv .= 
   document.onload = SelDec('$pagejsindex', '$tstart');  qq~<img src="$imagesdir/index_left0.png" height="14" width="13" alt="" style="vertical-align: top; margin-top:-1px" />~; 
   //-->                 } 
                 else {
                     $pagedropindexpv .=
  qq~<img src="$imagesdir/index_left.png" height="14" width="13" alt="$pidtxt{'02'}" title="$pidtxt{'02'}" style="vertical-align: top; cursor: pointer; margin-top:-1px;" onclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$prevpage$sortorder\\'" ondblclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=0$sortorder\\'" />~;
                 }
                 if ( $nextpage > $lastptn ) {
                     $pagedropindexnx .=
  qq~<img src="$imagesdir/index_right0.png" height="14" width="13" alt="" style="vertical-align: top; margin-top:-1px;" />~;
                 }
                 else {
                     $pagedropindexnx .=
  qq~<img src="$imagesdir/index_right.png" height="14" width="13" alt="$pidtxt{'03'}" title="$pidtxt{'03'}" style="display: inline; vertical-align: top; margin-top:-1px; cursor: pointer;" onclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$nextpage$sortorder\\'" ondblclick="location.href=\\'$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=$lastptn$sortorder\\'" />~;
                 }
                 $pageindex1 = qq~$pagedropindex1</span>~;
                 $pageindex2 = qq~$pagedropindex2</span>~;
   
                 $pageindexjs = qq~
  <script type="text/javascript">
     function SelDec(decparam, visel) {
         splitparam = decparam.split("|");
         var vistart = parseInt(splitparam[0]);
         var viend = parseInt(splitparam[1]);
         var maxpag = parseInt(splitparam[2]);
         var pagstart = parseInt(splitparam[3]);
         var allpagstart = parseInt(splitparam[3]);
         if(visel == 'xx' && decparam == '$pagejsindex') visel = '$tstart';
         var pagedropindex = '<table><tr>';
         for(i=vistart; i<=viend; i++) {
             if(visel == pagstart) pagedropindex += '<td class="titlebg" style="height: 14px; padding:0 1px; font-size: 9px; font-weight: bold">' + i + '</td>';
             else pagedropindex += '<td class="droppages" style="line-height:14px; padding:0 1px"><a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=' + pagstart + '$sortorder">' + i + '</a></td>';
             pagstart += maxpag;
         }
         ~;
                 if ($showpageall) {
                     $pageindexjs .= qq~
             if (vistart != viend) {
                 if(visel == 'all') pagedropindex += '<td class="titlebg" style="line-height: 14px; padding:0 1px; font-size: 9px; font-weight: normal;"><b>$pidtxt{"01"}</b></td>';
                 else pagedropindex += '<td class="droppages" style="line-height:14px; padding:0 1px"><a href="$adminurl?action=ml;sort=$FORM{'sortform'};letter=$letter;start=all-' + allpagstart + '$sortorder">$pidtxt{"01"}</a></td>';
             }
             ~;
                 }
                 $pageindexjs .= qq~
         if(visel != 'xx') pagedropindex += '<td class="small" style="line-height: 14px; padding:0 0 0 4px;">$pagedropindexpv$pagedropindexnx</td>';
         else pagedropindex += '<td class="small" style="line-height: 14px; padding:0 0 0 4px;">$pagedropindexpvbl$pagedropindexnxbl</td>';
         pagedropindex += '</tr></table>';
         document.getElementById("ViewIndex1").innerHTML=pagedropindex;
         document.getElementById("ViewIndex1").style.visibility = "visible";
         document.getElementById("ViewIndex2").innerHTML=pagedropindex;
         document.getElementById("ViewIndex2").style.visibility = "visible";
         ~;
                 if ( $pagenumb > $dropdisplaynum ) {
                     $pageindexjs .= q~
         document.getElementById("decselector1").value = decparam;
         document.getElementById("decselector2").value = decparam;
         ~;
                 }
                 $pageindexjs .= qq~
     }
     document.onload = SelDec('$pagejsindex', '$tstart');
</script> </script>
~; ~;
           }            }
       }        }
   }    }
   
   sub buildPages {     return; 
       $SortJump .= qq(