// VALIDATION JAVASCRIPT


	function checkValidation (addressField) {
		var errorblock = document.getElementById("emailerror");
		if ( stringEmpty ( addressField.value ) )
			errorblock.innerHTML = "Error! There is no E-Mail address entered";
		else if ( noAtSign ( addressField.value ) )
			errorblock.innerHTML = "Error! The E-Mail address does not contain an '@' character";
		else if ( nothingBeforeAt ( addressField.value ) )
			errorblock.innerHTML = "Error! An E-Mail address must contain at least one character before the '@' character";
		else if ( noLeftBracket ( addressField.value ) )
			errorblock.innerHTML = "Error! The E-Mail address contains a right square bracket ']',\nbut no corresponding left square bracket '['";
		else if ( noRightBracket ( addressField.value ) )
			errorblock.innerHTML = "Error! The E-Mail address contains a left square bracket '[',\nbut no corresponding right square bracket ']'";
		else if ( noValidPeriod ( addressField.value ) )
			errorblock.innerHTML = "Error! An E-Mail address must contain a period ('.') character";
		else if ( noValidSuffix ( addressField.value ) )
			errorblock.innerHTML = "Error! An E-Mail address must contain a two or three character suffix";
		else
			return (true);
		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 );
		}
	}	
	function checkname(hideThis){
		if (document.contact_usform.name.value == "")
			hideThis.style.display="block";
		else
			hideThis.style.display="none";
	}
	function checkemail(hideThis){
		if (checkValidation(document.contact_usform.email))
			hideThis.style.display="none";
		else
			hideThis.style.display="block";
	}
	function valid(){
		var one = document.getElementById("nameerror");
		var two = document.getElementById("emailerror");
		checkname(document.getElementById('nameerror'));
		checkemail(document.getElementById('emailerror'));
		if (one.style.display == 'block'){
			return false;
		}else if (two.style.display == 'block'){
			return false;
		}
		return true;
	}