protected static function get_branch_assignment_control($readAuth, $branchCmsUserAttr, $args, $settings)
 {
     if (!$branchCmsUserAttr) {
         return '<span style="display:none;">No branch location attribute</span>';
     }
     // no attribute so don't display
     if (self::$cmsUserList == null) {
         $query = db_query("select uid, name from {users} where name <> '' order by name");
         $users = array();
         // there have been DB API changes for Drupal7: db_query now returns the result array.
         if (version_compare(VERSION, '7', '<')) {
             while ($user = db_fetch_object($query)) {
                 $users[$user->uid] = $user->name;
             }
         } else {
             foreach ($query as $user) {
                 $users[$user->uid] = $user->name;
             }
         }
         self::$cmsUserList = $users;
     } else {
         $users = self::$cmsUserList;
     }
     // next reduce the list to branch users
     if ($settings['canAllocBranch']) {
         // only check the users permissions if can change value - for performance reasons.
         $new_users = array();
         foreach ($users as $uid => $name) {
             $account = user_load($uid);
             if (user_access($args['branch_assignment_permission'], $account)) {
                 $new_users[$uid] = $name;
             }
         }
         $users = $new_users;
     }
     $r = '<fieldset id="alloc-branch"><legend>' . lang::get('Site Branch Allocation') . '</legend>';
     if ($settings['canAllocBranch']) {
         $r .= data_entry_helper::select(array('label' => lang::get('Select Branch Manager'), 'fieldname' => 'branchCmsUserId', 'lookupValues' => $users, 'afterControl' => '<button id="add-branch-coord" type="button">' . lang::get('Add') . '</button>'));
         // tell the javascript which attr to save the user ID into
         data_entry_helper::$javascript .= "indiciaData.locBranchCmsUsrAttr = " . self::$branchCmsUserAttrId . ";\n";
     }
     $r .= '<table id="branch-coord-list" style="width: auto">';
     $rows = '';
     // cmsUserAttr needs to be multivalue
     if (isset($branchCmsUserAttr['default']) && !empty($branchCmsUserAttr['default'])) {
         foreach ($branchCmsUserAttr['default'] as $value) {
             if ($settings['canAllocBranch']) {
                 $rows .= '<tr><td id="branch-coord-' . $value['default'] . '"><input type="hidden" name="' . $value['fieldname'] . '" ' . 'value="' . $value['default'] . '"/>' . $users[$value['default']] . '</td><td><div class="ui-state-default ui-corner-all"><span class="remove-user ui-icon ui-icon-circle-close"></span></div></td></tr>';
             } else {
                 $rows .= '<tr><td>' . $users[$value['default']] . '</td><td></td></tr>';
             }
         }
     }
     if (empty($rows)) {
         $rows = '<tr><td colspan="2"></td></tr>';
     }
     $r .= "{$rows}</table>\n";
     $r .= '</fieldset>';
     return $r;
 }