function checkData(strFormName)
{
	var strMsg = '';
	var booSubmit = true;
	var booMissing = false;
	var booInvalidType = false;
	var booInvalidEmail = false;
	var booInvalidDomain = false;
	var booRequiredCheckbox = false;
	var objForm = document.getElementById(strFormName)
	
	for(i=0; i<objForm.length; i++)
	{
		var objItem = objForm.item(i);

		if (objItem.getAttribute('validate') == 'true' & objItem.disabled == false)
		{
			switch (objItem.type)
			{
				case 'text' : case 'password' : case 'textarea' : case 'file' : case 'select-one' :
					objItem.style.backgroundColor = '#FFFFFF';

					switch (objItem.getAttribute('datatype'))
					{
						case 'number' :
							if (objItem.getAttribute('datatype') == 'number')
							{
								var sVal = new String(objItem.value);
								sVal = sVal.replace(/ /gi, '');
								
								if (sVal == ''|isNaN(sVal) == true)
								{
									objItem.style.backgroundColor = '#B0E0E6';
									booInvalidType = true
								}
							}
							
							break
						
						case 'email' :
							rExp = /\w+((-\w+)|(\.\w+)|(\_\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,5}/gi;
							checkMail = new String(objItem.value)
							if (checkMail.search(rExp) == -1)
							{
								objItem.style.backgroundColor = '#508AC8';
								objItem.style.color = 'white';
								objItem.style.fontWeight = 'bold';
								booInvalidEmail = true
							}
							
							break

						case 'domain' :
							rExp = /[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,5}/gi;
							checkMail = new String(objItem.value)
							if (checkMail.search(rExp) == -1)
							{
								objItem.style.backgroundColor = '#BFB1E2';
								booInvalidDomain = true
							}
							
							break
						
						default :
							if (objItem.value == ''|objItem.value == 0)
							{
								objItem.style.backgroundColor = '#C0C0C0';
								booMissing = true
							}
							
							break
					}
				break

				case 'checkbox' :
					if (!objItem.checked)
					{
						objItem.style.backgroundColor = 'Red';
						booRequiredCheckbox = true;
					}
				break
			
				default :
			}
		}
	}
	
	if (booInvalidType == true)
	{
		booSubmit = false;
		strMsg = 'You entered text or nothing into a required number field which has been marked light blue.\n'
	}

	if (booInvalidEmail == true)
	{
		booSubmit = false;
		strMsg = strMsg + 'You entered an invalid email address which has been marked light blue.\n'
	}

	if (booInvalidDomain == true)
	{
		booSubmit = false;
		strMsg = strMsg + 'You entered an invalid domain name which has been marked purple.\n'
	}
	
	if (booMissing == true)
	{
		booSubmit = false;
		strMsg = strMsg + 'You missed one or more fields which has now been marked darker grey.\n'
	}
	
	if (booRequiredCheckbox == true)
	{
		booSubmit = false;
		strMsg = strMsg + 'You must tick the check boxes marked red.'
	}
		
	if (booSubmit == true)
	{
		return true;
	}
	else
	{
		alert(strMsg)
		return false;
	}
}

function postForm(strFormName)
{
	if (checkData(strFormName))
		document.getElementById(strFormName).submit();
	else
		return false;
}