/*
	xtdpd_estat

*!  VERSION 1.0.2  25may2009

	***
	USE EXTREME CARE WHEN CHANGING CONTROL NAMES. The names used
	in this file have multiple external dependencies.
*/

VERSION 11.0

INCLUDE _std_large
DEFINE _dlght 360	//dialog length for bootstrap options
INCLUDE header

HELP hlp1, view("help xtdpd postestimation")
RESET res1

SCRIPT PREINIT
BEGIN
	create BOOLEAN has_FactorVars
	has_FactorVars.setfalse
END

DIALOG main, label("estat - Postestimation tools for xtdpd") tabtitle("Main")
BEGIN
  TEXT     tx_subcmd		_lft	_top	_iwd	.,		///
  	label("Reports and statistics: (subcommand)")
  LISTBOX  lb_subcmd		@	_ss	@	70,		///
  	contents(main_subcommand_contents)				///
  	values(main_subcommand_values)					///
  	onselchangelist(main_subcommand_scripts)

  DEFINE holdy 110

  // abond options
  CHECKBOX ck_artests		_lft	holdy	_ckwd	.,		///
	onclickon(script main_artests_on)				///
	onclickoff(script main_artests_off)				///
	label("")
  SPINNER sp_artests		_cksep	@	_spwd	.,		///
	min(1)								///
	max(100000)							///
	default(1)							///
	option(artests)							///
	label("Highest order of serial correlation to be tested")
  TEXT tx_artests		_spsep	@	300	.,		///
	label("Highest order of serial correlation to be tested")

  // sargan note
  TEXT tx_sargannote		_lft	holdy	_iwd	.,		///
        label("Click OK or Submit to report Sargan test of overidentifying restrictions")

  // Summarize options
  GROUPBOX gb_eqlist            _lft    holdy	_iwd	_ht6,		///
  	label("Summarize")
  RADIO    rb_default		_ilft	_ss	_inwd	.,		///
  	first label("Use all variables involved in the estimation")	///
  	onclickon(main.vl_spec.disable)
  RADIO    rb_spec		@	_ss	@	.,		///
	onclickon(main.vl_spec.enable) last				///
	label("Use variables and optional equation names:")
  VARLIST  vl_spec	      _indent2	_ss	_inwd	.,		///
	label("Use variables and optional equation names")
  CHECKBOX ck_equation      	_lft	+45	_iwd	.,		///
	option(equation)						///
	label("Display summary by equation")
  CHECKBOX ck_labels		@	_ms	@	.,		///
  	label("Display variable labels")				///
  	option(labels)
  CHECKBOX ck_noheader		_lft	_ms	_iwd	.,		///
	option(noheader)						///
	label("Suppress the header")
  CHECKBOX ck_noweights		@	_ms	@	.,		///
	option(noweights)						///
	label("Ignore weights")

  INCLUDE estat_vce
END

SCRIPT main_GetFormat
BEGIN
	create STRING mainFormat
	create CHILD format_chooser
	format_chooser.setExitString mainFormat
	format_chooser.setExitAction "main.ed_format_1.setvalue class mainFormat.value"
END

INCLUDE estat_vce_pr

SCRIPT main_artests_on
BEGIN
	main.sp_artests.enable
	main.tx_artests.enable
END
SCRIPT main_artests_off
BEGIN
	main.sp_artests.disable
	main.tx_artests.disable
END

SCRIPT main_group_on
BEGIN
	main.sp_group.enable
	main.tx_group.enable
END
SCRIPT main_group_off
BEGIN
	main.sp_group.disable
	main.tx_group.disable
END

LIST main_subcommand_contents
BEGIN
	"Tests for autocorrelation (abond)"
	"Sargan test of overidentifying restrictions (sargan)"
	"Summarize estimation sample (summarize)"
	"Covariance matrix estimates (vce)"
END

LIST main_subcommand_values
BEGIN
	abond
	sargan
	summarize
	vce
END

LIST main_subcommand_scripts
BEGIN
	script sel_abond
	script sel_sargan
	script sel_summarize
	script sel_vce
END

SCRIPT sel_abond
BEGIN
	script main_hide_all
	script main_abond_on
END

SCRIPT sel_sargan
BEGIN
	script main_hide_all
	main.tx_sargannote.show
END

SCRIPT sel_summarize
BEGIN
	script main_hide_all
	script main_summ_on
END

SCRIPT sel_vce
BEGIN
	script main_hide_all
	program vce_on
END

SCRIPT main_abond_on
BEGIN
	main.ck_artests.show
	main.sp_artests.show
	main.tx_artests.show
END

SCRIPT main_abond_off
BEGIN
	main.ck_artests.hide
	main.sp_artests.hide
	main.tx_artests.hide
END

SCRIPT main_summ_on
BEGIN
	main.ck_equation.show
	main.ck_labels.show
	main.ck_noheader.show
	main.ck_noweights.show
	main.gb_eqlist.show
	main.rb_default.show
	main.rb_spec.show
	main.vl_spec.show
END

SCRIPT main_summ_off
BEGIN
	main.ck_equation.hide
	main.ck_labels.hide
	main.ck_noheader.hide
	main.ck_noweights.hide
	main.gb_eqlist.hide
	main.rb_default.hide
	main.rb_spec.hide
	main.vl_spec.hide
END

SCRIPT main_hide_all  // MUST BE IMPLEMENTED FOR BOOTSTRAP
BEGIN
	script main_abond_off
	main.tx_sargannote.hide
	script main_summ_off
	program vce_off
END

SCRIPT main_format_on
BEGIN
	main.ed_format_1.enable
	main.bn_format_1.enable
END
SCRIPT main_format_off
BEGIN
	main.ed_format_1.disable
	main.bn_format_1.disable
END

PROGRAM vl_output
BEGIN
	put main.vl_spec
END

PROGRAM vl_eq_output
BEGIN
	put main.vl_eq
END


PROGRAM command
BEGIN
	put "estat "
	put main.lb_subcmd
	if main.rb_spec {
		require main.vl_spec
		put " " main.vl_spec
	}
	beginoptions
		// abond option
		optionarg main.sp_artests

		// Summarize options
		option main.ck_equation
		option main.ck_labels
		option main.ck_noheader
		option main.ck_noweights
		put " " /program vce_output
	endoptions
END
