﻿function form_ErrorCheck(theForm, items, names) {
	var error_msg = "";

	try {
		for (var i = 0; i < items.length; i++) {
			if (!theForm[items[i]].value) {
				error_msg += names[i] + " is required.\n";
				//util_GetItem(items[i]).className = "required";
				//util_GetItem("a_" + items[i]).innerHTML = "*";
			}
			else {
				//util_GetItem(items[i]).className = "ok";
				//util_GetItem("a_" + items[i]).innerHTML = "";
			}
		}
	}
	catch (error) {
		error_msg = error.description;
	}


	if (error_msg) {
		alert("The following errors occured:\n\n" + error_msg);
		return false;
	}
	else
		return true;
}


function form_ValidateSelect(select_box, select_name) {
	if (select_box.options[select_box.selectedIndex].value == "") {
		alert("Please select a value for " + select_name);
		return false;
	}
	return true;
}

function form_LengthCheck(form_field, display_name, max_length) {
	if (form_field.value.length > max_length) {
		alert("'" + display_name + "' is too long. Max length is " + max_length + " characters (currently " + form_field.value.length + ")");
		return false;
	}

	return true;
}

function form_ValidateEmail(email_value) {
	return String(email_value).match(/[^@]+[@][^\.]+[\.][a-zA-Z]+/);
}

function util_GetItem(object_id) {
	var item;

	if (document.getElementById && document.getElementById(object_id))
		item = document.getElementById(object_id);
	else if (document.all && document.all(object_id))
		item = document.all(object_id);
	else if (document.layers && document.layers[object_id])
		item = document.layers[object_id];

	if (item == null)
		alert(object_id + " not found");
	return item;
}

function util_SetVisibility(item_id, new_vis) {
	var item;
	if (item = util_GetItem(item_id))
		util_SetObjectVisibility(item, new_vis)
	else
		alert("error: object '" + item_id + "' not found.");
}

// @param item : the object we want to set
// @param new_vis : Either hidden or visible
// @param new_display : Used to set the display mode; default is 'block'
function util_SetObjectVisibility(
		item,
		new_vis,
		new_display
	) {
	item.style.visibility = new_vis;

	if (new_vis == "hidden")
		item.style.display = "none";
	else
		item.style.display = (new_display ? new_display : "block");
}

// @param item_id : the Id of the object we want to hide.
// @param new_display : the new display mode; default is block.
function util_Show(
		item_id,
		new_display
	) {
	if (!new_display)
		util_SetVisibility(item_id, "visible");
	else {
		var item = util_GetItem(item_id);
		item.style.visibility = "visible";
		item.style.display = new_display;
	}
}
// @param item_id : the Id of the object we want to hide.
function util_Hide(item_id) {
	util_SetVisibility(item_id, "hidden");
}
