/*
	predict (after cnsreg and eivreg)

*!  VERSION 1.3.0  02may2007

*/

VERSION 9.0

INCLUDE _std_medium
INCLUDE _ht280
INCLUDE header
HELP hlp1, view("help cnsreg postestimation")
RESET res1

DEFINE awid   45
DEFINE asep  +50
DEFINE bwid   40
DEFINE bsep  +45
DEFINE uwid  110
DEFINE usep +115
DEFINE vwid   55
DEFINE vsep  +60

DIALOG main, label("predict - Prediction after estimation") tabtitle("Main")
BEGIN
  INCLUDE  _p_gentype

  GROUPBOX gb_opts           _lft      _ls       _iwd      _ht15h,	/*
		*/ label("Produce:")
  RADIO    rb_xb             _ilft     _ss       _ibwd     ., first	/*
		*/ option(xb)						/*
		*/ clickon("script all_off")				/*
		*/ label("Linear prediction (xb)")
  RADIO    rb_residuals      @         _ss       @         .,		/*
		*/ option(residuals)					/*
		*/ clickon("script all_off")				/*
		*/ label("Residuals (equation-level scores)")
  RADIO    rb_stdp           @         _ss       @         .,		/*
		*/ option(stdp)						/*
		*/ clickon("script all_off")				/*
		*/ label("Standard error of the prediction")
  RADIO    rb_stdf           @         _ss       @         .,		/*
		*/ option(stdf)						/*
		*/ clickon("script all_off")				/*
		*/ label("Standard error of the forecast")

  RADIO    rb_pr             @         _ms       awid      .,		/*
		*/ option(NONE)  /* handled another way */		/*
		*/ clickon("script pr_on")				/*
		*/ label("Pr(y|")
  EDIT     en_pr_a           asep      @         _en7wd    .,		/*
		*/ numonly						/*
		*/ label("Pr() lower limit")
  TEXT     tx_pr             _en7sep   @         bwid      .,		/*
		*/ center label("< y <")
  EDIT     en_pr_b           bsep      @         _en7wd    .,		/*
		*/ numonly						/*
		*/ label("Pr() upper limit")
  TEXT     tx_pr2            _en7sep   @         bwid      ., label(")")

  RADIO    rb_e              _ilft     _ms       awid      .,		/*
		*/ option(NONE)  /* handled another way */		/*
		*/ clickon("script e_on")				/*
		*/ label("E(y|")
  EDIT     en_e_a            asep      @         _en7wd    .,		/*
		*/ numonly						/*
		*/ label("E() lower limit")
  TEXT     tx_e              _en7sep   @         bwid      .,		/*
		*/ center label("< y <")
  EDIT     en_e_b            bsep      @         _en7wd    .,		/*
		*/ numonly						/*
		*/ label("E() upper limit")
  TEXT     tx_e2             _en7sep   @         bwid      ., label(")")

  RADIO    rb_ystar          _ilft     _ms       uwid      ., last	/*
		*/ option(NONE)  /* handled another way */		/*
		*/ clickon("script ystar_on")				/*
		*/ label("E(y*), y* = max(")
  EDIT     en_ystar_a        usep      @         _en7wd    .,		/*
		*/ numonly						/*
		*/ label("E(y*) lower limit")
  TEXT     tx_ystar          _en7sep   @         vwid      .,		/*
		*/ center label(", min(y,")
  EDIT     en_ystar_b        vsep      @         _en7wd    .,		/*
		*/ numonly						/*
		*/ label("E(y*) upper limit")
  TEXT     tx_ystar2         _en7sep   @         bwid      ., label("))")

  INCLUDE _svy_predict_note
END

SCRIPT PREINIT
BEGIN
	create STRING prefix_name
	prefix_name.setstring e(prefix)
END

SCRIPT POSTINIT
BEGIN
	main.tx_temp.hide
	main.tx_svy_note.hide
	program svy_check
END

PROGRAM svy_check
BEGIN
	if prefix_name.equals("svy") {
		call main.tx_svy_note.show
		call main.rb_stdf.disable
	}
END

INCLUDE _p_gentype_sc
INCLUDE ifin

SCRIPT all_off
BEGIN
  script pr_off
  script e_off
  script ystar_off
END

SCRIPT pr_on
BEGIN
  script e_off
  script ystar_off
  main.en_pr_a.enable
  main.en_pr_b.enable
END

SCRIPT pr_off
BEGIN
  main.en_pr_a.disable
  main.en_pr_b.disable
END

SCRIPT e_on
BEGIN
  script pr_off
  script ystar_off
  main.en_e_a.enable
  main.en_e_b.enable
END

SCRIPT e_off
BEGIN
  main.en_e_a.disable
  main.en_e_b.disable
END

SCRIPT ystar_on
BEGIN
  script pr_off
  script e_off
  main.en_ystar_a.enable
  main.en_ystar_b.enable
END

SCRIPT ystar_off
BEGIN
  main.en_ystar_a.disable
  main.en_ystar_b.disable
END

INCLUDE _type_list_fd

PROGRAM command
BEGIN
	put "predict "
	put " " /program _p_gentype_output
	INCLUDE _ifin_pr
	beginoptions
		option radio(main rb_xb rb_residuals rb_stdp rb_stdf /*
						*/ rb_pr rb_e rb_ystar)
	endoptions
	INCLUDE _pr_pr
	INCLUDE _e_pr
	INCLUDE _ystar_pr
END
