/*
	predict (after ivreg)

*!  VERSION 1.2.0  28jun2006

*/

VERSION 9.0

INCLUDE _std_medium
INCLUDE _ht280
INCLUDE header

HELP hlp1, view("help ivreg 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      _indent      _ss    _inwd        ., first /*
		*/ option(xb)					/*
		*/ clickon("script all_off")			/*
		*/ label("Fitted values (xb)")
  RADIO    rb_resid         @      _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")
  DEFINE   holdx @x

  RADIO    rb_pr            @      _ms     awid        .,	/*
		*/ option(NONE)  /* handled in 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         holdx      _ms     awid        .,	/*
		*/ option(NONE)  /* handled in 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     holdx      _ms     uwid        ., last	/*
		*/ option(NONE)  /* handled in 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
		call main.rb_pr.disable
		call main.en_pr_a.disable
		call main.tx_pr.disable
		call main.en_pr_b.disable
		call main.tx_pr2.disable
		call main.rb_e.disable
		call main.en_e_a.disable
		call main.tx_e.disable
		call main.en_e_b.disable
		call main.tx_e2.disable
		call main.rb_ystar.disable
		call main.en_ystar_a.disable
		call main.tx_ystar.disable
		call main.en_ystar_b.disable
		call main.tx_ystar2.disable
	}
END

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 _p_gentype_sc
INCLUDE _type_list_fd

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