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

proc make_demopanel() {
	xpanel("Simulations of thalamic oscillations")
	xbutton("Spindle oscillations - short run","restart(\"Fspin\")")
	xbutton("Spindle oscillations - long run","restart(\"FspinL\")")
        xbutton("Bicuculline-induced oscillations - short run","restart(\"Fbic\")")
	xbutton("Bicuculline-induced oscillations - long run","restart(\"FbicL\")")
	xbutton("Delta oscillations - short run","restart(\"Fdelta\")")
	xbutton("Delta oscillations - long run","restart(\"FdeltaL\")")
	xpanel()
}

make_demopanel()

ismenu=0

load_file("nrngui.hoc")

strdef tstr

objref El

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

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

pwmcnt = PWManager[0].count  // the initial GUIs should not be dismissed
ismenu=0		// determines if electrode is defined

proc restart() { local i
	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)
}