declare -A get_results

create_temp() {
  # input returned in $RET variable
  if [ -z "$TMP" ]; then
    TMP=`mktemp salpack.XXXXXXXXXX`
    trap "rm -rf $TMP; exit" INT TERM EXIT
  fi
}

get_text() {
  create_temp
  whiptail --title salpack --inputbox "$1" 8 70 "$2" 2> $TMP
  RET=`cat $TMP`
}

get_yes_no() {
  if [ "${get_results[$1]}" = "ON" ]; then
    return 0
  elif [ "${get_results[$1]}" = "OFF" ]; then
    return 1
  fi
  if [ "$SALPACK_FORCE" = "ON" ]; then
    return 0
  fi
  whiptail --title salpack --yesno "$2" 8 70
}

get_multi() {
  NAME="$1"
  shift
  create_temp
  whiptail --title salpack --checklist --separate-output \
    "$NAME" 20 70 14 "$@" 2> $TMP
  if [ "$?" = "0" ]; then
    for ((i=1; i<$#; i+=3)); do
      get_results[${!i}]="OFF"
    done
    while read val; do
      get_results[$val]="ON"
    done < $TMP
  fi
}
