function jsvalidate()
{	var valerror = false;
	var imgextArray = new Array(".jpg", ".jpeg", ".gif", ".png", ".bmp");
	var docextArray = new Array(".doc", ".pdf");
	//var emailreg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var emailreg = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
	
	// Remove old error boxes!
	$$('.formError').each(function(s){	s.remove(); });
	$$('input.error').each(function(s){	s.removeClassName('error'); });
	
	$$('.required').each(function(s)
	{	if( s.readonly != true && !s.value )
		{	//alert('Please enter ' + s.title);
			valerror = true;
			newAlert = new Element('div');
			newAlert.update('Please enter '+s.title);
			newAlert.addClassName('formError');
			s.addClassName('error');
			s.insert({'after':newAlert});
			s.focus();
			throw $break;
		}
	});
	if (valerror != true)
	{	$$('.email').each(function(s)
		{	if(s.value) 
			{	if( s.value.search(emailreg) != 0 )
				//if(emailreg.test(s.value) == false) 
				{	//alert('Sorry but the e-mail you have entered does not appear to be a real e-mail address. Please verify that you have entered it correctly. (Example: youremail@address.com)');
					newAlert = new Element('div');
					newAlert.update('Sorry but the e-mail you have entered does not appear to be a real e-mail address. Please verify that you have entered it correctly. (Example: youremail@address.com)');
					newAlert.addClassName('formError');
					s.addClassName('error');
					s.insert({'after':newAlert});
					valerror = true;
					s.focus();
					throw $break;
				}
			}
		});
	}
	if (valerror != true)
	{	$$('.repassword').each(function(s, x)
		{	if(s.value) 
			{	if( s.value != $$('.password')[x].value )
				{	//alert('The password you have re-entered doesn\'t match the original password.');
					newAlert = new Element('div');
					newAlert.update('The password you have re-entered doesn\'t match the original password.');
					newAlert.addClassName('formError');
					s.addClassName('error');
					s.insert({'after':newAlert});
					valerror = true;
					s.focus();
					throw $break;
				}
			}
		});
	}
	
	if (valerror != true)
	{	$$('.filetypeimg').each(function(s, x)
		{	if(s.value) 
			{	_file = s.value;
				
				allowSubmit = false;
				
				while (_file.indexOf("\\") != -1)
					_file = _file.slice(_file.indexOf("\\") + 1);
					
				ext = _file.slice(_file.indexOf(".")).toLowerCase();
				
				for (var i = 0; i < imgextArray.length; i++) {
					if (imgextArray[i] == ext) { allowSubmit = true; break; }
				}
				
				if ( !allowSubmit)
				{	newAlert = new Element('div');
					newAlert.update("Please only upload files that end in types: "
						+ (imgextArray.join("  ")) + "\n\nPlease select a new "
						+ "file to upload and submit again.");
					newAlert.addClassName('formError');
					s.addClassName('error');
					s.insert({'after':newAlert});
					valerror = true;
					s.focus();
					throw $break;
				}
			}
		});
	}
	if (valerror != true)
	{	$$('.filetypedoc').each(function(s, x)
		{	if(s.value) 
			{	_file = s.value;
				
				allowSubmit = false;
				
				while (_file.indexOf("\\") != -1)
					_file = _file.slice(_file.indexOf("\\") + 1);
					
				ext = _file.slice(_file.indexOf(".")).toLowerCase();
				
				for (var i = 0; i < docextArray.length; i++) {
					if (docextArray[i] == ext) { allowSubmit = true; break; }
				}
				
				if ( !allowSubmit)
				{	newAlert = new Element('div');
					newAlert.update("Please only upload files that end in types: "
						+ (docextArray.join("  ")) + "\n\nPlease select a new "
						+ "file to upload and submit again.");
					newAlert.addClassName('formError');
					s.addClassName('error');
					s.insert({'after':newAlert});
					valerror = true;
					s.focus();
					throw $break;
				}
			}
		});
	}
	
	if (valerror == true)
		return false;
	else
		return true;
}

