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