// panel_recorder_ctls.js

//----------------------------------------------------------------
function PanelRecorderCtls(o)
	{
	//------ CONTROL PANEL ------------
	this.panel = new Panel({
		id: "controls",
		title: "Controls",
		top: o.top,
		left: o.left,
		height: 120,
		width: 310,
		backgroundColor: "blue",
		backgroundImage: "url(../dome/images/backgrounds/wood2.jpg)"
	});

	this.panel.container = this;
	t = this.panel.div;
	t.isRecording = false;
	t.isPlaying = false;
	t.stage = o.stage;
	t.o = this;
	
	new Button({
		parent: this.panel.div,
		top:25,
		left:4,
		height:30,
		width:36,
		value:"<<",
		onclick:ChangeFrame,
		name: "first"
	});	

	new Button({
		parent: this.panel.div,
		top:25,
		left:44,
		height:30,
		width:36,
		value:"<",
	//	image:"../dome/images/buttons/playbut.png",
		onclick:ChangeFrame,
		name: "prev"
	});	
		this.timeReadout = new TextEdit({
		parent: this.panel.div,
		top:27,
		left:84,
		height:26,
		width:128,
		value:TickToMMSSHH(0).str,
		textAlign:"center",
		fontSize: 20,
		fontWeight: 900,
		marginTop:0,
		padding: 0
	});	

		this.panel.div.timeReadout = this.timeReadout.elem;
		
	new Button({
		parent: this.panel.div,
		top:25,
		left:222,
		height:30,
		width:36,
		value:">",
		onclick:ChangeFrame,
		name: "next"
	});	
	new Button({
		parent: this.panel.div,
		top:25,
		left:262,
		height:30,
		width:36,
		value:">>",
		onclick:ChangeFrame,
		name: "last"
	});	

	this.recordBut = new Button({
		parent: this.panel.div,
		top:60,
		left:36,
		height:25,
		width:112,
		value:"Record",
		onclick:StartStopRecording,
		name: "record"
	});	
	this.playBut = new Button({
		parent: this.panel.div,
		top:60,
		left:150,
		height:25,
		width:70,
		value:"Play",
		onclick:PlayStop,
		name: "play"
	});	
}

//-----------------------------------------------------------------------------
PanelRecorderCtls.prototype.SetReadout = function(ticks)
	{
	this.timeReadout.elem.value = TickToMMSSHH(ticks).str;
	}

//----------------------------------------------------------------
function StartStopRecording(e)
	{
	if (!e) e = window.event;
	var panel = e.target.parentNode;
	if (panel.isRecording) {
		// Stop Recording -----------------
		panel.stage.StopRecording(panel);
		e.target.value = "Record";
	}
	else {
		// Start Recording ----------------
		e.target.value = "Stop Recording";
		panel.stage.StartRecording(panel.o);
	}
	panel.isRecording = !panel.isRecording;
	}
	
//----------------------------------------------------------------
function PlayStop(e)
	{
	if (!e) e = window.event;
	var panel = e.target.parentNode;
	if (panel.isPlaying) {
		// Stop Playing
		panel.stage.StopPlaying(panel);
		e.target.value = "Play";
	}
	else {
		// Start Playing
		panel.stage.StartPlaying(panel);
		e.target.value = "Stop";
	}
	panel.isPlaying = !panel.isPlaying;
	}

//----------------------------------------------------------------
function ChangeFrame(e)
	{
	if (!e) e = window.event;
	var panel = e.target.parentNode;
	var stage = panel.stage;

	switch(e.target.name)
		{
		case "first":
			stage.GoToFirstFrame(panel);
			break;
		case "last":
			stage.GoToLastFrame(panel);
			break;
		case "prev":
			stage.GoToPrevFrame(panel);
			break;
		case "next":
			stage.GoToNextFrame(panel);
			break;
		}
	}


