addOnload(loadstuff);

var ensembleTR = document.createElement("tr");
var instrumentTR = document.createElement("tr");

function loadstuff() {

	document.getElementById("contactForm").onsubmit = validForm;

// preload the Ensemble checkboxes
	var newTD, newText, newCheckbox, newLabel, newBR;
	var contactTable = document.getElementById("contactTable");

	newTD = document.createElement("td");
	newText = document.createTextNode("Ensemble");
	newTD.appendChild(newText);
	ensembleTR.appendChild(newTD);

	newTD = document.createElement("td");

	for (var i = 0; i < ensembles.length; i++) {

		// INSERTS the following: <input type = "checkbox" name = "ensemble[]" id = "orchestra_ck" value = "orchestra_email"/><label for = "orchestra_ck">Orchestra</label><br/>

		newInput = document.createElement("input");
		newInput.type = "checkbox";
		newInput.name = "ensemble[]";
		newInput.id = ensembles[i] + "_ck";
		newInput.value = ensembles[i] + "_email";
		newTD.appendChild(newInput);

		newLabel = document.createElement("label");
		newLabel.htmlFor = ensembles[i] + "_ck";
		newText = document.createTextNode(ensembleNames[i]);
		newLabel.appendChild(newText);
		newTD.appendChild(newLabel);

		newBR = document.createElement("br");
		newTD.appendChild(newBR);
	}

	ensembleTR.appendChild(newTD);

// preload the Instrument text field
	newTD = document.createElement("td");
	newText = document.createTextNode("Instrument(s) ");
	newTD.appendChild(newText);
	instrumentTR.appendChild(newTD);

	newTD = document.createElement("td");
	newInput = document.createElement("input");
	newInput.type = "text";
	newInput.name = "instrument";
	newTD.appendChild(newInput);

	instrumentTR.appendChild(newTD);


// load the extra fields
	document.getElementById("subject").onchange = loadExtra;
}


function loadExtra() {
	var contactTable = document.getElementById("contactTable");
	var subject = this.options[this.selectedIndex].value;

// If the subject is not Joining or Booking a Gig, remove the Ensemble checkboxes
	if (subject != "1" && subject != "3") { 
		if(ensembleTR.parentNode == contactTable)
			contactTable.removeChild(ensembleTR);
	}
	else {
		contactTable.appendChild(ensembleTR); 
	}

// If the subject is not Joining, remove the Instrument field
	if (subject != "1") { // Joining
		if(instrumentTR.parentNode == contactTable)
			contactTable.removeChild(instrumentTR);
	}
	else {
		contactTable.appendChild(instrumentTR); 
	}
}	

function validForm(){
	// name is filled in
	var name = document.getElementById("name");
	if (!name.value) {
		name.className += " incomplete";
		alert("Please provide your name");
		return false;
	}
	
	// email is filled in
	var email = document.getElementById("email");
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w+)+$/ 
	if (!re.test(email.value)) {
		email.className += " incomplete";
		alert("Please provide a valid e-mail address so we may contact you.");
		return false;
	}


	var subject = document.getElementById("subject");

	// a subject is chosen
	if (subject.selectedIndex == 0) {
		alert("Please tell us what you are writing about by choosing a subject from the menu.");
		return false;
	}
	
	// an ensemble is chosen
	if (subject.value == "1" || subject.value == "3") { // Joining, or booking for a gig
		j = 0;
		for (i = 0; i < ensembles.length; i++) {
			var ensemble = document.getElementById(ensembles[i]+"_ck");
			if (ensemble.checked) j++;
		}
		if (!j) {
			alert("Please choose at least one ensemble.");
			return false;
		}
	}
	

	return true;
}
	
