//Function to set a field as required and not correctly completed
function setReqField(sFieldID)	{
	document.getElementById(sFieldID).style.backgroundColor='#C00';
	document.getElementById(sFieldID).style.color='#FFF';
	document.getElementById(sFieldID).focus();
	}
//Function to reset form field back to it's original state from being in error
function resetField(sFieldID)	{
	document.getElementById(sFieldID).style.backgroundColor='#FFF';
	document.getElementById(sFieldID).style.color='#000';
}

//Email Validation
//bFormSubmit is an optional boolean which indicates whether we hit the function from a form submission (the 
//default) or from an onChange event on an email address field.
function validEmail(sEmail,bFormSubmit) {
	if (typeof bFormSubmit == 'undefined')	{
		var bFormSubmit = true;
	}
	//var re = /[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/;
	var re = new RegExp("^[a-z0-9][a-z0-9_\.-]{0,}[a-z0-9]@[a-z0-9][a-z0-9_\.-]{0,}[a-z0-9][\.][a-z0-9]{2,4}$");
	//test the supplied email address
	if(!re.test(sEmail)) {
		if(bFormSubmit)	{		
			return false;
		}
		else	{
			alert('Please enter a valid email address.');
			setReqField('emailAddr');
			return false;
		}
	}
	return true;
}

//Func for determining empty values
function isBlank(s) {
	for (i=0;i<s.length;i++ ) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
	}
	return true;
}


function validForm()	{
	
	if (isBlank(document.getElementById('contName').value))
	{
		alert('Please provide your name.');
		setReqField('contName');
		return false;
	}
	if (isBlank(document.getElementById('telNo').value) && isBlank(document.getElementById('emailAddr').value))
	{
		alert('Please provide either a contact telephone number or an email address. \r\n Otherwise we won\'t be able to contact you.');
		setReqField('telNo');
		return false;
	}

	if (!isBlank(document.getElementById('emailAddr').value) && !validEmail(document.getElementById('emailAddr').value))
	{
		alert('The email address you\'ve supplied appears to not be in the correct format.');
		document.getElementById('emailAddr').value = '';
		setReqField('emailAddr');
		return false;
	}
	if (isBlank(document.getElementById('msg').value))
	{
		alert('Please provide a message.');
		setReqField('msg');
		return false;
	}
	
	return true;
}

function validRegForm()	{
	
	if (isBlank(document.getElementById('contName').value))
	{
		alert('Please provide your name.');
		setReqField('contName');
		return false;
	}
	if (isBlank(document.getElementById('contPosition').value))
	{
		alert('Please provide your job title.');
		setReqField('contPosition');
		return false;
	}
	if (isBlank(document.getElementById('organisation').value))
	{
		alert('Please provide your company name');
		setReqField('organisation');
		return false;
	}
	if (isBlank(document.getElementById('address1').value) 
		&& isBlank(document.getElementById('address2').value)
		&& isBlank(document.getElementById('address3').value))
	{
		alert('Please provide your address details.');
		setReqField('address1');
		return false;
	}
	if (isBlank(document.getElementById('town').value))
	{
		alert('Please provide a town.');
		setReqField('town');
		return false;
	}
	if (isBlank(document.getElementById('postcode').value))
	{
		alert('Please provide your postcode.');
		setReqField('postcode');
		return false;
	}
	
	if (isBlank(document.getElementById('telNo').value))
	{
		alert('Please provide a contact telephone number.');
		setReqField('telNo');
		return false;
	}


	if (isBlank(document.getElementById('emailAddr').value))
	{
		alert('Please provide your email address.\r\nOtherwise we won\'t be able to send you your registration confirmation.');
		setReqField('emailAddr');
		return false;
	}

	if (!isBlank(document.getElementById('emailAddr').value) && !validEmail(document.getElementById('emailAddr').value))
	{
		alert('The email address you\'ve supplied appears to not be in the correct format.');
		document.getElementById('emailAddr').value = '';
		setReqField('emailAddr');
		return false;
	}
	
	return true;
}
