/* call mlboolfirst variable */

capture program drop mlboolfirst
program define mlboolfirst
version 8
	preserve
	forvalues i = 1/100 {
	   capture drop PathProb`i'
	   }
	drop boolpred
	local path "$feed"
	foreach i of numlist 1000 0 1001 1/$n {
	   gettoken path`i' path: path, match(holder)
	   }
	local j = 0
	forvalues i = 1/$n {
		local path = subinstr(subinstr("`path`i''","(","",.),")","",.)
		while "`path'" ~= "" {
		   local j = `j' + 1
		   gettoken var`j' path : path 
		   }
        }
    forvalues i = 1/`j' {
		if ("`var`i''" ~= "`0'"){
		    capture confirm int variable `var`i''
		    if !_rc {
		       tempvar varmode
		       capture quietly egen `varmode'=mode(`var`i'')
		       capture quietly replace `var`i'' = `varmode'
               }
            else {
		       capture quietly sum `var`i''
		       capture quietly replace `var`i'' = r(mean)
		       capture quietly sum `var`i''
               }
            }
	    else {
	        capture confirm int variable `var`i''
	        if !_rc {
	           local q = `i'
	           capture quietly sum `var`q''
	           local varmin=r(min)
	           local varmax=r(max)
	           }
	        else {
		       capture quietly sum `var`i''
		       capture quietly replace `var`i'' = (r(max)-r(min))*uniform()+r(min)
		       local q = `i'
			}
		}
	}
	mlboolpred

/* v7 command:	graph boolpred `var`q'',s(.) c(s) xlabel */

    local gphtitl=e(title)
    local gphdv=e(depvar)

if "`q'"=="" {
    di in red "Variable not found in last estimation."
    exit 198
	}
capture confirm int variable `var`q''
if !_rc {
    graph twoway scatter boolpred `var`q'', title(`gphtitl') ytitle("Pr(`gphdv'=1)") ylabel(0(.2)1) xlabel(`varmin'(1)`varmax')
   }
   else {
    graph twoway mspline boolpred `var`q'', msymbol(none) title(`gphtitl') ytitle("Pr(`gphdv'=1)") ylabel(0(.2)1)
   }

	restore


end