<?php
// $Id$

/**
 * prof_helper.module
 *
 * @author
 *  Frank <tumblingmug@screencast.at>
 */

/*
 * Implementation of hook_form_alter()
 */
function prof_helper_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'user_register' || $form_id == 'user_profile_form') {
    _prof_helper_selects_add_select($form);
  }
}

/*
 * Runs through a form array recursively and adds a "Please select..." option 
 * at the top of required selection lists
 */
function _prof_helper_selects_add_select(&$formelement) {
  $is_select = $is_required = FALSE;
  foreach ($formelement as $key => $val) {
    if (strpos($key, '#') !== 0 && is_array($formelement[$key])) {
      _prof_helper_selects_add_select($formelement[$key]);
    }
    if ($key == '#type' && $val == 'select') {
      $is_select = TRUE;
    }
    if ($key == '#options') {
      $opts = &$formelement[$key]; 
    }
    if ($key == '#required' && $val == '1') {
      $is_required = TRUE;
    }
    if ($is_select && $is_required && is_array($opts)) {
      $opts = array('' => t('Please select...')) + $opts;
    }
  }
}

