+function contact_selector($selname, $selclass, $preselected = false, $options) {
+
+ $a = get_app();
+
+ $mutual = false;
+ $networks = null;
+ $single = false;
+ $exclude = false;
+ $size = 4;
+
+ if(is_array($options)) {
+ if(x($options,'size'))
+ $size = $options['size'];
+
+ if(x($options,'mutual_friends'))
+ $mutual = true;
+ if(x($options,'single'))
+ $single = true;
+ if(x($options,'multiple'))
+ $single = false;
+ if(x($options,'exclude'))
+ $exclude = $options['exclude'];
+
+ if(x($options,'networks')) {
+ switch($options['networks']) {
+ case 'DFRN_ONLY':
+ $networks = array('dfrn');
+ break;
+ case 'PRIVATE':
+ if(is_array($a->user) && $a->user['prvnets'])
+ $networks = array('dfrn','mail','dspr');
+ else
+ $networks = array('dfrn','face','mail', 'dspr');
+ break;
+ case 'TWO_WAY':
+ if(is_array($a->user) && $a->user['prvnets'])
+ $networks = array('dfrn','mail','dspr');
+ else
+ $networks = array('dfrn','face','mail','dspr','stat');
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ $x = array('options' => $options, 'size' => $size, 'single' => $single, 'mutual' => $mutual, 'exclude' => $exclude, 'networks' => $networks);
+
+ call_hooks('contact_select_options', $x);
+
+ $o = '';
+
+ $sql_extra = '';
+
+ if($x['mutual']) {
+ $sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND));
+ }
+
+ if(intval($x['exclude']))
+ $sql_extra .= sprintf(" AND `id` != %d ", intval($x['exclude']));