/**** Form Functions ****/
function FormEffects()
{
	this.form_name_id = document.getElementById("page_form");
	this.form_inputs = this.form_name_id.getElementsByTagName("INPUT");
	this.form_textareas = this.form_name_id.getElementsByTagName("TEXTAREA");
	this.form_labels = this.form_name_id.getElementsByTagName("LABEL");

	this.required_field_class = "field_required";
	this.copy_fields_class = "copy_field";
	this.check_fields_class = "check_field";
	this.check_fields_master_class = "check_master_field";
	this.clear_field_class ="field_clear";
	
	this.value_color = "#000000";
	this.required_color = "red";
	this.default_required_color = "#C0C0C0";
	
	this.required_fields = new Array();
	this.required_fields_special = new Array();
	this.submit_buttons = new Array();
	
	this.check_all_fields = new Array();
	
	
	this.RequiredFieldsInit = function()
	{
		for(var i=0; i < this.form_inputs.length; i++)
		{
			if(this.form_inputs[i].className.match(this.required_field_class))
			{
				if(this.form_inputs[i].type == "text")
				{
					this.required_fields.push(this.form_inputs[i]);
				}
				else if(this.form_inputs[i].type == "password")
				{
					this.required_fields.push(this.form_inputs[i]);
				}
				else if(this.form_inputs[i].type == "radio")
				{
					// need to check that one of the radio buttons is clicked
					// and if not, border the div they're in
				}
			}
			else if(this.form_inputs[i].type == "submit")
			{
				this.submit_buttons.push(this.form_inputs[i]);
			}
		}
		
		for(var i=0; i < this.form_textareas.length; i++)
		{
			if(this.form_textareas[i].className.match(this.required_field_class))
				this.required_fields.push(this.form_textareas[i]);
		}
	}
	
	
	this.FormSubmitInit = function()
	{
		this.form_name_id.onsubmit = this.FormSubmitValidate;
	}
		this.FormSubmitValidate = function()
		{
			var valid_form = true;
			var current_field_id;
			var focus_field;
			
			for(var i=0; i < ob_for_eff.required_fields.length; i++)
			{
				current_field_id = document.getElementById(ob_for_eff.required_fields[i].id);
				current_field_id.style.borderColor = ob_for_eff.default_required_color;
				
				current_field_id.value = current_field_id.value.replace(/^\s+|\s+$/g, '');
				
				if(current_field_id.value == "" || current_field_id.value == null)
				{
					current_field_id.style.borderColor = ob_for_eff.required_color;
					valid_form = false;
				}
			}
			
			if(valid_form === false)
			{
				document.getElementById("required_field_box").style.color = ob_for_eff.required_color;
				window.location = "#" + "required_field_box";
				return false;
			}
			else
			{
				for(var i=0; i < ob_for_eff.submit_buttons.length; i++)
				{
					document.getElementById(ob_for_eff.submit_buttons[i].id).disabled = true;
				}
			
				return true;
			}
		}
	
	return this;
}


FormEffects.prototype.CheckAllBoxesInit = function()
{
	for(var i=0; i < this.form_inputs.length; i++)
	{
		if(this.form_inputs[i].type == "checkbox")
		{
			if(this.form_inputs[i].className.match(this.check_fields_class))
				this.check_all_fields.push(this.form_inputs[i]);
			
			if(this.form_inputs[i].className.match(this.check_fields_master_class))
				this.form_inputs[i].onclick = this.CheckAllBoxes;
		}
	}
}
	FormEffects.prototype.CheckAllBoxes = function()
	{
		if(this.checked === true)
			var check_them = true;
		else
			var check_them = false;
		
		for(var i=0; i < ob_for_eff.check_all_fields.length; i++)
			ob_for_eff.check_all_fields[i].checked = check_them;
	}


FormEffects.prototype.CopyFormFieldsInit = function()
{
	for(var i=0; i < this.form_inputs.length; i++)
	{
		if(this.form_inputs[i].className.match(this.copy_fields_class))
			this.form_inputs[i].onclick = this.CopyFormFields;
	}
}
	FormEffects.prototype.CopyFormFields = function()
	{
		var holding_tank = new Array();
		
		var copy_from_split = this.id.split(".");
		var copy_from_dot = "\\." + copy_from_split[1];
		
		var copy_to = this.alt;
		var copy_to_dot = "\\." + this.alt;
		
		current_button_id = document.getElementById(this.id);
	
		if(this.alt != "new")
		{
			for(var i=0; i < ob_for_eff.form_inputs.length; i++)
			{
				if(ob_for_eff.form_inputs[i].id.match(copy_from_dot))
				{
					var field_split = ob_for_eff.form_inputs[i].id.split(".");
					
					if(document.getElementById(field_split[0] + "." + copy_to) != undefined)
					{
						var current_field_id = document.getElementById(field_split[0] + "." + copy_to);
						current_field_id.value = ob_for_eff.form_inputs[i].value;
						current_field_id.style.color = ob_for_eff.value_color;
					}
				}
			}
		}
		else
		{
			for(var i=0; i < ob_for_eff.form_inputs.length; i++)
			{
				if(ob_for_eff.form_inputs[i].id.match(copy_to_dot))
					document.getElementById(ob_for_eff.form_inputs[i].id).style.color = ob_for_eff.value_color;
			}
		}
	}


// Clears form fields with "field_clear" class
// Only works on input=text and textareas
FormEffects.prototype.ClearFormFields = function()
{
	for(var i=0; i < this.form_inputs.length; i++)
	{
		if(this.form_inputs[i].className.match(this.clear_field_class))
			document.getElementById(this.form_inputs[i].id).value = "";
	}

	for(var i=0; i < this.form_textareas.length; i++)
	{
		if(this.form_textareas[i].className.match(this.clear_field_class))
			document.getElementById(this.form_textareas[i].id).value = "";
	}
}






openPrintableNotebook = function(in_id)
{
	window_options = 'toolbar=no,location=no,resizable=yes,scrollbars=yes,menubar=no,width=550,height=400';
	new_window = window.open('/students/notebooks/print.php?nb=' + in_id, 'newWin', window_options);
}


function copy_report() {
	report1 = document.getElementById("report1");
	report2 = document.getElementById("report2");
	report3 = document.getElementById("report3");
	report4 = document.getElementById("report4");
	full_report = document.getElementById("full_report");
	
	if (report1 && report2 && report3 && report4 && full_report) {
		full_report.value = report1.value + "\n\n" + report2.value + "\n\n" + report3.value + "\n\n" + report4.value
	}
}