function removeChildNodes(parentNode) {
	var kids = parentNode.childNodes;    // Get the list of children
    var numkids = kids.length;  // Figure out how many children there are
    for(var i = numkids-1; i >= 0; i--) {  // Loop backward through the children
        var c = parentNode.removeChild(kids[i]);    // Remove a child
    }
}

function resume(btid, expendid) {
	var buttondiv = document.getElementById(btid);
	removeChildNodes(buttondiv);
	var plusButton = document.createElement("input");
	plusButton.setAttribute("type", "button");
	plusButton.setAttribute("value", "+");
	plusButton.onclick = function () {DtMRCAplus(btid, expendid)};
	buttondiv.appendChild(plusButton);
	var div = document.getElementById(expendid);
	removeChildNodes(div);
}

function enable_field(field, value) {
	if (value) {
		field.value = value;
	}
	field.disabled = false;
//	field.value = value;
}

function disable_field(field) {
	field.value = "";
	field.disabled = true;
}

function enable_select(field) {
	field.disabled = false;
}

function disable_select(field) {
	field.disabled = true;
}

function changeOptions (datatype, id) {
	var modelSelectNode = document.getElementById(id);
	removeChildNodes(modelSelectNode);
	var modelOptions = Array ();
	if (datatype == "nt") {	// nt
		modelOptions[0] = "F81";
		modelOptions[1] = "GTR";
		modelOptions[2] = "HKY85";
		modelOptions[3] = "JC69";
		modelOptions[4] = "K80";
		modelOptions[5] = "TN93";
		
		for (var i = 0; i < 6; i++) {
			var modelOption = document.createElement("option");
			modelOption.value = modelOptions[i];
			if (modelOptions[i] == "GTR") {
				modelOption.selected = true;
			}
			modelOption.appendChild(document.createTextNode(modelOptions[i]));
			modelSelectNode.appendChild(modelOption);
		}
	}else {	// aa
		modelOptions[0] = "Blosum62";
		modelOptions[1] = "CpREV";
		modelOptions[2] = "Dayhoff";
		modelOptions[3] = "DCMut";
		modelOptions[4] = "HIVb";
		modelOptions[5] = "HIVw";
		modelOptions[6] = "JTT";
		modelOptions[7] = "LG";
		modelOptions[8] = "MtArt";
		modelOptions[9] = "MtMam";
		modelOptions[10] = "MtREV";
		modelOptions[11] = "RtREV";
		modelOptions[12] = "VT";
		modelOptions[13] = "WAG";
		for (var i = 0; i < 14; i++) {
			var modelOption = document.createElement("option");
			modelOption.value = modelOptions[i];
			if (modelOptions[i] == "LG") {
				modelOption.selected = true;
			}
			modelOption.appendChild(document.createTextNode(modelOptions[i]));
			modelSelectNode.appendChild(modelOption);
		}
	}
}

function handleFreqRadios(value, freqRadio1, freqRadio2) {
	if (value == "JC69" || value == "K80") {
		freqRadio1.disabled = true;
		freqRadio2.disabled = true;
	}else {
		freqRadio1.disabled = false;		
		freqRadio2.disabled = false;
		freqRadio2.checked = true;
	}
}

function disableTT (value, ttText, ttFixRadio, ttEstRadio) {
	if (value == "HKY85" || value == "K80" || value == "TN93") {
		ttText.value = 4;
		ttText.disabled = false;
		ttFixRadio.disabled = false;
		ttFixRadio.checked = true;
		ttEstRadio.disabled = false;
	}else {
		ttText.value = "";
		ttText.disabled = true;
		ttFixRadio.disabled = true;
		ttEstRadio.checked = true;
		ttEstRadio.disabled = true;
	}
}

function disableGamma(value, gammaText, gammaFixRadio, gammaEstRadio) {
	if (value <= 1 || value.match(/^\s*$/)) {
		gammaText.value = "";
		gammaText.disabled = true;
		gammaFixRadio.disabled = true;
		gammaEstRadio.checked = true;
		gammaEstRadio.disabled = true;
	}else {
		gammaText.value = "";
		gammaText.disabled = true;
		gammaFixRadio.disabled = false;
		gammaEstRadio.checked = true;
		gammaEstRadio.disabled = false;
	}
}

function enable_diver(help_source) {
	var diver = document.getElementById("diver");
	removeChildNodes(diver);
	var span1 = document.createElement("span");
	span1.className = "label";
	var ddLink = document.createElement("a");
	ddLink.setAttribute("href", help_source+"#diver");
	ddLink.appendChild(document.createTextNode("Calculate diversity and/or divergence based on"));
	span1.appendChild(ddLink);
	
	var span2 = document.createElement("span");
	span2.className = "formw";
	
	var innerHTML = "<input type='checkbox' name='diverFormat' value='tree'>";
	var checkbox1;
	try {
		checkbox1 = document.createElement(innerHTML);
	}catch (err) {
		checkbox1 = document.createElement("input");
		checkbox1.type = "checkbox";
		checkbox1.name = "diverFormat";
		checkbox1.value = "tree";
	}		

	innerHTML = "<input type='checkbox' name='diverFormat' value='pairwise' checked=true>";
	var checkbox2;
	try {
		checkbox2 = document.createElement(innerHTML);
	}catch (err) {
		checkbox2 = document.createElement("input");
		checkbox2.type = "checkbox";
		checkbox2.name = "diverFormat";
		checkbox2.value = "pairwise";
		checkbox2.checked = true;
	}

	span2.appendChild(checkbox1);			
	span2.appendChild(document.createTextNode("Tree"));
	span2.appendChild(checkbox2);
	span2.appendChild(document.createTextNode("Pairwise distances"));
	
	diver.appendChild(span1);
	diver.appendChild(span2);
}

function disable_diver() {
	var diver = document.getElementById("diver");
	removeChildNodes(diver);
}

function check_radio(radioId) {
	radioId.checked = true;
}

function disable_radio (radioId) {
	radioId.disabled = true;
}

function enable_radio (radioId) {
	radioId.disabled = false;
}

function popitup(url) {
	newwindow=window.open(url,'name','height=50%,width=50%');
	if (window.focus) {newwindow.focus()}
	return false;
}

function isEmail (field) {
	if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {
		return false;
	}else {
		return true;
	}
}

function checkform(form, id) {
	if (!isEmail(form.email)) {
		alert ("Please enter your email address");
		form.email.focus();
		return false;
	}
	
	if (id == 'DtMRCADD') {	
		if (!form.fileRadio[3].checked && form.seqFile.value.match(/^\s*$/)) {
			alert ("Please upload sequence file");
			form.seqFile.focus();
			return false;
		}else {
			if ( form.outgrpfileRadio[0].checked && form.outgrpFile.value.match(/^\s*$/)) {
				alert ("Please upload outgroup file");
				form.outgrpFile.focus();
				return false;
			}else if (form.grpfileRadio[0].checked && form.grpFile.value.match(/^\s*$/)) {
				alert ("Please upload group file");
				form.grpFile.focus();
				return false;
			}else if (form.bsRadio[0].checked) {
				if (!form.bsText.value.match(/^\d+$/)) {
					alert ("Please enter only the number for bootstrap replications");
					form.bsText.focus();
					return false;
				}
				if (form.bsText.value > 100) {
					alert ("The number for bootstrap replications is limited to 100");
					form.bsText.focus();
					return false;
				}				
			}else if (form.ttRadio[0].checked && !form.ttText.value.match(/^\d+$/)) {
				alert ("Please enter only the number for transition/transversion ratio");
				form.ttText.focus();
				return false;			
			}else if (form.propRadio[0].checked && !form.propText.value.match(/^\d+(\.\d+){0,1}$/)) {
				alert ("Please enter only numerical number for proportion of invariable sites");
				form.propText.focus();
				return false;				
			}else if (!form.catText.value.match(/^\d+$/) || form.catText.value <= 0) {
				alert ("Please enter only the positive integer for substitution rate categories (recommended 4 - 8)");
				form.catText.focus();
				return false;
			}else if (form.gammaRadio[0].checked && !form.gammaText.value.match(/^\d+(\.\d+){0,1}$/)) {
				alert ("Please enter only numerical number for gamma distribution parameter");
				form.gammaText.focus();
				return false;				
			}else if (form.treeFileRadio[0].checked && form.treeFile.value.match(/^\s*$/)) {
				alert ("Please upload start tree file");
				form.treeFile.focus();
				return false;				
			}else if (form.bsRadio[1].checked && !form.diverFormat[0].checked && !form.diverFormat[1].checked) {
				alert ("Please check one or both methods for calculating divergence and diversity");
				return false;
			}
		}	
	}else {
		if (!form.distRadio[2].checked && form.distFile.value.match(/^\s*$/)) {
			alert ("Please upload distant file");
			form.distFile.focus();
			return false;
		}else if (form.grpfileRadio[0].checked && form.distGrpFile.value.match(/^\s*$/)) {
			alert ("Please upload defined group file");
			form.distGrpFile.focus();
			return false;
		}
	}	
	return true;
}

function DtMRCAplus(btid, expendid, help_source) {
	var buttonIdArr = Array();
	var expendIdArr = Array();
	buttonIdArr[0] = "firstBt";
	buttonIdArr[1] = "secondBt";
	expendIdArr[0] = "DtMRCADD";
	expendIdArr[1] = "MatrixDD";
	
	for (var i = 0; i < 2; i++) {
		var buttondiv = document.getElementById(btid);
		var div = document.getElementById(expendid);
		if (btid == buttonIdArr[i]) {
			removeChildNodes(buttondiv);
			var minusButton = document.createElement("input");
			minusButton.setAttribute("type", "button");
			minusButton.setAttribute("value", "-");
			minusButton.onclick = function () {resume(btid, expendid)};
			buttondiv.appendChild(minusButton);
		}else {
			resume(buttonIdArr[i], expendIdArr[i]);
		}
	}

	var boxDiv = document.createElement("div");
	boxDiv.className = "box";
	if (btid == "secondBt") {
		var row1 = document.createElement("div");
		row1.className = "row";
		var span1 = document.createElement("span");
		var span2 = document.createElement("span");
		var span3 = document.createElement("span");
		var span4 = document.createElement("span");
		var span6 = document.createElement("span");
		span1.className = "label";
		var distLink = document.createElement("a");
		distLink.setAttribute("href", help_source+"#distance");
		distLink.appendChild(document.createTextNode("Distance file"));
		span1.appendChild(distLink);
		
		span2.className = "formw";
		var DistFile = document.createElement("input");
		DistFile.setAttribute("type", "file");
		DistFile.setAttribute("id", "distFile");
		DistFile.setAttribute("name", "distFile");
		span2.appendChild(DistFile);
		
		span3.className = "fourthcol";
		var innerHTML = "<input type='radio' name='distRadio' value='onecolumn'>";
		var DistRadio1;
		try {
			DistRadio1 = document.createElement(innerHTML);
		}catch (err) {
			DistRadio1 = document.createElement("input");
			DistRadio1.type = "radio";
			DistRadio1.name = "distRadio";
			DistRadio1.value = "onecolumn";
		}
		DistRadio1.onclick = function () {enable_field(this.form.distFile, '')};
		span3.appendChild(DistRadio1);
		span3.appendChild(document.createTextNode("Column"));

		span4.className = "thirdcol";
		innerHTML = "<input type='radio' name='distRadio' value='matrix' checked=true>";
		var DistRadio2;
		try {
			DistRadio2 = document.createElement(innerHTML);
		}catch (err) {
			DistRadio2 = document.createElement("input");
			DistRadio2.type = "radio";
			DistRadio2.name = "distRadio";
			DistRadio2.value = "matrix";
			DistRadio2.checked = true;
		}
		DistRadio2.onclick = function () {enable_field(this.form.distFile, '')};
		span4.appendChild(DistRadio2);
		span4.appendChild(document.createTextNode("Matrix")); 

		span6.className = "sixthcol";		
		innerHTML = "<input type='radio' name='distRadio' value='example'>";
		var DistRadio3;
		try {
			DistRadio3 = document.createElement(innerHTML);
		}catch (err) {
			DistRadio3 = document.createElement("input");
			DistRadio3.type = "radio";
			DistRadio3.name = "distRadio";
			DistRadio3.value = "example";
		}
		DistRadio3.onclick = function () {disable_field(this.form.distFile)};
		span6.appendChild(DistRadio3);
		var seqExampleLink = document.createElement("a");
		seqExampleLink.setAttribute("href", "/diver/examples/distFile");
		seqExampleLink.setAttribute("target", "_blank");
		seqExampleLink.appendChild(document.createTextNode("Example file"));
		span6.appendChild(seqExampleLink);

		row1.appendChild(span1);
		row1.appendChild(span2);
		row1.appendChild(span3);
		row1.appendChild(span4);
		row1.appendChild(span6);
		boxDiv.appendChild(row1);
				
// row groupfile	
		var grpFileRow = document.createElement("div");
		grpFileRow.className = "row";
		var grpSpan1 = document.createElement("span");
		grpSpan1.className = "label";
		var grpLink = document.createElement("a");
		grpLink.setAttribute("href", help_source+"#group");
		grpLink.appendChild(document.createTextNode("Group file"));
		grpSpan1.appendChild(grpLink);
		
		var grpSpan2 = document.createElement("span");
		grpSpan2.className = "formw";
		var grpFile = document.createElement("input");
		grpFile.setAttribute("type", "file");
		grpFile.setAttribute("id", "grpFile");
		grpFile.setAttribute("name", "grpFile");
		grpFile.disabled = true;
		grpSpan2.appendChild(grpFile);
		
		var grpSpan3 = document.createElement("span");
		grpSpan3.className = "fourthcol";
		var innerHTML = "<input type='radio' id='grpfileRadio1' name='grpfileRadio' value='yes'>";
		var grpfileRadio1;
		try {
			grpfileRadio1 = document.createElement(innerHTML);
		}catch (err) {
			grpfileRadio1 = document.createElement("input");
			grpfileRadio1.type = "radio";
			grpfileRadio1.id = "grpfileRadio1";
			grpfileRadio1.name = "grpfileRadio";
			grpfileRadio1.value = "yes";
		}
		grpfileRadio1.onclick = function () {enable_field(this.form.grpFile, '')};
		grpSpan3.appendChild(grpfileRadio1);
		grpSpan3.appendChild(document.createTextNode("Yes"));
		
		var grpSpan4 = document.createElement("span");
		grpSpan4.className = "thirdcol";		
		innerHTML = "<input type='radio' id='grpfileRadio2' name='grpfileRadio' value='no' checked=true>";
		var grpfileRadio2;
		try {
			grpfileRadio2 = document.createElement(innerHTML);
		}catch (err) {
			grpfileRadio2 = document.createElement("input");
			grpfileRadio2.type = "radio";
			grpfileRadio2.id = "grpfileRadio2";
			grpfileRadio2.name = "grpfileRadio";
			grpfileRadio2.value = "no";
			grpfileRadio2.checked = true;
		}
		grpfileRadio2.onclick = function () {disable_field(this.form.grpFile)};
		grpSpan4.appendChild(grpfileRadio2);
		grpSpan4.appendChild(document.createTextNode("No")); 

		var grpSpan6 = document.createElement("span");
		grpSpan6.className = "sixthcol";
		var innerHTML = "<input type='radio' id='grpfileRadio3' name='grpfileRadio' value='example'>";
		var grpfileRadio3;
		try {
			grpfileRadio3 = document.createElement(innerHTML);
		}catch (err) {
			grpfileRadio3 = document.createElement("input");
			grpfileRadio3.type = "radio";
			grpfileRadio3.id = "grpfileRadio3";
			grpfileRadio3.name = "grpfileRadio";
			grpfileRadio3.value = "example";
		}
		grpfileRadio3.onclick = function () {disable_field(this.form.grpFile)};
		grpSpan6.appendChild(grpfileRadio3);
		var grpExampleLink = document.createElement("a");
		grpExampleLink.setAttribute("href", "/diver/examples/grpFile");
		grpExampleLink.setAttribute("target", "_blank");
		grpExampleLink.appendChild(document.createTextNode("Example file"));
		grpSpan6.appendChild(grpExampleLink);
		
		grpFileRow.appendChild(grpSpan1);
		grpFileRow.appendChild(grpSpan2);
		grpFileRow.appendChild(grpSpan3);
		grpFileRow.appendChild(grpSpan4);
		grpFileRow.appendChild(grpSpan6);
		boxDiv.appendChild(grpFileRow);	
		
// email
		var row10 = document.createElement("div");
		row10.className = "row";
		var span10_1 = document.createElement("span");
		span10_1.className = "label";
		var emailLink = document.createElement("a");
		emailLink.setAttribute("href", help_source+"#email");
		emailLink.appendChild(document.createTextNode("Your email"));
		span10_1.appendChild(emailLink);
		
		var span10_2 = document.createElement("span");
		span10_2.className = "formw";
		var emailText = document.createElement("input");
		emailText.setAttribute("type", "text");
		emailText.setAttribute("id", "email");
		emailText.setAttribute("name", "email");
		span10_2.appendChild(emailText);
		
		row10.appendChild(span10_1);
		row10.appendChild(span10_2);
		
// execute button
		var row11 = document.createElement("div");
		row11.className = "row";
		row11.setAttribute("align", "center");
		var span11_1 = document.createElement("span");
		
		var submit = document.createElement("input");
		submit.setAttribute("type", "submit");
		submit.setAttribute("name", "submit");
		submit.setAttribute("value", "Submit & Email results");

		span11_1.appendChild(submit);		
		row11.appendChild(span11_1);
		
		boxDiv.appendChild(row10);
		boxDiv.appendChild(row11);
		div.appendChild(boxDiv);
	}else {
// sequence file
		var row1 = document.createElement("div");
		row1.className = "row";
		var span1 = document.createElement("span");
		var span2 = document.createElement("span");
		var span3 = document.createElement("span");
		var span4 = document.createElement("span");
		var span5 = document.createElement("span");
		var span6 = document.createElement("span");

		span1.className = "label";
		var seqLink = document.createElement("a");
		seqLink.setAttribute("href", help_source+"#sequence");
		seqLink.appendChild(document.createTextNode("Sequence alignment file"));
		span1.appendChild(seqLink);
		
		span2.className = "formw";
		var seqFile = document.createElement("input");
		seqFile.setAttribute("type", "file");
		seqFile.setAttribute("id", "seqFile");
		seqFile.setAttribute("name", "seqFile");
		span2.appendChild(seqFile);
		
		span5.className = "fifthcol";
		var innerHTML = "<input type='radio' name='fileRadio' value='fasta'>";
		var fileRadio3;
		try {
			fileRadio3 = document.createElement(innerHTML);
		}catch (err) {
			fileRadio3 = document.createElement("input");
			fileRadio3.type = "radio";
			fileRadio3.name = "fileRadio";
			fileRadio3.value = "fasta";
		}
		fileRadio3.onclick = function () {enable_field(this.form.seqFile, ''); enable_radio(this.form.dtRadio1)};
		span5.appendChild(fileRadio3);
		span5.appendChild(document.createTextNode("Fasta"));
		
		span3.className = "fourthcol";
		var innerHTML = "<input type='radio' name='fileRadio' value='phylip'>";
		var fileRadio1;
		try {
			fileRadio1 = document.createElement(innerHTML);
		}catch (err) {
			fileRadio1 = document.createElement("input");
			fileRadio1.type = "radio";
			fileRadio1.name = "fileRadio";
			fileRadio1.value = "phylip";
		}
		fileRadio1.onclick = function () {enable_field(this.form.seqFile, ''); enable_radio(this.form.dtRadio1)};
		span3.appendChild(fileRadio1);
		span3.appendChild(document.createTextNode("Phylip"));
		
		span4.className = "thirdcol";		
		innerHTML = "<input type='radio' name='fileRadio' value='nexus' checked=true>";
		var fileRadio2;
		try {
			fileRadio2 = document.createElement(innerHTML);
		}catch (err) {
			fileRadio2 = document.createElement("input");
			fileRadio2.type = "radio";
			fileRadio2.name = "fileRadio";
			fileRadio2.value = "nexus";
			fileRadio2.checked = true;
		}
		fileRadio2.onclick = function () {enable_field(this.form.seqFile, ''); enable_radio(this.form.dtRadio1)};
		span4.appendChild(fileRadio2);
		span4.appendChild(document.createTextNode("Nexus")); 
		
		span6.className = "sixthcol";		
		innerHTML = "<input type='radio' name='fileRadio' value='example'>";
		var fileRadio4;
		try {
			fileRadio4 = document.createElement(innerHTML);
		}catch (err) {
			fileRadio4 = document.createElement("input");
			fileRadio4.type = "radio";
			fileRadio4.name = "fileRadio";
			fileRadio4.value = "example";
		}
		fileRadio4.onclick = function () {disable_field(this.form.seqFile); check_radio(this.form.dtRadio2); disable_radio(this.form.dtRadio1); changeOptions('nt', 'subModel')};
		span6.appendChild(fileRadio4);
		var seqExampleLink = document.createElement("a");
		seqExampleLink.setAttribute("href", "/diver/examples/seqFile");
		seqExampleLink.setAttribute("target", "_blank");
		seqExampleLink.appendChild(document.createTextNode("Example file"));
		span6.appendChild(seqExampleLink);
				
		row1.appendChild(span1);
		row1.appendChild(span2);
		row1.appendChild(span5);
		row1.appendChild(span3);
		row1.appendChild(span4);
		row1.appendChild(span6);
		boxDiv.appendChild(row1);
		
// row data type
		var datatypeRow = document.createElement("div");
		datatypeRow.className = "row";
		var dtSpan1 = document.createElement("span");
		dtSpan1.className = "label";
		var dtLink = document.createElement("a");
		dtLink.setAttribute("href", help_source+"#datatype");
		dtLink.appendChild(document.createTextNode("Sequence data type"));
		dtSpan1.appendChild(dtLink);
		
		var dtSpan2 = document.createElement("span");
		dtSpan2.className = "fifthcol";
		dtSpan2.setAttribute("id", "hidden");
		dtSpan2.appendChild(document.createTextNode("hidden"));
		
		var dtSpan3 = document.createElement("span");
		dtSpan3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='dtRadio' id='dtRadio1' value='aa'>";
		var dtRadio1;
		try {
			dtRadio1 = document.createElement(innerHTML);
		}catch (err) {
			dtRadio1 = document.createElement("input");
			dtRadio1.type = "radio";
			dtRadio1.name = "dtRadio";
			dtRadio1.id = "dtRadio1";
			dtRadio1.value = "aa";
		}
		dtRadio1.onclick = function () {changeOptions(this.value, 'subModel'); disable_field(this.form.ttText); disable_radio(this.form.ttRadio1); disable_radio(this.form.ttRadio2)};
		dtSpan3.appendChild(dtRadio1);
		dtSpan3.appendChild(document.createTextNode("Amino-acid"));
		
		var dtSpan4 = document.createElement("span");
		dtSpan4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='dtRadio' id='dtRadio2' value='nt' checked=true>";
		var dtRadio2;
		try {
			dtRadio2 = document.createElement(innerHTML);
		}catch (err) {
			dtRadio2 = document.createElement("input");
			dtRadio2.type = "radio";
			dtRadio2.name = "dtRadio";
			dtRadio2.id = "dtRadio2";
			dtRadio2.value = "nt";
			dtRadio2.checked = true;
		}
		dtRadio2.onclick = function () {changeOptions(this.value, 'subModel')};
		dtSpan4.appendChild(dtRadio2);
		dtSpan4.appendChild(document.createTextNode("DNA")); 
		
		datatypeRow.appendChild(dtSpan1);
		datatypeRow.appendChild(dtSpan2);
		datatypeRow.appendChild(dtSpan3);
		datatypeRow.appendChild(dtSpan4);
		boxDiv.appendChild(datatypeRow);
		
// row outgroup
		var outgrpRow = document.createElement("div");
		outgrpRow.className = "row";
		var outgrpSpan1 = document.createElement("span");
		outgrpSpan1.className = "label";
		var outgrpLink = document.createElement("a");
		outgrpLink.setAttribute("href", help_source+"#outgroup");
		outgrpLink.appendChild(document.createTextNode("Outgroup file"));
		outgrpSpan1.appendChild(outgrpLink);
		
		var outgrpSpan2 = document.createElement("span");
		var outgrpFile = document.createElement("input");
		outgrpSpan2.className = "formw";
		outgrpFile.setAttribute("type", "file");
		outgrpFile.setAttribute("id", "outgrpFile");
		outgrpFile.setAttribute("name", "outgrpFile");
		outgrpFile.disabled = true;
		outgrpSpan2.appendChild(outgrpFile);
		
		var outgrpSpan5 = document.createElement("span");
		outgrpSpan5.className = "fifthcol";
		outgrpSpan5.setAttribute("id", "hidden");
		outgrpSpan5.appendChild(document.createTextNode("hidden"));
		

		var outgrpSpan3 = document.createElement("span");
		outgrpSpan3.className = "fourthcol";
		var innerHTML = "<input type='radio' id='outgrpfileRadio1' name='outgrpfileRadio' value='yes'>";
		var outgrpfileRadio1;
		try {
			outgrpfileRadio1 = document.createElement(innerHTML);
		}catch (err) {
			outgrpfileRadio1 = document.createElement("input");
			outgrpfileRadio1.type = "radio";
			outgrpfileRadio1.id = "outgrpfileRadio1";
			outgrpfileRadio1.name = "outgrpfileRadio";
			outgrpfileRadio1.value = "yes";
		}
//		outgrpfileRadio1.onclick = function () {enable_field(this.form.outgrpFile, ''); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); disable_select(this.form.aLRT); check_radio(this.form.aLRTRadio2); enable_diver(help_source)};
		outgrpfileRadio1.onclick = function () {enable_field(this.form.outgrpFile, ''); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); enable_diver(help_source)};
		outgrpSpan3.appendChild(outgrpfileRadio1);
		outgrpSpan3.appendChild(document.createTextNode("Yes"));
		
		var outgrpSpan4 = document.createElement("span");
		outgrpSpan4.className = "thirdcol";		
		innerHTML = "<input type='radio' id='outgrpfileRadio2' name='outgrpfileRadio' value='no' checked=true>";
		var outgrpfileRadio2;
		try {
			outgrpfileRadio2 = document.createElement(innerHTML);
		}catch (err) {
			outgrpfileRadio2 = document.createElement("input");
			outgrpfileRadio2.type = "radio";
			outgrpfileRadio2.id = "outgrpfileRadio2";
			outgrpfileRadio2.name = "outgrpfileRadio";
			outgrpfileRadio2.value = "no";
			outgrpfileRadio2.checked = true;
		}
		outgrpfileRadio2.onclick = function () {disable_field(this.form.outgrpFile)};
		outgrpSpan4.appendChild(outgrpfileRadio2);
		outgrpSpan4.appendChild(document.createTextNode("No")); 
		
		var outgrpSpan6 = document.createElement("span");
		outgrpSpan6.className = "sixthcol";	
		var innerHTML = "<input type='radio' id='outgrpfileRadio3' name='outgrpfileRadio' value='example'>";
		var outgrpfileRadio3;
		try {
			outgrpfileRadio3 = document.createElement(innerHTML);
		}catch (err) {
			outgrpfileRadio3 = document.createElement("input");
			outgrpfileRadio3.type = "radio";
			outgrpfileRadio3.id = "outgrpfileRadio3";
			outgrpfileRadio3.name = "outgrpfileRadio";
			outgrpfileRadio3.value = "example";
		}
//		outgrpfileRadio3.onclick = function () {disable_field(this.form.outgrpFile); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); disable_select(this.form.aLRT); check_radio(this.form.aLRTRadio2); enable_diver(help_source)};
		outgrpfileRadio3.onclick = function () {disable_field(this.form.outgrpFile); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); enable_diver(help_source)};
		outgrpSpan6.appendChild(outgrpfileRadio3);
		var outgrpExampleLink = document.createElement("a");
		outgrpExampleLink.setAttribute("href", "/diver/examples/outgrpFile");
		outgrpExampleLink.setAttribute("target", "_blank");
		outgrpExampleLink.appendChild(document.createTextNode("Example file"));
		outgrpSpan6.appendChild(outgrpExampleLink);
		
		outgrpRow.appendChild(outgrpSpan1);
		outgrpRow.appendChild(outgrpSpan2);
		outgrpRow.appendChild(outgrpSpan5);
		outgrpRow.appendChild(outgrpSpan3);
		outgrpRow.appendChild(outgrpSpan4);
		outgrpRow.appendChild(outgrpSpan6);
		boxDiv.appendChild(outgrpRow);	
		
// row groupfile
		var grpFileRow = document.createElement("div");
		grpFileRow.className = "row";
		var grpSpan1 = document.createElement("span");
		grpSpan1.className = "label";
		var grpLink = document.createElement("a");
		grpLink.setAttribute("href", help_source+"#group");
		grpLink.appendChild(document.createTextNode("Group file"));
		grpSpan1.appendChild(grpLink);
		
		var grpSpan2 = document.createElement("span");
		grpSpan2.className = "formw";
		var grpFile = document.createElement("input");
		grpFile.setAttribute("type", "file");
		grpFile.setAttribute("id", "grpFile");
		grpFile.setAttribute("name", "grpFile");
		grpFile.disabled = true;
		grpSpan2.appendChild(grpFile);
		
		var grpSpan5 = document.createElement("span");
		grpSpan5.className = "fifthcol";
		grpSpan5.setAttribute("id", "hidden");
		grpSpan5.appendChild(document.createTextNode("hidden"));

		var grpSpan3 = document.createElement("span");
		grpSpan3.className = "fourthcol";
		var innerHTML = "<input type='radio' id='grpfileRadio1' name='grpfileRadio' value='yes'>";
		var grpfileRadio1;
		try {
			grpfileRadio1 = document.createElement(innerHTML);
		}catch (err) {
			grpfileRadio1 = document.createElement("input");
			grpfileRadio1.type = "radio";
			grpfileRadio1.id = "grpfileRadio1";
			grpfileRadio1.name = "grpfileRadio";
			grpfileRadio1.value = "yes";
		}
//		grpfileRadio1.onclick = function () {enable_field(this.form.grpFile, ''); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); disable_select(this.form.aLRT); check_radio(this.form.aLRTRadio2); enable_diver(help_source)};
		grpfileRadio1.onclick = function () {enable_field(this.form.grpFile, ''); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); enable_diver(help_source)};
		grpSpan3.appendChild(grpfileRadio1);
		grpSpan3.appendChild(document.createTextNode("Yes"));
		
		var grpSpan4 = document.createElement("span");
		grpSpan4.className = "thirdcol";		
		innerHTML = "<input type='radio' id='grpfileRadio2' name='grpfileRadio' value='no' checked=true>";
		var grpfileRadio2;
		try {
			grpfileRadio2 = document.createElement(innerHTML);
		}catch (err) {
			grpfileRadio2 = document.createElement("input");
			grpfileRadio2.type = "radio";
			grpfileRadio2.id = "grpfileRadio2";
			grpfileRadio2.name = "grpfileRadio";
			grpfileRadio2.value = "no";
			grpfileRadio2.checked = true;
		}
		grpfileRadio2.onclick = function () {disable_field(this.form.grpFile)};
		grpSpan4.appendChild(grpfileRadio2);
		grpSpan4.appendChild(document.createTextNode("No")); 
		
		var grpSpan6 = document.createElement("span");
		grpSpan6.className = "sixthcol";
		var innerHTML = "<input type='radio' id='grpfileRadio3' name='grpfileRadio' value='example'>";
		var grpfileRadio3;
		try {
			grpfileRadio3 = document.createElement(innerHTML);
		}catch (err) {
			grpfileRadio3 = document.createElement("input");
			grpfileRadio3.type = "radio";
			grpfileRadio3.id = "grpfileRadio3";
			grpfileRadio3.name = "grpfileRadio";
			grpfileRadio3.value = "example";
		}
//		grpfileRadio3.onclick = function () {disable_field(this.form.grpFile); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); disable_select(this.form.aLRT); check_radio(this.form.aLRTRadio2); enable_diver(help_source)};
		grpfileRadio3.onclick = function () {disable_field(this.form.grpFile); disable_field(this.form.bsText); check_radio(this.form.bsRadio2); enable_diver(help_source)};
		grpSpan6.appendChild(grpfileRadio3);
		var grpExampleLink = document.createElement("a");
		grpExampleLink.setAttribute("href", "/diver/examples/grpFile");
		grpExampleLink.setAttribute("target", "_blank");
		grpExampleLink.appendChild(document.createTextNode("Example file"));
		grpSpan6.appendChild(grpExampleLink);
		
		grpFileRow.appendChild(grpSpan1);
		grpFileRow.appendChild(grpSpan2);
		grpFileRow.appendChild(grpSpan5);
		grpFileRow.appendChild(grpSpan3);
		grpFileRow.appendChild(grpSpan4);
		grpFileRow.appendChild(grpSpan6);
		boxDiv.appendChild(grpFileRow);	

// row of bootstrapping
		var bootstrap = document.createElement("div");
		bootstrap.className = "row";
		var bsSpan1 = document.createElement("span");
		bsSpan1.className = "label";
		var bsLink = document.createElement("a");
		bsLink.setAttribute("href", help_source+"#bootstrap");
		bsLink.appendChild(document.createTextNode("Perform Bootstrap"));
		bsSpan1.appendChild(bsLink);
		
		var bsSpan2 = document.createElement("span");
		bsSpan2.className = "formw";
		var bsText = document.createElement("input");
		bsText.type = "text";
		bsText.id = "bsText";
		bsText.name = "bsText";
		bsText.disabled = true;
		bsSpan2.appendChild(bsText);
		
		var bsSpan5 = document.createElement("span");
		bsSpan5.className = "fifthcol";
		bsSpan5.setAttribute("id", "hidden");
		bsSpan5.appendChild(document.createTextNode("hidden"));

		var bsSpan3 = document.createElement("span");
		bsSpan3.className = "fourthcol";
		var innerHTML = "<input type='radio' id='bsRadio1' name='bsRadio' value='yes'>";
		var bsRadio1;
		try {
			bsRadio1 = document.createElement(innerHTML);
		}catch (err) {
			bsRadio1 = document.createElement("input");
			bsRadio1.type = "radio";
			bsRadio1.id = "bsRadio1";
			bsRadio1.name = "bsRadio";
			bsRadio1.value = 'yes';
		}
		bsRadio1.onclick = function () {enable_field(this.form.bsText, 100); check_radio(this.form.outgrpfileRadio2); check_radio(this.form.grpfileRadio2); disable_field(this.form.outgrpFile); disable_field(this.form.grpFile); disable_diver(); check_radio(this.form.aLRTRadio2); disable_select(this.form.aLRT)};
		bsSpan3.appendChild(bsRadio1);
		bsSpan3.appendChild(document.createTextNode("Yes"));
		
		var bsSpan4 = document.createElement("span");
		bsSpan4.className = "thirdcol";		
		innerHTML = "<input type='radio' id='bsRadio2' name='bsRadio' value='no' checked=true>";
		var bsRadio2;
		try {
			bsRadio2 = document.createElement(innerHTML);
		}catch (err) {
			bsRadio2 = document.createElement("input");
			bsRadio2.type = "radio";
			bsRadio2.id = "bsRadio2";
			bsRadio2.name = "bsRadio";
			bsRadio2.value = 'no';
			bsRadio2.checked = true;
		}
		bsRadio2.onclick = function () {disable_field(this.form.bsText); enable_diver(help_source)};
		bsSpan4.appendChild(bsRadio2);
		bsSpan4.appendChild(document.createTextNode("No")); 
		
		bootstrap.appendChild(bsSpan1);
		bootstrap.appendChild(bsSpan2);
		bootstrap.appendChild(bsSpan5);
		bootstrap.appendChild(bsSpan3);
		bootstrap.appendChild(bsSpan4);
		boxDiv.appendChild(bootstrap);

// row of aLRT 
		var aLRTrow = document.createElement("div");
		aLRTrow.className = "row";
		var aLRTspan1 = document.createElement("span");
		aLRTspan1.className = "label";
		var aLRTLink = document.createElement("a");
		aLRTLink.setAttribute("href", help_source+"#aLRT");
		aLRTLink.appendChild(document.createTextNode("Compute aLRT"));
		aLRTspan1.appendChild(aLRTLink);
		
		var aLRTspan2 = document.createElement("span");
		aLRTspan2.className = "formw";
		var select = document.createElement("select");
		select.name = "aLRT";
		select.id = "aLRT";
		select.disabled = true;

		var aLRTOptions = Array ();
		aLRTOptions[0] = "aLRT statistics";
		aLRTOptions[1] = "Chi2-based";
		aLRTOptions[2] = "SH-like";
		for (var i = 0; i < 3; i++) {
			var aLRTOption = document.createElement("option");			
			if (aLRTOptions[i] == "aLRT statistics") {				
				aLRTOption.value = -1;
			}else if (aLRTOptions[i] == "Chi2-based") {
				aLRTOption.value = -2;
			}else if (aLRTOptions[i] == "SH-like") {
				aLRTOption.selected = true;
				aLRTOption.value = -4;
			}
			aLRTOption.appendChild(document.createTextNode(aLRTOptions[i]));
			select.appendChild(aLRTOption);
		}
		
		var aLRTspan3 = document.createElement("span");
		aLRTspan3.className = "fifthcol";
		aLRTspan3.setAttribute("id", "hidden");
		aLRTspan3.appendChild(document.createTextNode("hidden"));

		var aLRTspan4 = document.createElement("span");
		aLRTspan4.className = "fourthcol";
		var innerHTML = "<input type='radio' id='aLRTRadio1' name='aLRTRadio' value='yes'>";
		var aLRTRadio1;
		try {
			aLRTRadio1 = document.createElement(innerHTML);
		}catch (err) {
			aLRTRadio1 = document.createElement("input");
			aLRTRadio1.type = "radio";
			aLRTRadio1.id = "aLRTRadio1";
			aLRTRadio1.name = "aLRTRadio";
			aLRTRadio1.value = 'yes';
		}
//		aLRTRadio1.onclick = function () {enable_select(this.form.aLRT); check_radio(this.form.outgrpfileRadio2); check_radio(this.form.grpfileRadio2); disable_field(this.form.outgrpFile); disable_field(this.form.grpFile); check_radio(this.form.bsRadio2); disable_field(this.form.bsText); enable_diver(help_source)};
		aLRTRadio1.onclick = function () {enable_select(this.form.aLRT); check_radio(this.form.bsRadio2); disable_field(this.form.bsText); enable_diver(help_source)};
		aLRTspan4.appendChild(aLRTRadio1);
		aLRTspan4.appendChild(document.createTextNode("Yes"));
		
		var aLRTspan5 = document.createElement("span");
		aLRTspan5.className = "thirdcol";		
		innerHTML = "<input type='radio' id='aLRTRadio2' name='aLRTRadio' value='no' checked=true>";
		var aLRTRadio2;
		try {
			aLRTRadio2 = document.createElement(innerHTML);
		}catch (err) {
			aLRTRadio2 = document.createElement("input");
			aLRTRadio2.type = "radio";
			aLRTRadio2.id = "aLRTRadio2";
			aLRTRadio2.name = "aLRTRadio";
			aLRTRadio2.value = 'no';
			aLRTRadio2.checked = true;
		}
		aLRTRadio2.onclick = function () {disable_select(this.form.aLRT)};
		aLRTspan5.appendChild(aLRTRadio2);
		aLRTspan5.appendChild(document.createTextNode("No")); 

		aLRTspan2.appendChild(select);
		aLRTrow.appendChild(aLRTspan1);
		aLRTrow.appendChild(aLRTspan2);
		aLRTrow.appendChild(aLRTspan3);
		aLRTrow.appendChild(aLRTspan4);
		aLRTrow.appendChild(aLRTspan5);
		boxDiv.appendChild(aLRTrow);
		
// substitution model
		var row2 = document.createElement("div");
		row2.className = "row";
		var span2_1 = document.createElement("span");
		span2_1.className = "label";
		var modelLink = document.createElement("a");
		modelLink.setAttribute("href", help_source+"#model");
		modelLink.appendChild(document.createTextNode("Substitution model"));
		span2_1.appendChild(modelLink);
		
		var span2_2 = document.createElement("span");
		span2_2.className = "formw";
		var select = document.createElement("select");
		select.name = "subModel";
		select.id = "subModel";		
		select.onchange = function() {disableTT(this.value, this.form.ttText, this.form.ttRadio1, this.form.ttRadio2); handleFreqRadios(this.value, this.form.freqRadio1, this.form.freqRadio2)};
	
		var modelOptions = Array ();
		modelOptions[0] = "F81";
		modelOptions[1] = "GTR";
		modelOptions[2] = "HKY85";
		modelOptions[3] = "JC69";
		modelOptions[4] = "K80";
		modelOptions[5] = "TN93";
		for (var i = 0; i < 6; i++) {
			var modelOption = document.createElement("option");
			modelOption.value = modelOptions[i];
			if (modelOptions[i] == "GTR") {
				modelOption.selected = true;
			}
			modelOption.appendChild(document.createTextNode(modelOptions[i]));
			select.appendChild(modelOption);
		}

		span2_2.appendChild(select);
		row2.appendChild(span2_1);
		row2.appendChild(span2_2);
		boxDiv.appendChild(row2);
		
// row Equilibrium frequencies
		var freqRow = document.createElement("div");
		freqRow.className = "row";
		var freqSpan1 = document.createElement("span");
		freqSpan1.className = "label";
		var freqLink = document.createElement("a");
		freqLink.setAttribute("href", help_source+"#frequency");
		freqLink.appendChild(document.createTextNode("Equilibrium frequencies"));
		freqSpan1.appendChild(freqLink);
		
		var freqSpan2 = document.createElement("span");
		freqSpan2.className = "fifthcol";
		freqSpan2.setAttribute("id", "hidden");
		freqSpan2.appendChild(document.createTextNode("hidden"));
		
		var freqSpan3 = document.createElement("span");
		freqSpan3.className = "fourthcol";
		
		innerHTML = "<input type='radio' id='freqRadio1' name='freqRadio' value='e'>";
		var freqRadio1;
		try {
			freqRadio1 = document.createElement(innerHTML);
		}catch (err) {
			freqRadio1 = document.createElement("input");
			freqRadio1.type = "radio";
			freqRadio1.id = "freqRadio1";
			freqRadio1.name = "freqRadio";
			freqRadio1.value = "e";
		}

		freqSpan3.appendChild(freqRadio1);
		freqSpan3.appendChild(document.createTextNode("Empirical"));
		
		var freqSpan4 = document.createElement("span");
		freqSpan4.className = "thirdcol";
		
		innerHTML = "<input type='radio' id='freqRadio2' name='freqRadio' value='m' checked=true>";
		var freqRadio2;
		try {
			freqRadio2 = document.createElement(innerHTML);
		}catch (err) {
			freqRadio2 = document.createElement("input");
			freqRadio2.type = "radio";
			freqRadio2.id = "freqRadio2";
			freqRadio2.name = "freqRadio";
			freqRadio2.value = "m";
			freqRadio2.checked = true;
		}

		freqSpan4.appendChild(freqRadio2);
		freqSpan4.appendChild(document.createTextNode("Optimized")); 
		
		freqRow.appendChild(freqSpan1);
		freqRow.appendChild(freqSpan2);
		freqRow.appendChild(freqSpan3);
		freqRow.appendChild(freqSpan4);
		boxDiv.appendChild(freqRow);
		
// transition / transversion ratio
		var row3 = document.createElement("div");
		row3.className = "row";
		var span3_1 = document.createElement("span");
		span3_1.className = "label";
		var ttLink = document.createElement("a");
		ttLink.setAttribute("href", help_source+"#ttratio");
		ttLink.appendChild(document.createTextNode("Transition/transversion ratio"));
		span3_1.appendChild(ttLink);
		
		var span3_2 = document.createElement("span");
		span3_2.className = "formw";
		var ttText = document.createElement("input");
		ttText.setAttribute("type", "text");
		ttText.setAttribute("name", "ttText");
		ttText.setAttribute("id", "ttText");
		//ttText.setAttribute("value", 4);
		ttText.setAttribute("disabled", true);
		span3_2.appendChild(ttText);
		
		var span3_5 = document.createElement("span");
		span3_5.className = "fifthcol";
		span3_5.setAttribute("id", "hidden");
		span3_5.appendChild(document.createTextNode("hidden"));
		
		var span3_3 = document.createElement("span");
		span3_3.className = "fourthcol";
	
		innerHTML = "<input type='radio' name='ttRadio' id='ttRadio1' value='fixed' disabled=true>";
		var ttRadio1;
		try {
			ttRadio1 = document.createElement(innerHTML);
		}catch (err) {
			ttRadio1 = document.createElement("input");
			ttRadio1.type = "radio";
			ttRadio1.name = "ttRadio";
			ttRadio1.id = "ttRadio1";
			ttRadio1.value = "f";
			ttRadio1.disabled = true;
		}
		ttRadio1.onclick = function () {enable_field(this.form.ttText, 4)};
		span3_3.appendChild(ttRadio1);
		span3_3.appendChild(document.createTextNode("Fixed"));
		
		var span3_4 = document.createElement("span");
		span3_4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='ttRadio' id='ttRadio2' value='estimated' checked=true>";
		var ttRadio2;
		try {
			ttRadio2 = document.createElement(innerHTML);
		}catch (err) {
			ttRadio2 = document.createElement("input");
			ttRadio2.type = "radio";
			ttRadio2.name = "ttRadio";
			ttRadio2.id = "ttRadio2";
			ttRadio2.value = "e";
			ttRadio2.checked = true;
			ttRadio2.disabled = true;
		}
		ttRadio2.onclick = function () {disable_field(this.form.ttText)};
		span3_4.appendChild(ttRadio2);
		span3_4.appendChild(document.createTextNode("Estimated")); 
		
		row3.appendChild(span3_1);
		row3.appendChild(span3_2);
		row3.appendChild(span3_5);
		row3.appendChild(span3_3);
		row3.appendChild(span3_4);
		boxDiv.appendChild(row3);
		
// proportion of invariable sites
		var row4 = document.createElement("div");
		row4.className = "row";
		var span4_1 = document.createElement("span");
		span4_1.className = "label";
		var proportionLink = document.createElement("a");
		proportionLink.setAttribute("href", help_source+"#proportion");
		proportionLink.appendChild(document.createTextNode("Proportion of invariable sites"));
		span4_1.appendChild(proportionLink);
		
		var span4_2 = document.createElement("span");
		span4_2.className = "formw";
		span4_2.setAttribute("id", "propSpan");
		var propText = document.createElement("input");
		propText.setAttribute("type", "text");
		propText.setAttribute("name", "propText");
		propText.setAttribute("id", "propText");
		propText.setAttribute("disabled", true);
		span4_2.appendChild(propText);
		
		var span4_5 = document.createElement("span");
		span4_5.className = "fifthcol";
		span4_5.setAttribute("id", "hidden");
		span4_5.appendChild(document.createTextNode("hidden"));
		
		var span4_3 = document.createElement("span");
		span4_3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='propRadio' value='fixed'>";
		var propRadio1;
		try {
			propRadio1 = document.createElement(innerHTML);
		}catch (err) {
			propRadio1 = document.createElement("input");
			propRadio1.type = "radio";
			propRadio1.name = "propRadio";
			propRadio1.value = "fixed";
		}
		propRadio1.onclick = function () {enable_field(this.form.propText, '')};
		span4_3.appendChild(propRadio1);
		span4_3.appendChild(document.createTextNode("Fixed"));
		
		var span4_4 = document.createElement("span");
		span4_4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='propRadio' value='estimated' checked=true>";
		var propRadio2;
		try {
			propRadio2 = document.createElement(innerHTML);
		}catch (err) {
			propRadio2 = document.createElement("input");
			propRadio2.type = "radio";
			propRadio2.name = "propRadio";
			propRadio2.value = "estimated";
			propRadio2.checked = true;
		}
		propRadio2.onclick = function () {disable_field(this.form.propText)};
		span4_4.appendChild(propRadio2);
		span4_4.appendChild(document.createTextNode("Estimated")); 
		
		row4.appendChild(span4_1);
		row4.appendChild(span4_2);
		row4.appendChild(span4_5);
		row4.appendChild(span4_3);
		row4.appendChild(span4_4);
		boxDiv.appendChild(row4);
		
// number of substitution rate categories
		var row5 = document.createElement("div");
		row5.className = "row";
		var span5_1 = document.createElement("span");
		span5_1.className = "label";
		var catLink = document.createElement("a");
		catLink.setAttribute("href", help_source+"#categories");
		catLink.appendChild(document.createTextNode("Number of substitution rate categories"));
		span5_1.appendChild(catLink);
		
		var span5_2 = document.createElement("span");
		span5_2.className = "formw";
		var catText = document.createElement("input");
		catText.setAttribute("type", "text");
		catText.setAttribute("name", "catText");
		catText.setAttribute("value", 4);
		catText.onchange = function() {disableGamma(this.value, this.form.gammaText, this.form.gammaRadio1, this.form.gammaRadio2)};
		span5_2.appendChild(catText);
		
		row5.appendChild(span5_1);
		row5.appendChild(span5_2);
		boxDiv.appendChild(row5);
		
// gamma parameter
		var row6 = document.createElement("div");
		row6.className = "row";
		var span6_1 = document.createElement("span");
		span6_1.className = "label";
		var gammaLink = document.createElement("a");
		gammaLink.setAttribute("href", help_source+"#gamma");
		gammaLink.appendChild(document.createTextNode("Gamma distribution parameter"));
		span6_1.appendChild(gammaLink);
		
		var span6_2 = document.createElement("span");
		span6_2.className = "formw";
		span6_2.setAttribute("id", "gammaSpan");
		var gammaText = document.createElement("input");
		gammaText.setAttribute("type", "text");
		gammaText.setAttribute("name", "gammaText");
		gammaText.setAttribute("id", "gammaText");
		gammaText.setAttribute("disabled", true);
		span6_2.appendChild(gammaText);
		
		var span6_5 = document.createElement("span");
		span6_5.className = "fifthcol";
		span6_5.setAttribute("id", "hidden");
		span6_5.appendChild(document.createTextNode("hidden"));
		
		var span6_3 = document.createElement("span");
		span6_3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='gammaRadio' id='gammaRadio1' value='fixed'>";
		var gammaRadio1;
		try {
			gammaRadio1 = document.createElement(innerHTML);
		}catch (err) {
			gammaRadio1 = document.createElement("input");
			gammaRadio1.type = "radio";
			gammaRadio1.name = "gammaRadio";
			gammaRadio1.id = "gammaRadio1";
			gammaRadio1.value = "fixed";
		}
		gammaRadio1.onclick = function () {enable_field(this.form.gammaText, '')};
		span6_3.appendChild(gammaRadio1);
		span6_3.appendChild(document.createTextNode("Fixed"));
		
		var span6_4 = document.createElement("span");
		span6_4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='gammaRadio' id='gammaRadio2' value='estimated' checked=true>";
		var gammaRadio2;
		try {
			gammaRadio2 = document.createElement(innerHTML);
		}catch (err) {
			gammaRadio2 = document.createElement("input");
			gammaRadio2.type = "radio";
			gammaRadio2.name = "gammaRadio";
			gammaRadio2.id = "gammaRadio2";
			gammaRadio2.value = "estimated";
			gammaRadio2.checked = true;
		}
		gammaRadio2.onclick = function () {disable_field(this.form.gammaText)};
		span6_4.appendChild(gammaRadio2);
		span6_4.appendChild(document.createTextNode("Estimated")); 
		
		row6.appendChild(span6_1);
		row6.appendChild(span6_2);
		row6.appendChild(span6_5);
		row6.appendChild(span6_3);
		row6.appendChild(span6_4);
		boxDiv.appendChild(row6);

// row of tree improvement
		var tiRow = document.createElement("div");
		tiRow.className = "row";
		var tiSpan1 = document.createElement("span");
		tiSpan1.className = "label";
		var tiLink = document.createElement("a");
		tiLink.setAttribute("href", help_source+"#treeImprovType");
		tiLink.appendChild(document.createTextNode("Type of tree improvement"));
		tiSpan1.appendChild(tiLink);
		
		var tiSpan2 = document.createElement("span");
		tiSpan2.className = "formw";
		var select = document.createElement("select");
		select.name = "treeImprovType";
		select.id = "treeImprovType";
		
		var tiOptions = Array ();
		tiOptions[0] = "NNI";
		tiOptions[1] = "SPR";
		tiOptions[2] = "Best of NNI & SPR";
		for (var i = 0; i < 3; i++) {
			var tiOption = document.createElement("option");
			if (tiOptions[i] == "Best of NNI & SPR") {
				tiOption.value = "BEST";
			}else {
				tiOption.value = tiOptions[i];
			}			
			if (tiOptions[i] == "NNI") {
				tiOption.selected = true;
			}
			tiOption.appendChild(document.createTextNode(tiOptions[i]));
			select.appendChild(tiOption);
		}

		tiSpan2.appendChild(select);
		tiRow.appendChild(tiSpan1);
		tiRow.appendChild(tiSpan2);
		boxDiv.appendChild(tiRow);

		
// start tree
/*		var row7 = document.createElement("div");
		row7.className = "row";
		var span7_1 = document.createElement("span");
		span7_1.className = "label";
		var starttreeLink = document.createElement("a");
		starttreeLink.setAttribute("href", help_source+"#starttree");
		starttreeLink.appendChild(document.createTextNode("Start tree(s)"));
		span7_1.appendChild(starttreeLink);
		
		var span7_2 = document.createElement("span");
		span7_2.className = "formw";
		span7_2.setAttribute("id", "fileSpan");
		var treeFile = document.createElement("input");
		treeFile.setAttribute("type", "file");
		treeFile.setAttribute("name", "treeFile");
		treeFile.setAttribute("id", "treeFile");
		treeFile.setAttribute("disabled", true);
		span7_2.appendChild(treeFile);
		
		var span7_5 = document.createElement("span");
		span7_5.className = "fifthcol";
		span7_5.setAttribute("id", "hidden");
		span7_5.appendChild(document.createTextNode("hidden"));
		
		var span7_3 = document.createElement("span");
		span7_3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='treeFileRadio' value='file' disabled=true>";
		var treeFileRadio1;
		try {
			treeFileRadio1 = document.createElement(innerHTML);
		}catch (err) {
			treeFileRadio1 = document.createElement("input");
			treeFileRadio1.type = "radio";
			treeFileRadio1.name = "treeFileRadio";
			treeFileRadio1.value = "file";
			treeFileRadio1.disabled = true;
		}
	
		treeFileRadio1.onclick = function () {enable_field(this.form.treeFile, '')};
		span7_3.appendChild(treeFileRadio1);
		span7_3.appendChild(document.createTextNode("File"));
		
		var span7_4 = document.createElement("span");
		span7_4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='treeFileRadio' value='bionj' checked=true>";
		var treeFileRadio2;
		try {
			treeFileRadio2 = document.createElement(innerHTML);
		}catch (err) {
			treeFileRadio2 = document.createElement("input");
			treeFileRadio2.type = "radio";
			treeFileRadio2.name = "treeFileRadio";
			treeFileRadio2.value = "bionj";
			treeFileRadio2.checked = true;
		}

		treeFileRadio2.onclick = function () {disable_field(this.form.treeFile)};
		span7_4.appendChild(treeFileRadio2);
		span7_4.appendChild(document.createTextNode("BIONJ")); 
		
		row7.appendChild(span7_1);
		row7.appendChild(span7_2);
		row7.appendChild(span7_5);
		row7.appendChild(span7_3);
		row7.appendChild(span7_4);
		boxDiv.appendChild(row7);
*/		
// optimise topology
		var row8 = document.createElement("div");
		row8.className = "row";
		var span8_1 = document.createElement("span");
		span8_1.className = "label";
		var topLink = document.createElement("a");
		topLink.setAttribute("href", help_source+"#optimise");
		topLink.appendChild(document.createTextNode("Optimise tree topology"));
		span8_1.appendChild(topLink);
		
		var span8_2 = document.createElement("span");
		span8_2.className = "fifthcol";
		span8_2.setAttribute("id", "hidden");
		span8_2.appendChild(document.createTextNode("hidden"));
		
		var span8_3 = document.createElement("span");
		span8_3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='optRadio' id='optRadio1' value=''>";
		var optRadio1;
		try {
			optRadio1 = document.createElement(innerHTML);
		}catch (err) {
			optRadio1 = document.createElement("input");
			optRadio1.type = "radio";
			optRadio1.name = "optRadio";
			optRadio1.id = "optRadio1";
			optRadio1.value = "";			
		}
		optRadio1.onclick = function() {disable_select(this.form.treeImprovType)};
		span8_3.appendChild(optRadio1);
		span8_3.appendChild(document.createTextNode("No"));
		
		var span8_4 = document.createElement("span");
		span8_4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='optRadio'  id='optRadio2' value='t' checked=true>";
		var optRadio2;
		try {
			optRadio2 = document.createElement(innerHTML);
		}catch (err) {
			optRadio2 = document.createElement("input");
			optRadio2.type = "radio";
			optRadio2.name = "optRadio";
			optRadio2.id = "optRadio2";
			optRadio2.value = "t";
			optRadio2.checked = true;
		}
		optRadio2.onclick = function() {check_radio(this.form.oblRadio2); enable_select(this.form.treeImprovType)};
		span8_4.appendChild(optRadio2);
		span8_4.appendChild(document.createTextNode("Yes")); 
		
		row8.appendChild(span8_1);
		row8.appendChild(span8_2);
		row8.appendChild(span8_3);
		row8.appendChild(span8_4);
		boxDiv.appendChild(row8);
		
// optimise branch length and rate parameters
		var row9 = document.createElement("div");
		row9.className = "row";
		var span9_1 = document.createElement("span");
		span9_1.className = "label";
		var blLink = document.createElement("a");
		blLink.setAttribute("href", help_source+"#optimise");
		blLink.appendChild(document.createTextNode("Optimise branch lengths"));
		span9_1.appendChild(blLink);
		
		var span9_2 = document.createElement("span");
		span9_2.className = "fifthcol";
		span9_2.setAttribute("id", "hidden");
		span9_2.appendChild(document.createTextNode("hidden"));
		
		var span9_3 = document.createElement("span");
		span9_3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='oblRadio' id='oblRadio1' value=''>";
		var oblRadio1;
		try {
			oblRadio1 = document.createElement(innerHTML);
		}catch (err) {
			oblRadio1 = document.createElement("input");
			oblRadio1.type = "radio";
			oblRadio1.name = "oblRadio";
			oblRadio1.id = "oblRadio1";
			oblRadio1.value = "";
		}
		oblRadio1.onclick = function() {check_radio(this.form.optRadio1); disable_select(this.form.treeImprovType)};
		span9_3.appendChild(oblRadio1);
		span9_3.appendChild(document.createTextNode("No"));
		
		var span9_4 = document.createElement("span");
		span9_4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='oblRadio' id='oblRadio2' value='l' checked=true>";
		var oblRadio2;
		try {
			oblRadio2 = document.createElement(innerHTML);
		}catch (err) {
			oblRadio2 = document.createElement("input");
			oblRadio2.type = "radio";
			oblRadio2.name = "oblRadio";
			oblRadio2.id = "oblRadio2";
			oblRadio2.value = "l";
			oblRadio2.checked = true;
		}

		span9_4.appendChild(oblRadio2);
		span9_4.appendChild(document.createTextNode("Yes")); 
		
		row9.appendChild(span9_1);
		row9.appendChild(span9_2);
		row9.appendChild(span9_3);
		row9.appendChild(span9_4);
		boxDiv.appendChild(row9);
		
// optimise substitution rate parameters
		var rRow = document.createElement("div");
		rRow.className = "row";
		var rSpan1 = document.createElement("span");
		rSpan1.className = "label";
		var rLink = document.createElement("a");
		rLink.setAttribute("href", help_source+"#optimise");
		rLink.appendChild(document.createTextNode("Optimise substitution rate parameters"));
		rSpan1.appendChild(rLink);
		
		var rSpan2 = document.createElement("span");
		rSpan2.className = "fifthcol";
		rSpan2.setAttribute("id", "hidden");
		rSpan2.appendChild(document.createTextNode("hidden"));
		
		var rSpan3 = document.createElement("span");
		rSpan3.className = "fourthcol";
		
		innerHTML = "<input type='radio' name='rRadio' id='rRadio1' value=''>";
		var rRadio1;
		try {
			rRadio1 = document.createElement(innerHTML);
		}catch (err) {
			rRadio1 = document.createElement("input");
			rRadio1.type = "radio";
			rRadio1.name = "rRadio";
			rRadio1.id = "rRadio1";
			rRadio1.value = "";
		}

		rSpan3.appendChild(rRadio1);
		rSpan3.appendChild(document.createTextNode("No"));
		
		var rSpan4 = document.createElement("span");
		rSpan4.className = "thirdcol";
		
		innerHTML = "<input type='radio' name='rRadio' id='rRadio2' value='r' checked=true>";
		var rRadio2;
		try {
			rRadio2 = document.createElement(innerHTML);
		}catch (err) {
			rRadio2 = document.createElement("input");
			rRadio2.type = "radio";
			rRadio2.name = "rRadio";
			rRadio2.id = "rRadio2";
			rRadio2.value = "r";
			rRadio2.checked = true;
		}

		rSpan4.appendChild(rRadio2);
		rSpan4.appendChild(document.createTextNode("Yes")); 
		
		rRow.appendChild(rSpan1);
		rRow.appendChild(rSpan2);
		rRow.appendChild(rSpan3);
		rRow.appendChild(rSpan4);
		boxDiv.appendChild(rRow);
		
// email
		var row10 = document.createElement("div");
		row10.className = "row";
		var span10_1 = document.createElement("span");
		span10_1.className = "label";
		var emailLink = document.createElement("a");
		emailLink.setAttribute("href", help_source+"#email");
		emailLink.appendChild(document.createTextNode("Your email"));
		span10_1.appendChild(emailLink);
//		span10_1.appendChild(document.createTextNode("Your email"));
		
		var span10_2 = document.createElement("span");
		span10_2.className = "formw";
		var emailText = document.createElement("input");
		emailText.setAttribute("type", "text");
		emailText.setAttribute("id", "email");
		emailText.setAttribute("name", "email");
		span10_2.appendChild(emailText);
		
		row10.appendChild(span10_1);
		row10.appendChild(span10_2);
		boxDiv.appendChild(row10);

// divergence and diversity row		
		var diverrow = document.createElement("div");
		diverrow.id = "diver";
		diverrow.className = "row";
		
		var span1 = document.createElement("span");
		span1.className = "label";
		var ddLink = document.createElement("a");
		ddLink.setAttribute("href", help_source+"#diver");
		ddLink.appendChild(document.createTextNode("Calculate diversity and/or divergence based on"));
		span1.appendChild(ddLink);
//		span1.appendChild(document.createTextNode("Calculate diversity and/or divergence based on"));
		
		var span2 = document.createElement("span");
		span2.className = "formw";
		
		var innerHTML = "<input type='checkbox' name='diverFormat' value='tree'>";
		var checkbox1;
		try {
			checkbox1 = document.createElement(innerHTML);
		}catch (err) {
			checkbox1 = document.createElement("input");
			checkbox1.type = "checkbox";
			checkbox1.name = "diverFormat";
			checkbox1.value = "tree";
		}		
	
		innerHTML = "<input type='checkbox' name='diverFormat' value='pairwise' checked=true>";
		var checkbox2;
		try {
			checkbox2 = document.createElement(innerHTML);
		}catch (err) {
			checkbox2 = document.createElement("input");
			checkbox2.type = "checkbox";
			checkbox2.name = "diverFormat";
			checkbox2.value = "pairwise";
			checkbox2.checked = true;
		}
	
		span2.appendChild(checkbox1);			
		span2.appendChild(document.createTextNode("Tree"));
		span2.appendChild(checkbox2);
		span2.appendChild(document.createTextNode("Pairwise distances"));
		
		diverrow.appendChild(span1);
		diverrow.appendChild(span2);
		
		boxDiv.appendChild(diverrow);

// execute button
		var row11 = document.createElement("div");
		row11.className = "row";
		row11.setAttribute("align", "center");
		var span11_1 = document.createElement("span");
		
		var submit = document.createElement("input");
		submit.setAttribute("type", "submit");
		submit.setAttribute("name", "submit");
		submit.setAttribute("value", "Submit & Email results");

		span11_1.appendChild(submit);		
		row11.appendChild(span11_1);		
		boxDiv.appendChild(row11);
		div.appendChild(boxDiv);
	}	
}
