//----------------------------------------------------------------------------
//  define a panel to run the different demos
//----------------------------------------------------------------------------

proc make_demopanel() {
	xpanel("Simulations of cortical cells")
	xradiobutton("Regular-spiking pyramidal cell","restart(\"demo_PY_RS\")")
	xradiobutton("Bursting pyramidal cell","restart(\"demo_PY_LTS\")")
        xradiobutton("Fast-spiking interneuronl","restart(\"demo_IN_FS\")")
	xpanel(20,100)
}

proc restart() {local i

//	if (name_declared("IN") == 2) { objref IN[1] }
//	if (name_declared("PY") == 2) { objref PY[1] }
//	if (name_declared("IN") == 2) { objref IN[1] }
//	if (name_declared("El") == 2) { objref El[1] }
	ismenu = 0

	if (electrodes_present) {
		destroy_elec()
	}

	forall delete_section()

	for i=0, n_graph_lists-1 {
		graphList[i].remove_all()
	}
	flush_list.remove_all()
	fast_flush_list.remove_all()
	doNotify()
	for (i= PWManager[0].count-1; i >= pwmcnt; i -= 1) {
		PWManager[0].close(i)
		doNotify()
	}
	stoprun = 0
	cvode_active(0)

	ismenu=0
	
	sprint(tstr, "%s.oc", $s1)
	load_file(1, tstr)
}


ismenu=0

load_file("nrngui.hoc")

strdef tstr
ncells=1
objref El[ncells]

electrodes_present=0	// after electrodes are created they must be
			// destroyed if simulation restarted

proc destroy_elec() {
	execute("objref stim, vc",El[0])
}

pwmcnt = PWManager[0].count  // the initial GUIs should not be dismissed

make_demopanel()