*! version 1.1.0  02jun2009
program define glogit_p
	version 6, missing

		/* Step 1:
			place command-unique options in local myopts
			Note that standard options are
			LR:
				Index XB Cooksd Hat 
				REsiduals RSTAndard RSTUdent
				STDF STDP STDR noOFFset
			SE:
				Index XB STDP noOFFset

			glogit is done with regression, the options we 
			do not want to work have been added.
		*/
	local myopts "N Pr Cooksd Hat REsiduals RSTAndard RSTUdent STDF STDR"
		


		/* Step 2:
			call _propts, exit if done, 
			else collect what was returned.
		*/
	_pred_se "`myopts'" `0'
	if `s(done)' { exit }
	local vtyp  `s(typ)'
	local varn `s(varn)'
	local 0 `"`s(rest)'"'


		/* Step 3:
			Parse your syntax.
		*/
	syntax [if] [in] [, `myopts' ]


		/* Step 4:
			Concatenate switch options together
		*/
	local type "`n'`pr'`cooksd'`hat'`residua'`rstanda'`rstuden'`stdf'`stdf'"
	/*                               1234567  1234567  1234567 */

		/* Step 5:
			quickly process default case if you can 
			Do not forget -nooffset- option -- none for -glogit-.
		*/

	marksample touse
	if "`type'"=="" | "`type'"=="n" {
		if "`type'"=="" {
			di in gr "(option n assumed; E(cases))"
		}
		tempvar p
		quietly _predict double `p' if `touse', xb 
		local pop : word 2 of `e(depvar)'
		gen `vtyp' `varn' = (exp(`p')/(1+exp(`p')))*(`pop') if `touse'
		label var `varn' "E(cases)"
		exit
	}

	if "`type'"=="pr" {
		tempvar p
		quietly _predict double `p' if `touse', xb 
		gen `vtyp' `varn' = exp(`p')/(1+exp(`p')) if `touse'
		label var `varn' "Pr(outcome)"
		exit
	}

	error 198
end
