function validate( func ) {
	var ret = false;
	var cmd = "if ( window."+func+" ) return " + func + "();";
	if( eval("window."+func) ) {
		eval("ret = "+func+"()");
		return ret;
	}

	//alert("Function " + func + "() not found.");
	return true;
}

function cleanUpEmail( id )
{
	var o = document.getElementById("id"+id);

	var s = o.value;
	var m = s.match(/([A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]+)/i);

	if( m != null )
	{
		o.value = m[1];
	}
}

function checkSelected(id)
{
	var o = document.getElementById("id"+id);
	var error = "";

	if(!o.checked) {
		error = "The field is not checked.\n";
	}

	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function checkRadioSelection( labelid, name ) {

	var e = document.forms[0].elements;

	var error = true;
	for(var i=0; i<e.length; i++) {
		if(e[i].type == "radio" && e[i].name == name && e[i].checked) {
			error = false;
		}
	}

	var o = document.getElementById("lbl"+labelid);
	if(error)
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}

	return false;
}

function checkSelection(id) {
	var o = document.getElementById("id"+id);
	var error = "";

	if(o.selectedIndex <= 0) {
		error = "You didn't enter a number.\n";
	}

	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function checkFile(id) {
	var o = document.getElementById("id"+id);
	var error = "";

	if(o.value == "") {
		error = "You didn't choose a file.\n";
	}

	if(error != "")
	{
		//o.style.background = "#FFCC99";
		alert(error);
		return false;
	}
	else
	{
		//o.style.background = "";
		return true;
	}
}

function checkNumbers (id) {
	var o = document.getElementById("id"+id);
	strng = o.value;

	var error = "";
	if (strng == "") {
		error = "You didn't enter a number.\n";
	}

	var IsNumber=true;
	var Char;
	var ValidChars = "0123456789.";
	for (i = 0; i < strng.length; i++)
	{
		Char = strng.charAt(i);
		if (ValidChars.indexOf(Char) == -1)
		{
			IsNumber = false;
			error = "You didn't enter a number.\n";
			break;
		}
	}


	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function checkPhone (id) {
	var o = document.getElementById("id"+id);
	strng = o.value;

	var error = "";
	if (strng == "") {
		error = "You didn't enter a phone number.\n";
	}

	var IsNumber=true;
	var Char;
	var ValidChars = "0123456789+\-() ";
	for (i = 0; i < strng.length; i++)
	{
		Char = strng.charAt(i);
		if (ValidChars.indexOf(Char) == -1)
		{
			IsNumber = false;
			error = "You didn't enter a phone number.\n";
			break;
		}
	}

	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function isEmpty(id) {
	var o = document.getElementById("id"+id);

	if (o.value.length == 0) return true;

	return false;
}

function checkEmpty(id) {
	var o = document.getElementById("id"+id);
	strng = o.value;

	var error = "";
	if (strng.length == 0) {
		error = "The mandatory text area has not been filled in.\n"
	}

	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function checkUsername (id) {
	var o = document.getElementById("id"+id);
	strng = o.value;

	var error = "";
	if (strng == "") {
		error = "You didn't enter a username.\n";
	}


	var illegalChars = /\W/; // allow letters, numbers, and underscores
	if ((strng.length < 4) || (strng.length > 10)) {
		error = "The username is the wrong length.\n";
	}
	else if (illegalChars.test(strng)) {
		error = "The username contains illegal characters.\n";
	}

	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function checkSameEmail(id1,id2) {
	var o1 = document.getElementById("id"+id1);
	var o2 = document.getElementById("id"+id2);

	var o1 = document.getElementById("lbl"+id);
	var o2 = document.getElementById("lbl"+id);
	if(o1.value != o2.value)
	{
		o1.style.background = "#FFCC99";
		o2.style.background = "#FFCC99";
		return false;
	}
	else
	{
		o1.style.background = "";
		o2.style.background = "";
		return true;
	}
}

function checkEmail(id) {
	var o = document.getElementById("id"+id);
	strng = o.value;

	var error="";
	if (strng == "") {
		error = "You didn't enter an email address.\n";
	}

//	var emailFilter=/^.+@.+\..{2,3}$/;
	var emailFilter=/([A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]+)/i;
	if (!(emailFilter.test(strng))) {
		error = "Please enter a valid email address.\n";
	}
	else {
		//test email for illegal characters
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if (strng.match(illegalChars)) {
			error = "The email address contains illegal characters.\n";
		}
	}

	var o = document.getElementById("lbl"+id);
	if(error != "")
	{
		o.style.background = "#FFCC99";
		$("#id"+id).focus();
		return false;
	}
	else
	{
		o.style.background = "";
		return true;
	}
}

function checkCompare(how, id1, id2) {
	var o1 = document.getElementById("id"+id1);
	var o2 = document.getElementById("id"+id2);

	var e = eval( "\"" + o1.value + "\"" + " " + how + " " + "\"" + o2.value + "\"" );

	var o1 = document.getElementById("lbl"+id1);
	var o2 = document.getElementById("lbl"+id2);
	if(! e)
	{
		o1.style.background = "#FFCC99";
		o2.style.background = "#FFCC99";
		return false;
	}
	else
	{
		o1.style.background = "";
		o2.style.background = "";
		return true;
	}
}


function checkPassword (strng) {
	var error = "";

	if (strng == "") {
		error = "You didn't enter a password.\n";
	}

	var illegalChars = /[\W_]/; // allow only letters and numbers

	if ((strng.length < 6) || (strng.length > 8)) {
		error = "The password is the wrong length.\n";
	}
	else if (illegalChars.test(strng)) {
		error = "The password contains illegal characters.\n";
	}
	else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {
		error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.\n";
	}

	return error;
}
