// The leading B_ in the name of this file stands for ButtonCallback

var single_bp = "no";

function bcb_action(bi)
{
	if (bi == "b_xspin")
	{
		script = "center selected;move 90 0 0 0 0 0 0 0 5 30;";
		scriptToChime(script);
	}
	else if (bi == "b_yspin")
	{
		script = "center selected;move 0 90 0 0 0 0 0 0 5 30;";
		scriptToChime(script);
	}
	else if (bi == "b_end")
	{
		script = "reset;";
		if (single_bp != "no")
			script += "zoom 400;";
		else
			script += "zoom 200;";
		script += "rotate z 90;";
		if (single_bp == "gc")
			script += "rotate y 10; rotate x 20; rotate y 90; select 9:d or 30:e;";
		else if (single_bp == "at")
			script += "rotate y 10; rotate y 90; select 10:d or 29:e;";
		else
			script += "rotate y -80;";
		script += "define current selected; center selected;";
		scriptToChime(script);
	}
	else if (bi == "b_2x")
		two_x();
	else if (bi == "b_half")
		half_x();

	else if (bi == "b_replicate")
	{
		script = s_reset + s_co4bases + "\ndelay 0.5;\n";
		script += s_replicate;
		scriptToChime(script);

		single_bp = "no";
		zoom = 200;
	}

	else if (bi == "b_codons")
	{
		script = s_reset + s_co4bases;
		script += s_codons;
		scriptToChime(script);
		single_bp = "no";
		zoom = 200;
	}

	else if (bi == "b_bases")
		scriptToChime(s_bases);

	else if (bi == "b_backbone")
		scriptToChime(s_backbone);

	else if (bi == "b_hbonds")
		scriptToChime(s_hbonds);

	else if (bi == "b_thin")
		scriptToChime(s_thin);

	else if (bi == "b_thick")
		scriptToChime(s_thick);

	else if (bi == "b_spacefill")
		scriptToChime(s_spacefill);

	else if (bi == "b_at")
	{
		scriptToChime(s_co4bases + s_at2);
		single_bp = "at";
		zoom = 400;
	}

	else if (bi == "b_gc")
	{
		scriptToChime(s_co4bases + s_gc2);
		single_bp = "gc";
		zoom = 400;
	}

	else if (bi == "b_reset") // Reset
	{
		script = s_reset + s_co4bases;
		scriptToChime(script);
		zoom = 200;
		single_bp = "no";
	}

	else if (bi == "b_ff") // fast forward
	{
		ff = !ff;
		if (ff)
			scriptToChime("set delay off; set move off;");
		else
			scriptToChime("set delay on; set move on;");
		var amsg = "You have toggled fast-forward mode ";
		amsg += (ff? "ON":"OFF");
		if (ff)
			amsg += "\nDelays will be skipped and moves will be immediate.";
		alert(amsg);
	}
}
