/**
   * Displays a field for user selection, includes user array in json format, and the jQuery autocomplete() function.
   *
   *
   * @since 3.0
   */
    function draw_user_auto_complete_field($args = '') {
      global $wpi_settings, $wpdb, $wp_scripts;

      //** Check if autocomplete scrip is loaded, and load it inline */
      if(!wp_script_is('jquery.autocomplete')) { ?>
        <script type='text/javascript' src='<?php echo WPI_URL . "/core/js/jquery.autocomplete.pack.js"; ?>'></script>
      <?php }

      //** Extract passed args and load defaults */
      extract(wp_parse_args($args,  array(
        'input_name' => 'wpi[new_invoice][user_email]',
        'input_class' => 'nput_field',
        'input_id' => 'wp_invoice_userlookup',
        'input_style' => ''
      )), EXTR_SKIP);

      //** Get array of users */
      $user_array = WPI_Functions::build_user_array();

      //** Create string of users to use for autocompletion script */
      $user_array_js_string = '';
      foreach ($user_array as $key => $user) {
        if (empty($user['user_email'])) break;
        $user_array_js_string .= "{name:'{$user['display_name']}',email:'{$user['user_email']}',ID:'{$user['ID']}'}";
        $user_array_js_string .= ( $key != end(array_keys($user_array)) ? ", " : "");
      } ?>
<script type="text/javascript">
var wp_invoice_users = [<?php echo $user_array_js_string; ?>];
jQuery(document).ready(function() {
jQuery("#<?php echo $input_id; ?>").focus();
jQuery("#<?php echo $input_id; ?>").autocomplete(wp_invoice_users, {
  minChars: 0,
  width: 500,
  scrollHeight: 500,
  matchContains: true,
  autoFill: false,
  formatItem: function(row, i, max) {
    return row.name +  " (" + row.email + ")";
  },
  formatMatch: function(row, i, max) {
    return row.name + " " + row.email;
  },
  formatResult: function(row) {
    return row.email;
  }
});
});
</script>
<input name="<?php echo $input_name; ?>" class="<?php echo $input_class; ?>" id="<?php echo $input_id; ?>"  style="<?php echo $input_style; ?>" />
<?php

    }