function checkValidation(emailaddr)
{
	var valid = true;

	if (stringEmpty(emailaddr))
	{
		valid = false; // There is no input value entered
	}
	else if (noAtSign( emailaddr ))
	{
		valid = false; // Does not contain an '@' character
	}
	else if (nothingBeforeAt(emailaddr))
	{
		valid = false; // Must contain at least one character before the '@' character
	}
	else if (noLeftBracket(emailaddr))
	{
		valid = false; // contains a right square bracket ']',\nbut no corresponding left square bracket '['
	}
	else if (noRightBracket(emailaddr))
	{
		valid = false; // contains a left square bracket '[',\nbut no corresponding right square bracket ']'
	}
	else if (noValidPeriod(emailaddr))
	{
		valid = false; // Must contain a period ('.') character
	}
	else if (noValidSuffix(emailaddr))
	{
		valid = false; // Must contain a two, three or four character suffix
	}

	return valid;
}

function stringEmpty (formField)
{
	// CHECK THAT THE STRING IS NOT EMPTY
	if ( formField.length < 1 )
	{
	  return ( true );
	}
	else
	{
	  return ( false );
	}
}

function noAtSign (formField)
{
	// CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
	if (formField.indexOf ('@', 0) == -1)
	{
	  return ( true )
	}
	else
	{
	  return ( false );
	}
}

function nothingBeforeAt (formField)
{
	// CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
	if ( formField.indexOf ( '@', 0 ) < 1 )
	{
	  return ( true )
	}
	else
	{
	  return ( false );
	}
}

function noLeftBracket (formField)
{
	// IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
	if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']')
	{
	  return ( true )
	}
	else
	{
	  return ( false );
	}
}

function noRightBracket (formField)
{
	// IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
	if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']')
	{
	  return ( true );
	}
	else
	{
	  return ( false );
	}
}

function noValidPeriod (formField)
{
	// IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
	if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']') return ( false );

	// CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
	if (formField.indexOf ( '.', 0 ) == -1) return ( true );

	return ( false );
}

function noValidSuffix(formField)
{
	// IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
	if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']')
	{
	  return ( false );
	}

	// CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
	var len = formField.length;
	var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
	if ( ( len - pos ) < 2 || ( len - pos ) > 4 )
	{
	  return ( true );
	}
	else
	{
	  return ( false );
	}
}