#*
  The contents of this file are subject to the Mozilla Public License Version 1.1
  (the "License"); you may not use this file except in compliance with the License.
  You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
  
  Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
  WARRANTY OF ANY KIND, either express or implied. See the License for the specific
  language governing rights and limitations under the License.
  
  The Original Code is the Venice Web Communities System.
  
  The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
  for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
  Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
  
  Contributor(s): 
*#
#*
  Parameters:
    comm     = Community we're working with
    stdlist  = 0 if this is a "search" operation, 1 if this is a "member list" operation
    field    = Search field (string equivalent)
    mode     = Search mode (string equivalent)
    term     = Search term
    ofs      = Offset within the search we're at right now
    fcount   = Total number of items found in current search
    pagesize = Number of items to display per page
    results  = Results list from find/member list, a List of DynamoUser objects (may be null)
*#
#header2( "Community Members:" "$comm.Name" )
<form method="POST" action="#formatURL( "SERVLET" "comm/members.js.vs")">
  <input type="hidden" name="cc" value="${comm.getCID()}" />
  <input type="hidden" name="ofs" value="0" />
  <input type="hidden" name="sl" value="0" />
  #comment( "Find Community Members form" )
  <div align="left">
    <p><b>Search for members of community &quot;$comm.Name&quot;:</b></p>
    <p>Display all users whose&nbsp;
    <select name="field" size="1">
      <option value="USERNAME" #if( $field.equals("USERNAME") )selected="selected"#end >username</option>
      <option value="DESCRIPTION" #if( $field.equals("DESCRIPTION") )selected="selected"#end >description</option>
      <option value="FIRSTNAME" #if( $field.equals("FIRSTNAME") )selected="selected"#end >first name</option>
      <option value="LASTNAME" #if( $field.equals("LASTNAME") )selected="selected"#end >last name</option>
    </select>&nbsp;
    <select name="mode" size="1">
      <option value="PREFIX" #if( $mode.equals("PREFIX") )selected="selected"#end >starts with the string</option>
      <option value="SUBSTRING" #if( $mode.equals("SUBSTRING") )selected="selected"#end >contains the string</option>
      <option value="REGEXP" #if( $mode.equals("REGEXP") )selected="selected"#end >matches the regular
        expression</option>
    </select>&nbsp;&nbsp;
    <input type="text" name="term" size="32" maxlength="255" value="$!term" /></p>
    <p>#button( "INPUT" "search" )</p>
  </div>
  #comment( "end Find Community Members form" )
</form>

#if( $results )
  ## Do a tricky set of computations here to figure out what we need to display in terms of the search results
  ## and the form to the right that lets us page through results.
  #set( $resultcount = $results.size() )
  #set( $is_next = 0 )
  #set( $is_prev = 0 )
  #if( $resultcount > $pagesize )
    #set( $resultcount = $pagesize )
    #set( $is_next = 1 )
  #end
  #if( $ofs > 0 )
    #set( $is_prev = 1 )
  #end
  #set( $is_form = $is_next + $is_prev )
  #set( $ndx_first = $ofs + 1 )
  #set( $ndx_last = $ofs + $pagesize )
  #if( $ndx_last > $fcount )
    #set( $ndx_last = $fcount )
  #end

  #comment( "Results display" )
  <hr />
  <table width="100%" border="0" align="center"><tr valign="middle">
    <td width="50%" align="left" class="subhead">
      #if( $stdlist == 1 )
        <b>Community Members</b>
      #else
        <b>Search Results</b>
      #end
      #if( $is_form >= 1 )
        (Displaying ${ndx_first}-${ndx_last} of ${fcount})
      #end
    </td>
    <td width="50%" align="right">
      #if( $is_form >= 1 )
        #comment( "Results navigation form" )
        <form method="POST" action="#formatURL( "SERVLET" "comm/members.js.vs")">
          <input type="hidden" name="cc" value="${comm.getCID()}" />
          <input type="hidden" name="sl" value="$stdlist" />
          <input type="hidden" name="field" value="$!field" />
          <input type="hidden" name="mode" value="$!mode" />
          <input type="hidden" name="term" value="$!term" />
          <input type="hidden" name="ofs" value="$ofs" />
          <input type="hidden" name="fcount" value="$fcount" />
          #if( $is_prev == 1 )
            #button( "INPUT" "previous" )
          #else
            #button( "IMAGE" "0transparent" )
          #end
          &nbsp;&nbsp;
          #if( $is_next == 1 )
            #button( "INPUT" "next" )
          #else
            #button( "IMAGE" "0transparent" )
          #end
        </form>
      #else
        &nbsp;
      #end
    </td>
  </tr></table>

  #if( $fcount > 0 )
    #set( $i = $resultcount )
    #set( $prof_ns = "http://www.silverwrist.com/NS/venice/2002/12/31/user.profile" )
    <table border="0" align="left" cellpadding="0" cellspacing="4">
      #foreach( $usr in $results )
        #set( $i = $i - 1 )
        #if( $i >= 0 )
          #set( $first = $std.getProperty($usr,$prof_ns,"name.given") )
          #set( $last = $std.getProperty($usr,$prof_ns,"name.family") )
          #set( $city = $std.getProperty($usr,$prof_ns,"locality") )
          #set( $state = $std.getProperty($usr,$prof_ns,"region") )
          #set( $country = $std.getProperty($usr,$prof_ns,"country") )
          #set( $descr = $std.getProperty($usr,$prof_ns,"description") )
          <tr valign="top">
            <td align="center" width="14">#bullet()</td>
            <td align="left" class="content">
              <a href="#formatURL( "SERVLET" "user/${usr.Name}" )">#encodeHTML( $usr.Name )</a><br />
              #encodeHTML( $first ) #encodeHTML( $last ), from #encodeHTML( $city ), #encodeHTML( $state )
              &nbsp;#encodeHTML( $country.getCode() )
              #if( $descr )
                <br /><em>#encodeHTML( $descr )</em>
              #end
            </td>
          </tr>
        #end
      #end
    </table>
  #else
    <em>No members found.</em>
  #end

  #comment( "End results display" )
#end
