function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}

function validateContactOnSubmit()
{
	clearFormInfo();
	return((validateRequired() & validateEmail("input_email"))!=0);
}

function validateMailOnSubmit()
{
	clearFormInfo();
	return((validateRequired() & validateEmail("input_fromaddr") & validateEmail("input_toaddr"))!=0);
}

function validateCareerOnSubmit()
{
	clearFormInfo();
	return((validateRequired() & validateEmail("input_email"))!=0);
}

function validateRequired()
{
	var valid = true;
	
	var reqs = getElementsByClass(document,'required', "INPUT");
	reqs = reqs.concat(getElementsByClass(document,'required', "TEXTAREA"));
	reqs = reqs.concat(getElementsByClass(document,'required', "SELECT"));
	for (i = 0; i<reqs.length; i++) {
		
		if(trim(reqs[i].value)=='') {
			setInfo(reqs[i],"Required field");
			valid = false;
		}
	}
	return(valid)
}

function validateEmail(id)
{
	var field = document.getElementById(id)
	var reg = new RegExp(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/);
	
	if(!reg.test(field.value)){
		setInfo(field,"Not a valid email");
		return false;
	}
	return true;
}

function setInfo(field,msg)
{
	var info = document.getElementById(field.id + "_info");
	if(!info) {
		info = document.createElement("span");
		info.id = field.id + "_info";
		info.className = "forminfo";
		field.parentNode.insertBefore(info,field.nextSibling);
	}
	
	if(info.firstChild==null)
		var text = document.createTextNode(msg);
	else
		var text = document.createTextNode(", " + msg);

	info.appendChild(text);
}

function clearFormInfo()
{
	var forms = document.getElementsByTagName('form');
	for (i = 0; i<forms.length; i++) {
		var infos = getElementsByClass(forms[i],'forminfo','span');
		for (l = 0; l<infos.length; l++) {
			removeChildren(infos[l]);
		}
	}
}

function removeChildren(el)
{
	while(el.hasChildNodes()) {
		el.removeChild(el.childNodes[0]);
	}
}

/*Dustin Diaz I think */
function getElementsByClass(parent,cn,type) {
	var classList = new Array();
	var els = parent.getElementsByTagName(type);
	for (i = 0, l=els.length; i<l; i++) {
		if (cn == els[i].className) {
			classList.push(els[i]);
		}
	}
	return classList;
}