/* Form check for Actuality Online customer enquiry form
 * Basically checks for input by customers.
 */

function errorCheck()
{
	// Variables used in this script
	var contactPerson = " ";
	var contactEmail = " ";
	var contactPhone = " ";
	var contactFacsimile = " ";
	var error1 = "You did not enter your ... ";
	var error2 = "Incorrect entry at ... ";
	var errorMessage = "";

	// Obtaining values from the form
	contactPerson = document.forms['feedback'].elements['A02-Contact-person'].value;
	contactEmail = document.forms['feedback'].elements['A04-Email'].value;
	contactPhone = document.forms['feedback'].elements['A06-Telephone'].value;
	contactFacsimile = document.forms['feedback'].elements['A07-Facsimile'].value;
	
	// Check that a name has been entered
	if (!contactPerson)
	{
		errorMessage = error1 + "contact name"; 
	}
	else
	{
		// Check for required fields to be entered
		if ((document.feedback.elements['A08a'].checked)||(document.feedback.elements['A09-Prefered-contact'][0].checked)||(document.feedback.elements['A09-Prefered-contact'][1].checked)|(document.feedback.elements['A09-Prefered-contact'][2].checked))
		{
			// prefers Email
			if ((document.feedback.elements['A09-Prefered-contact'][0].checked)||(document.feedback.elements['A08a'].checked))
			{
				if (!contactEmail)
				{
					errorMessage = error1 + "email address.";
				}
			}
			// prefers Telephone
			if (document.feedback.elements['A09-Prefered-contact'][1].checked)
			{
				if (!contactPhone)
				{
					errorMessage = error1 + "phone number.";
				}
			}
			// prefers Facsimile
			else if (document.feedback.elements['A09-Prefered-contact'][2].checked)
			{
				if (!contactFacsimile)
				{
					errorMessage = error1 + "facsimile number.";
				}
			}
		}
		//  Check for erraneous email entry
		if (contactEmail)
		{
			contactEmailValue = new String (contactEmail);
			emailHasAT = contactEmailValue.indexOf("@");
			emailHasBLANK = contactEmailValue.indexOf(" ");
			emailHasDOT = contactEmailValue.indexOf(".");

			// BASIC PROBLEMS
			// 01 - Missing '.' [DONE]
			// 02 - Missing '@' [DONE]
			// 03 - Email contains Blank spaces [DONE]
			if ((emailHasAT == -1)||(emailHasDOT == -1)||(emailHasBLANK != -1))
			{
				if (emailHasBLANK != -1)
				{
					errorMessage = errorMessage + "Email field contains blank spaces.\n";
				}
				if (emailHasAT==-1)
				{
					errorMessage = errorMessage + "Email field missing '@'.\n";	
				}
				if (emailHasDOT == -1)
				{
					errorMessage = errorMessage + "Email field missing '.'.\n";
				}
			}
			// ADVANCED PROBLEMS
			// 01 - Too Many '@' [DONE]
			// 02 - Missing Domain, ie nothing between '@' and '.'
			// 03 - ending with a '.'
			// 04 - Search for Illegal Characters (which ever) *unimplimented*
			else
			{
				// Checking for too many '@'s
				if (emailHasAT != contactEmailValue.lastIndexOf("@"))
				{
					errorMessage = errorMessage + "Email has too many '@'s!\n";
				}
				// Checking for missing domain, ie nothing between '@' & .
				if (emailHasDOT - emailHasAT == 1)
				{
					errorMessage = errorMessage + "Email is missing a domain between '@' & '.'!\n";
				}
				// Checking for Illegal email, ending with a '.'
				if (contactEmailValue.length - contactEmailValue.lastIndexOf(".") == 1)
				{
					errorMessage = errorMessage + "Email ended illegally with a '.'!\n";
				}
			}
		}
	}

	// Alert the user or submit the form
	if (errorMessage)
	{
		alert(errorMessage);
	}
	else
	{
		document.forms['feedback'].submit();
	}
}
